串口做爲一種很是簡單的通訊方式,纔是嵌入式系統調試的王道,經過設置串口輸出,咱們能夠將程序運行的狀況直接經過串口線輸出到屏幕上,對於這種異常重要的功能,uboot原生就提供了支持,但爲此咱們須要作一些準備工做, 流程仍是那套:html
經過(二)的分析, 咱們瞭解到初始化串口的工做在BL2的"board/samsung/myboard/lowlevel_init.S"中進行, 因此咱們的工做就是在這個文件中添加相應的代碼.3d
爲了讓串口工做, 咱們須要添加以下代碼
添加臨時棧調試
41 lowlevel_init: 42 ldr sp,=0x02060000 @use iRom stack in bl2 43 push {lr}
關閉看門狗code
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 /*
串口初始化htm
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 初始化blog
104 /* for UART */ 105 bl uart_asm_init 106 @bl tzpc_init
這些彙編代碼也不須要特別的配置, 從新編譯便可生效get
無it
進行了這些工做,咱們就能夠接上串口線看一下是否有串口輸出, 下面是我把網卡一塊兒移植以後的結果, 固然, 這個界面是串口的功勞.
asm