(转) 从0移植uboot(五) _实现串口输出
ref : https://www.cnblogs.com/xiaojiang1025/p/6500520.html
串口作为一种非常简单的通信方式,才是嵌入式系统调试的王道,通过设置串口输出,我们可以将程序运行的情况直接通过串口线输出到屏幕上,对于这种异常重要的功能,uboot原生就提供了支持,但为此我们需要做一些准备工作, 流程还是那套:
- 找运行逻辑,即插入代码的位置。
- 根据运行逻辑编写功能代码。
- 找配置逻辑,即修改哪些文件使配置生效。
- 根据配置逻辑修改配置使功能代码生效。
- 重新编译烧写uboot。
1. 找运行逻辑
通过(二)的分析, 我们了解到初始化串口的工作在BL2的"board/samsung/myboard/lowlevel_init.S"中进行, 所以我们的工作就是在这个文件中添加相应的代码.
2. 编写功能代码
为了让串口工作, 我们需要添加如下代码
添加临时栈
41 lowlevel_init:
42 ldr sp,=0x02060000 @use iRom stack in bl2
43 push {lr}
关闭看门狗
67 beq wakeup_reset
68
69 #if 1 /*for close watchdog */
70 /* PS-Hold high */
71 ldr r0, =0x1002330c
72 ldr r1, [r0]
73 orr r1, r1, #0x300
74 str r1, [r0]
75 ldr
76 r0, =0x11000c08
77 ldr r1, =0x0
78 str r1, [r0]
79 /* Clear MASK_WDT_RESET_REQUEST */
80 ldr r0, =0x1002040c
81 ldr r1, =0x00
82 str r1, [r0]
83 #endif
84 /*
串口初始化
352 str r1, [r0, #EXYNOS4_GPIO_A1_CON_OFFSET]
353 #if 1
354 ldr r0, =0x10030000
355 ldr r1, =0x666666
356 ldr r2, =CLK_SRC_PERIL0_OFFSET
357 str r1, [r0, r2]
358 ldr r1, =0x777777
359 ldr r2, =CLK_DIV_PERIL0_OFFSET
360 str r1, [r0, r2]
361 #endif
362 ldr r0, =EXYNOS4_UART_BASE
注释掉 trustzone 初始化
104 /* for UART */
105 bl uart_asm_init
106 @bl tzpc_init
3. 找配置逻辑
这些汇编代码也不需要特别的配置, 重新编译即可生效
4. 修改配置
无
5. 重新编译烧写
进行了这些工作,我们就可以接上串口线看一下是否有串口输出, 下面是我把网卡一起移植之后的结果, 当然, 这个界面是串口的功劳.

(转) 从0移植uboot(五) _实现串口输出的更多相关文章
- 从0移植uboot(五) _实现串口输出
串口作为一种非常简单的通信方式,才是嵌入式系统调试的王道,通过设置串口输出,我们可以将程序运行的情况直接通过串口线输出到屏幕上,对于这种异常重要的功能,uboot原生就提供了支持,但为此我们需要做一些 ...
- 从0移植uboot(六) _实现网络功能
为uboot添加网卡功能可以让uboot通过tftp下载内核, 方便我们的开发, 对于网卡功能的移植,我们依然在在一遍又一遍的实践这个uboot改造的套路. 找运行逻辑,即插入代码的位置. 根据运行逻 ...
- (转)从0移植uboot(六) _实现网络功能
ref:https://www.cnblogs.com/xiaojiang1025/p/6500532.html 为uboot添加网卡功能可以让uboot通过tftp下载内核, 方便我们的开发, 对于 ...
- 从0移植uboot (二) _启动流程分析
经过了上一篇的配置,我们已经执行make就可以编译出一个uboot.bin,但这还不够,首先,此时的uboot并不符合三星芯片对bootloader的格式要求,其次,此时的uboot.bin也没有结合 ...
- 从0移植uboot(三) _编译最小可用uboot
前两篇介绍了uboot-2013.01的配置原理以及大体的运行流程,本文将讨论如何对uboot源码进行配置,将一个可用的uboot烧录到SD卡中. 定制自己的core board 市面上能买到的开发板 ...
- 从0移植uboot (一) _配置分析
来源:Linux社区 作者:xiaojiang1025 :http://www.linuxidc.com/Linux/2017-02/141018.htm 和绝大多数源码编译安装一样,uboot的 ...
- (转)从0移植uboot(三) _编译最小可用uboot
ref: https://www.cnblogs.com/xiaojiang1025/p/6436752.html 前两篇介绍了uboot-2013.01的配置原理以及大体的运行流程,本文将讨论如何对 ...
- (转)从0移植uboot (一) _配置分析
ref : https://www.cnblogs.com/xiaojiang1025/p/6106431.html 本人建议的uboot学习路线,先分析原有配置,根据现有的配置修改.增加有关的部分, ...
- 从0移植uboot (四) _点亮调试LED
这一节主要讨论1个问题:点灯.点灯是实际开发中,特别是裸板开发中常见的调试手段,相当于主机开发中漫天飞舞的printf/printk.为了追踪程序的现场执行情况,很多时候我们都使用点一个灯的方法来进行 ...
随机推荐
- AbstractRoutingDataSource动态数据源切换,AOP实现动态数据源切换
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/u012881904/article/de ...
- cannot load from mysql.proc. the table is probably corrupted 解决办法
执行以下命令:mysql_upgrade -u root -p 密码 mysql5.5及5.5以上的版本开始,mysql数据库中proc表中的comment字段的列属性已经由char(64)改为tex ...
- OpenTK学习笔记(2)-工作窗口的三种方法创建方法(winfrom窗体控件形式创建)
参考资料: https://social.msdn.microsoft.com/Forums/zh-TW/1b781685-c670-4338-953d-1957a8f24a66/opentkglco ...
- 阿里PB级Kubernetes日志平台建设实践
干货分享 | 阿里PB级Kubernetes日志平台建设实践https://www.infoq.cn/article/HiIxh-8o0Lm4b3DWKvph 日志最主要的采集工具是 Agent,在 ...
- LC 375. Guess Number Higher or Lower II
We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to gues ...
- -bash: netstat: 未找到命令
[root@localhost ~]# netstat -lunpt -bash: netstat: 未找到命令 [root@localhost ~]# yum -y install net-tool ...
- 算法习题---4-3黑白棋(UVa220)
一:题目 系统提示当前旗手W/B(白/黑)下子,例如W下子,那么W下的位置必须是夹住黑色棋子的位置才可以. 夹住方式:横向.竖向.斜向 注意落子后将夹住的黑棋吞噬变为白棋 (一)题目详解 .棋盘以数组 ...
- win7下安装IIS7
在Windows 7下如何安装IIS7,以及IIS7在安装过程中的一些需要注意的设置,以及在IIS7下配置ASP的正确方法. 在Windows 7下面IIS7的安装方法: 一.进入Windows 7的 ...
- SQl 2008 如何清除登陆过的服务器名称
C:\Users\Administrator\AppData\Roaming\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin ...
- java、ruby、python、php等如何生成excel文档?
excel在我们日常工作生活中会经常用到,通常我们都是用office软件去编写文档.但是对于格式一致的excel文档,如果还是使用人工完成,那绝不是我们软件工程师的姿态了~ 下面我就介绍一种方法,不需 ...