ARM裸板驅動開發之序列通訊協議

2021-08-25 19:44:30 字數 917 閱讀 8818

最新打算學習基於核心驅動開發方面的知識,在看書的過程中發現,除了要遵循核心的開發規則外,具體實現部分和裸機開發差異不大,由於研究生期間做過微控制器的開發,但畢竟arm裸機開發要比微控制器開發更複雜的多,因此打算從裸機開發開始重新學習一遍。

接下來就三星的s3c2440a為平台開始接下來的學習過程,該晶元的cpu核是arm920t。下圖是該soc的結構框圖

一、如何學習通訊協議

眾所周知,每種通訊方式的實現都要遵循其通訊協議,如低速的uart、i2c、spi,高速的pcie、mii等,那麼如何學習一種通訊協議呢,下面以序列通訊協議為例子介紹一種學習思路。

1. 了解其物理實現,即物理結構。如有多少引腳,每個引腳的功能

2. 了解通訊協議內容

(1)匯流排上空閒&忙的狀態

(2)start和stop狀態

(3)資料傳輸時高位在前還是低位在前

(4)如何校驗資料的準確性

(5)傳送方如何傳送,接收方如何接收

3. 軟體程式設計實現

二、uart序列通訊協議

序列通訊協議主要包括:uart、i2c、spi等,我們平時所說的uart串列埠通訊其實只是序列通訊協議中的一種。

uart:通用非同步收發傳輸器(universal asynchronous receiver/transmitter),

1. 物理連線

uart只有兩個線txd和rxd

2. 通訊協議內容

(1)tx == 1 時匯流排空閒

(2)1bit 0:start訊號

(3)低位在前(預設是小端序,低位址對應低位元組)

(4)校驗位:奇偶校驗

(5)資料傳送位數5、6、7、8

3. 軟體程式設計實現

ARM裸板 ARM模式 異常與狀態

3.arm的7種模式 mode 4.arm的2種狀態 state 5.異常的處理流程 6.程式以thumb指令集執行 2.中斷方式 常見的異常有 system sys a privileged user mode for the operating system irq irq used for g...

ARM裸板 軟體中斷分析及示例

2.swi中軟處理過程 3.取出swi指令中的值 如何切換?發生異常即可 異常向量表 start b reset vector 0 reset 0位址對應reset ldr pc,und addr vector 4 und 發生未定義指令異常,則進入 處理未定義異常函式 絕對跳轉,跳轉至sdram中...

ARM開發板配置rzsz

toc 這裡說的rzsz並不是真的是rzsz庫,發現並不好用,而確實好用。rzsz 3.48.tar.gz 不好用,建議別下了 用這個這裡用的是lrzsz 0.12.20.tar.gz wget tar zxvf lrzsz 0.12.20.tar.gz至於arm hisiv300 linux gc...