第二章之在BL1中点亮LED灯

Posted 启云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二章之在BL1中点亮LED灯相关的知识,希望对你有一定的参考价值。

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灯的主要内容,如果未能解决你的问题,请参考以下文章

51单片机 按键控制LED灯移位亮灭

求一个让多个LED灯轮流亮的电路图,谢谢!

如何使两个LED灯循环亮灭?或者交替亮灭?最好有电路图。大一小白求助,

arduino两个led灯交替闪烁

Linux系统编程二:字符设备控制之点亮LED灯控制蜂鸣器

STM32F103+RTT从零开始——RTT系统中点亮LED