OK6410开发板裸板程序实验-LED

2014-11-24 08:47:22 ? 作者: ? 浏览: 1

本人想写一个简单的Bootloader,以前在2410上写过一个。因此现在想在6410上也写一个,方便理解启动过程。但是发现刚一起步就遇到了困惑。


以前玩ARM7、ARM9、PowerPC板子时,都有烧写器或下载器可以将一段汇编代码放到nor flash中运行。


但现在发现目前市面上很多6410的开发板不太容易这么做,很多都是没有nor flash,要通过u-boot将程序下载到Nand flash中,然后利用u-boot命令来运行nand flash里面的汇编程序。


既然是裸机程序,那么就不想板子上同时有其他程序在运行。


这给独立写一个Bootloader并放到nand flash上运行程序带来了不便。


本人买了一块飞凌科技的OK6410开发板,准备在上面完成这个Bootloader的工作。


我是用的是方法一:使用WinHex_14.0_SR-1_SC.exe来作为辅助软件。使程序烧写到SD卡中,从SD卡中启动裸奔程序。


也就是说板子启动从SD卡启动,这样也算是真正的裸机程序了。试验成功。


我是用的代码如下,可以控制OK6410的LED灯。


把以下代码编译后。放到SD卡中,然后用SD卡启动。


(从网上找的参考代码,以后有时间再分析吧):


AREA Test, CODE, READONLY ; name this block of code
ENTRY ; mark first instruction
; to execute
start
B reset


reset

B main
NOP

main


ldr r0,=0x7f008820
ldr r1,=0x1111
str r1,[r0]
ldr r0,=0x7f008824
ldr r1,[r0]
ldr r2,=0x1
mov r3,#0


; bic r2,r1,#3
; orr r2,r2,#0xc
; bic r3,r1,#0xc
; orr r3,r3,#3
nn


lsl r2,#1
add r3,r3,#1
cmp r3,#4
moveq r2,#1
moveq r3,#0

str r2,[r0]
ldr r4,=5000000

delay1
sub r4,r4,#1
cmp r4,#0
bne delay1
; str r3,[r0]
; ldr r4,=5000000
;delay2
; sub r4,r4,#1
; cmp r4,#0
; bne delay2
b nn
END


-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: