基于A(yíng)RM處理器的HDLC通信的DMA實(shí)現
目前在嵌入式產(chǎn)品開(kāi)發(fā)設計中,通常是在OS(Operating System)廠(chǎng)商提供的BSP基礎上進(jìn)行開(kāi)發(fā)工作;對于底層硬件的操作,程序設計人員很少關(guān)注或只是少量的修改。實(shí)際上很多產(chǎn)品,我們完全可以?huà)侀_(kāi)操作系統的模式,避免不必要的系統開(kāi)銷(xiāo),而對底層的硬件直接進(jìn)行處理。這樣,可以節省資源提高利用率。當然,這樣也會(huì )人為地增加系統開(kāi)發(fā)設計的難度。但是從長(cháng)遠的角度看,進(jìn)行這樣的設計思考還是非常必要的?,F在一些產(chǎn)品的設計開(kāi)發(fā)中,所缺少的實(shí)際上就是深入了解底層操作,這樣往往使我們丟失了創(chuàng )新的機會(huì )。
(2)DMA模式
使用緩沖描述符BD(Buffer Descriptor)結構,可以實(shí)現以幀為單位對數據進(jìn)行接收和發(fā)送控制。程序設計人員只需要填寫(xiě)相應BD結構的域信息,配置收發(fā)模式,具體的執行細節交給DMA單元控制完成。CPU只是對每一幀進(jìn)行處理,這樣在一幀收發(fā)的過(guò)程中,系統可以去處理其它的任務(wù),有效地利用CPU資源。關(guān)鍵在于構建BD循環(huán)鏈表。同時(shí)應該注意,BD及其對應的緩沖數據區必須放在系統存儲區的非緩存區(NonCache),這可以通過(guò)設置地址的第26位為1來(lái)實(shí)現。
評論