从0移植uboot(五) _实现串口输出
2017-03-05 14:04
204 查看
串口作为一种非常简单的通信方式,才是嵌入式系统调试的王道,通过设置串口输出,我们可以将程序运行的情况直接通过串口线输出到屏幕上,对于这种异常重要的功能,uboot原生就提供了支持,但为此我们需要做一些准备工作, 流程还是那套:
找运行逻辑,即插入代码的位置。
根据运行逻辑编写功能代码。
找配置逻辑,即修改哪些文件使配置生效。
根据配置逻辑修改配置使功能代码生效。
重新编译烧写uboot。
添加临时栈
关闭看门狗
串口初始化
注释掉 trustzone 初始化
找运行逻辑,即插入代码的位置。
根据运行逻辑编写功能代码。
找配置逻辑,即修改哪些文件使配置生效。
根据配置逻辑修改配置使功能代码生效。
重新编译烧写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. 重新编译烧写
进行了这些工作,我们就可以接上串口线看一下是否有串口输出, 下面是我把网卡一起移植之后的结果, 当然, 这个界面是串口的功劳.相关文章推荐
- U-boot2016.05移植TQ2440之串口输出实现
- uboot源码阅读(九)开发板启动串口输出
- Android 设备上实现串口的移植
- IAR +STM32实现printf()输出到串口
- Android 实现串口的移植
- DSP下面printf串口输出的实现
- Android 实现串口的移植
- Android 实现串口的移植
- CC2640协处理器SensorController移植sc_uart串口程序到simple_peripheral工程,实现串口与手机的通信
- 移植最新的内核之:使内核的打印信息可以在串口输出
- Uboot实现文字纵向输出的原理和实现
- 移植完RT-Thread之后,串口输出rtc not configured,please configure with set_date and set_time
- 将lrzsz工具移植到ARM开发板 ---只通过串口实现window和ARM板之间文件互传
- 51单片机单串口同时实现AT指令和调试信息输出
- 协议转换--Linux多路网络数据转多串口输出程序实现
- 直接对寄存器操作,实现usart的串口输出寄存器的配置
- 逻辑概念解释:以SD驱动为例去解释成功将驱动移植到Uboot这句话的含义 + Uboot中的驱动和Linux内核中的驱动的区别和联系 + 如何在Uboot中实现某硬件的驱动的逻辑和思路
- uboot.2015.07移植之驱动串口(4)
- stm32 keil实现串口printf输出中文字符
- u-boot移植1:添加自己的板子并实现串口的打印