TI處理器EDMA實戰1:EDMA的三種觸發方式與通道

EDMA的三種觸發方式與通道

目的:減輕CPU工作量,提高CPU效率

EDMA觸發方式

TI公司處理器的EDMA一共有3種觸發方式,在這裏以外設SPI爲例,發送可使用手動觸發或者事件觸發,SPI接收使用的是事件觸發 +鏈接觸發,對於接受來說手動觸發方式是搞不定的,這是爲什麼呢?在開始之前,我想先把我最近對EDMA觸發的幾種方式先簡單敘述一下,這樣大家應該就明白爲什麼我要這麼選擇了

手動觸發

手動觸發,顧名思義,需要程序員來控制觸發的時機,多用於內存上數據搬移等主動控制時機,對於沒有專用DMA通道的外設,也可以通過手動觸發的方式完成DMA發送,但是DMA數據接收那就必須要用事件觸發了

事件觸發

事件觸發多用於被動,如外設接收數據就一定要使用事件觸發的方式,手動觸發只能解決數據發送,無法解決數據接收

鏈接觸發

多用於pingpong接收存儲,暫且不提,後續會出專門文章講解

EDMA通道

關於EDMA通道,你需要查閱一下你使用的處理器的DataSheet,看一下處理器是否爲SPI留有EDMA通道,如果沒有,那就無法使用SPI的EDMA事件觸發,一般來說,都會有的,否則你就趕緊換個CPU吧…

何爲EDMA通道?

嗯…,我想把EDMA通道稱爲EDMA事件通道,打個比方,你的處理器一共有64個通道,這64個通道都可以通過手動觸發的方式來啓動一次DMA傳輸,你可以爲所欲爲,將數據搬來搬去,如果你把目的地址設置爲UART的數據發送寄存器,那麼你毫無任何問題的可以啓動一次UART的EDMA發送。

但是,接收呢?接收通過手動的方式就搞不定了,這個時候你就必須使用處理器爲你提供的專用通道,比如通道25默認爲UART接收通道,那麼你若想使用UART的DMA接收的話,你就必須要使用25通道,除非你把該通道映射到其他通道號。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章