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