OK6410 SD卡烧写流水灯程序
对于上篇 S3C6410移植日记 出现不能使用2G SD卡烧写的原因如下:
16M的SD卡属于里面的SD/MMC Device,所以,从末地址,向前偏移9K(18个block),就行了
2G或者更大的的SD卡,属于SDHC Device,所以需要从末地址,向前偏移521K(1042个block)
流水灯的实例如下led_on.S
代码
1 @******************************************************************************
2 @ File:led_on.S
3 @ 功能:LED点灯程序,点亮LED1
4 @******************************************************************************
5
6 .text
7 .global _start
8 _start:
9 ldr r0,=0x7f008820
10 ldr r1,=0x1111
11 str r1,[r0]
12 ldr r0,=0x7f008824
13 ldr r1,[r0]
14 bic r2,r1,#3
15 orr r2,r2,#0xc
16 bic r3,r1,#0xc
17 orr r3,r3,#3
18 nn:
19 str r2,[r0]
20 ldr r4,=5000000
21 delay1:
22 sub r4,r4,#1
23 cmp r4,#0
24 bne delay1
25 str r3,[r0]
26 ldr r4,=5000000
27 delay2:
28 sub r4,r4,#1
29 cmp r4,#0
30 bne delay2
31 b nn
32
Makefile文件
代码
led_on.bin : led_on.S
arm-linux-gcc -g -c -o led_on.o led_on.S
arm-linux-ld -Ttext 0x0000000 -g led_on.o -o led_on_elf
arm-linux-objcopy -O binary -S led_on_elf led_on.bin
clean:
rm -f led_on.bin led_on_elf *.o
具体SD卡制作过程请参考djyos的 SDbootloader使用说明

浙公网安备 33010602011771号