博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从0移植uboot (四) _点亮调试LED
阅读量:6516 次
发布时间:2019-06-24

本文共 1201 字,大约阅读时间需要 4 分钟。

这一节主要讨论1个问题:点灯。点灯是实际开发中,特别是裸板开发中常见的调试手段,相当于主机开发中漫天飞舞的printf/printk。为了追踪程序的现场执行情况,很多时候我们都使用点一个灯的方法来进行初步的判断。如果你把刚才编译的程序烧录到SoC,你又怎么知道这个Uboot有没有工作呢?所以,我们在这里就要完成这样一个程序的改造。

虽说只是点一个灯, 但麻雀虽小五脏俱全, 也算是对uboot源码进行修改, 我总结了一点改造uboot的流程, 这一篇就按下面的改造流程来组织:

  1. 找运行逻辑,即插入代码的位置。
  2. 根据运行逻辑编写功能代码。
  3. 找配置逻辑,即修改哪些文件使配置生效。
  4. 根据配置逻辑修改配置使功能代码生效。
  5. 重新编译烧写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(强烈建议写脚本,我这里就不贴了),如果没有问题,我们的灯就可以亮了

转载于:https://www.cnblogs.com/xiaojiang1025/p/6500476.html

你可能感兴趣的文章
Navicat “ORA-28547:connection to server failed
查看>>
hibernate怎么连接数据库并进行操作[读取][存放]
查看>>
opd-山寨版vld
查看>>
我的友情链接
查看>>
php设计模式 - 解释器模式
查看>>
SFB 项目经验-20-Skype for Business for Android-下载到电脑
查看>>
SQL FOR XML
查看>>
OpenSSH 与 SecureCRT 公钥认证登陆
查看>>
python 学习笔记杂乱一篇
查看>>
手把手教你搭建PHP开发“黄金自由新搭档”
查看>>
为推动云计算进程 IBM加快虚拟机步伐
查看>>
wice_grid插件笔记
查看>>
在Linux下安装MySQL
查看>>
Ubuntu Server 14.04 配置VNC
查看>>
jquery插件之DataTables
查看>>
SCCM2012学习(二),基础知识和入门
查看>>
判断一个CPU大小端模式
查看>>
Kayako REST API使用详解一
查看>>
谈ITIL V3的落地与实施
查看>>
IOS开发—数据存储(直接写入、NSUserDefaults、NSkeyedArchiver)
查看>>