第三章之S5PV210串列埠初始化

2022-07-29 06:03:07 字數 1917 閱讀 9347

找到241行,此行執行urat初始化,如下圖:

但此uart初始化與s5pv210的uart初始化不同,需要自己手動修改。

2,在lowlevel.s的463行下新增如uart初始化**:

1

/****add s5pv210 uart initialize by xu**

*/2 ldr r0, =0xe2900000

3 ldr r1, =0x3

4 str r1, [r0] @ulcon0=0x3 indicates the number of data bits is85

6 ldr r1, =0x305

7 str r1, [r0,#0x4] @ucon0=0x305

89 ldr r1, =0x1

10 str r1, [r0,#0x8] @ufcon0=0x1

fifo enable

1112 ldr r1, =0x0

13 str r1, [r0,#0x0c] @umcon0=0x0

1415 ldr r1, =34

16 str r1, [r0,#0x28] @ubrdivn=34 baud rate=115200

1718 ldr r1, =0xdfdd

19 str r1, [r0,#0x2c] @udivslotn=0xdfdd13'

1

3,設定好之後,還要新增測試**,看看是否串列埠能否列印出東西來,下面是測試**,緊跟上一步初始化**下面.

/*

**test uart**

*/ldr r0, =0xe2900020

ldr r1, =0x55

str r1, [r0] @utxh0='u'

ldr r1, =0x41

str r1, [r0] @utxh0='a'

ldr r1, =0x52

str r1, [r0] @utxh0='r'

ldr r1, =0x55

str r1, [r0] @utxh0='w'

ldr r1, =0xa

str r1, [r0] @utxh0='\r'

ldr r1, =0xd

str r1, [r0] @utxh0='

\n'

4,好,連線好電腦和板子uart0,然後make一下,生成u-boot,把u-boot.16k重新燒寫到sd卡中。但是在串列埠終端上看不到任何輸出資訊。怎麼回事?

讓我看一下,make時生成的輸出資訊,如圖:

lowlevel.s檔案在board/samsung/goni/libgoni.o中,此檔案在u-boot中最後編譯進來,明顯uart超出16k大小範圍,串列埠終端看不到任何列印資訊。

5,通過上一步知道了問題所在,那麼我們可以調整makefile檔案,來調整board/samsung/goni/libgoni.o編譯的先後。

#vim makefile

遮蔽359行,新增360行.如圖:

6,如此,再次make和燒寫u-boot.16k,開啟串列埠0,可以看到輸出資訊。

S5PV210 裸機中斷

這裡我以外部中斷為例畫出了中斷響應的過程。當外部中斷得到響應,會由硬體自動轉到異常向量表,執行對應的異常處理程式。在這裡指的就是irq的處理程式。在異常處理程式irq handle中將會執行現場的保護與恢復,以及最重要的中斷處理函式 注意,這裡就來到了中斷處理部分,而不是異常處理了,相當於是乙個兩級...

S5PV210控制蜂鳴器

s5pv210帶有乙個蜂鳴器,十分吵鬧,本章將學習如何控制蜂鳴器。相關引腳 蜂鳴器的操作十分簡單,原理跟操作led一樣,通過控制gpdo o這個引腳就可以達到控制蜂鳴器的目的。1.start.s start.s做了下面3件事 第一步 關看門狗 第二步 設定棧,以便呼叫c函式 第三步 呼叫main函式...

S5PV210控制蜂鳴器

s5pv210帶有乙個蜂鳴器,十分吵鬧,本章將學習如何控制蜂鳴器。相關引腳 蜂鳴器的操作十分簡單,原理跟操作led一樣,通過控制gpdo o這個引腳就可以達到控制蜂鳴器的目的。1.start.s start.s做了下面3件事 第一步 關看門狗 第二步 設定棧,以便呼叫c函式 第三步 呼叫main函式...