现在的位置: 首页 > 操作系统 > 正文

从0移植uboot(四)_点亮调试LED

2020年02月10日 操作系统 ⁄ 共 1114字 ⁄ 字号 评论关闭

这一节主要讨论1个问题:点灯。点灯是实际开发中,特别是裸板开发中常见的调试手段,相当于主机开发中漫天飞舞的printf/printk。为了追踪程序的现场执行情况,很多时候我们都使用点一个灯的方法来进行初步的判断。如果你把刚才编译的程序烧录到SoC,你又怎么知道这个Uboot有没有工作呢?所以,我们在这里就要完成这样一个程序的改造。虽说只是点一个灯, 但麻雀虽小五脏俱全, 也算是对uboot源码进行修改, 我总结了一点改造uboot的流程, 这一篇就按下面的改造流程来组织:

    找运行逻辑,即插入代码的位置。根据运行逻辑编写功能代码。找配置逻辑,即修改哪些文件使配置生效。根据配置逻辑修改配置使功能代码生效。重新编译烧写uboot。

1. 找运行逻辑

我们希望板子在uboot的运行的时候就点灯示意, 所以应该在启动过程中尽可能考前的位置编写点灯代码, 根据上一篇对启动流程的叙述, 显然我们需要修改的文件就是"arch/arm/cpu/armv7/start.S ", 我们在启动代码之后添加我们的代码, 即"134行"

2. 编写功能代码

根据我的电路板。我的LED最终接在了GPF3_5接口,所以我配置相应的寄存器,点亮一个灯,并将这部分代码添加到"arch/arm/cpu/armv7/start.S +134"

135 msr cpsr,r0136 137 #if 1138 ldr r0, =0x114001E0 @load GPF3CON address to register139 ldr r1, [r0] @load data in GPF3_5CON 140 bic r1, r1,#0xff0000 @output 0x110000141 orr r1, r1,#0x110000142 str r1, [r0]143 144 ldr r0, =0x114001E4 @load GPF3_5DAT address to register145 mov r1, #0x20 @10 0000146 str r1, [r0]147 #endif148 /*

3. 找配置逻辑。

这段代码不需要额外的配置即可工作

4. 修改配置

5. 重新编译烧写

改写完程序,重新编译uboot(强烈建议写脚本,我这里就不贴了),如果没有问题,我们的灯就可以亮了

本文永久更新链接地址:http://www.xuebuyuan.com/Linux/2017-03/141412.htm

以上就上有关从0移植uboot(四)_点亮调试LED的相关介绍,要了解更多移植uboot,从0移植uboot,从0移植uboot (四) _点亮调试LED,编程,Linux编程,Linux Shell,Android,Android教程,JAVA,C语言,Python,HTML5内容请登录学步园。

抱歉!评论已关闭.