1、整個程式流程分析:
程式是第五章icache專案複製過來的有:clock.s 、led.s、start.s(新增bl main呼叫)、makefile(依懶裡要新增uart.o和main.o)、mkv210_image.c、多新增乙個,uart.c再新增乙個main.c呼叫uart.c
(1)、整個串列埠通訊相關程式包含2部分:uart_init負責初始化串列埠,uart_putc負責傳送乙個位元組。
void main(void)
//串列埠初始化程式
void uart_init(void)
//串列埠傳送程式,傳送乙個位元組
void uart_putc(char c)
//串列埠接收程式,輪詢方式,接收乙個位元組
char uart_getc(void)
2、串列埠控制器初始化關鍵步驟:
(1)、初始化串列埠的tx(發)和(rx)收,引腳所對應的gpio(這個引腳是復用的),查原理圖可知rx和tx分別對應gpa0_0和gpa0_1。
(2)、gpa0con(0xe0200000),bit[3 : 0] = 0b0010 , bit[4 : 7] = 0b0010其餘位不變。
(3)、初始化這幾個關鍵暫存器:ucon0 ulcon0 umcon0 ufcon0 ubrdiv0 udivslot0
3、主要的幾個暫存器:
(1)、ulcon0 = 0x3 //0校驗位、8位資料位、1停止位
(2)、ucon = 0x5 //傳送和接收都是polling mode (輪詢模式)
(3)、umcon0 =0x0 //禁止modem(在此和流控有關)、afc(流控)
(4)、ufcon0 = 0x0 //禁止fifo模式
(5)、ubrdiv0 和 udivslot0和波特率有關,要根據公式去算的。
4、在c原始檔中定義訪問暫存器的巨集:
#define gpa0con 0xe0200000
#define ucon0 0xe2900004
#define ulcon0 0xe2900000
#define umcon0 0xe290000c
#define ufcon0 0xe2900008
#define ubrdiv0 0xe2900028
#define udivslot0 0xe290002c
#define utrstat0 0xe2900010
#define utxh0 0xe2900020
#define urxh0 0xe2900010
//這裡是強制型別轉換後訪問
#define rgpa0con (*(volatile unsigned int )gpa0con)
#define rucon0 ((volatile unsigned int )ucon0)
#define rulcon0 ((volatile unsigned int )ulcon0 )
#define rumcon0 ((volatile unsigned int )umcon0 )
#define rufcon0 ((volatile unsigned int )ufcon0 )
#define rubrdiv0 ((volatile unsigned int )ubrdiv0 )
#define rudivslot0 ((volatile unsigned int )udivslot0 )
#define rutrstat0 ((volatile unsigned int )utrstat0 )
#define rutxh0 ((volatile unsigned int )utxh0 )
#define rurxh0 ((volatile unsigned int *)urxh0 )
原理圖:
tx和rx引腳對應暫存器設定:
1 7 7 S5PV210序列通訊程式設計實戰1
1.7.7.1 整個程式流程分析 1 整個串列埠通訊相關程式包含2部分 uart init負責初始化串列埠,uart putc負責傳送乙個位元組 1.7.7.2 串列埠控制器初始化關鍵步驟 1 初始化串列埠的tx和rx引腳所對應的gpio 查原理圖可知rx和rx分別對應gpa0 1和gpa0 0 2...
s5pv210 中斷實戰
以下內容源於部落格的學習,以及朱有鵬老師課程的學習,和網路資源的整理。1 建立異常向量表 2 中斷初始化 3 使能 如外部中斷,寫中斷處理函式 4 建立中斷號與中斷處理函式的聯絡,使能。當中斷發生時,中斷處理函式會自動處理中斷 流程如下圖 下面按上述步驟編寫 內容細節見部落格 s5pv210 裸機 ...
S5PV210 裸機中斷
這裡我以外部中斷為例畫出了中斷響應的過程。當外部中斷得到響應,會由硬體自動轉到異常向量表,執行對應的異常處理程式。在這裡指的就是irq的處理程式。在異常處理程式irq handle中將會執行現場的保護與恢復,以及最重要的中斷處理函式 注意,這裡就來到了中斷處理部分,而不是異常處理了,相當於是乙個兩級...