S5PV210序列通訊程式設計實戰 1

2021-10-03 16:17:58 字數 2433 閱讀 3331

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中將會執行現場的保護與恢復,以及最重要的中斷處理函式 注意,這裡就來到了中斷處理部分,而不是異常處理了,相當於是乙個兩級...