1. 程式人生 > >第二章之在BL1中點亮LED燈

第二章之在BL1中點亮LED燈

tar pan syn 9.png 語言 其它 等等 col .cn

1,u-boot中第一個入口在./arch/arm/cpu/armv7/start.S

翻到153行:如下圖

技術分享

前面都是進行一些基本設置,不用管。

cpu_init_cp15設置協處理器, cpu_init_crit則跳轉到其它地方,所以要點板子上電點燈要在152行之前。

2,通過板子資料,通過設置GPIO點亮LED燈,因為了 start.S是用匯編語言寫的,所以點亮LED燈也要用匯編語言

代碼如下:

 1 gpin_out:
 2     ldr     r11,=0xE0200280
 3     ldr     r12,=0x00001111
 4     str     r12,[r11]
 5 
 6     ldr     r11,=0xE0200284
7 ldr r12,=0xf 8 str r12,[r11] 9 10 mov pc,lr 11 12 .globl led1_on 13 led1_on: 14 ldr r11,=0xE0200284 15 ldr r12,[r11] 16 bic r12,r12,#1 17 str r12,[r11] 18 19 mov pc,lr

在start.S中151行添加如下代碼:

技術分享

在start.S中595行添加如下代碼:

技術分享

3,#make 生成u-boot.bin文件

4,#mkv210 u-boot.bin u-boot.16k

技術分享

5,將生成的u-boot.16k燒寫到SD卡中

#sudo dd iflag=dsync oflag=dsync if=./u-boot.16k of=/dev/sdb seek=1

技術分享

6,如此將SD卡放回板子,上電,可以看到LED1燈點亮.

由此也說明生成的BL1可以正常運行。

7,#hexdump -C u-boot.16k | less前幾位是否跟設置的一樣,如下圖

技術分享

可以看到自己設置的S5PC110等等

第二章之在BL1中點亮LED燈