找到241行,此行執行urat初始化,如下圖:
但此uart初始化與s5pv210的uart初始化不同,需要自己手動修改。
2,在lowlevel.s的463行下新增如uart初始化**:
13,設定好之後,還要新增測試**,看看是否串列埠能否列印出東西來,下面是測試**,緊跟上一步初始化**下面./****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
/*4,好,連線好電腦和板子uart0,然後make一下,生成u-boot,把u-boot.16k重新燒寫到sd卡中。但是在串列埠終端上看不到任何輸出資訊。怎麼回事?**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'
讓我看一下,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函式...