作者:Stephen Du
免責聲明: 本文為個人學習筆記及總結,僅代表個人觀點,盡可能保證内容準确性。複制/轉發請注明來源/作者。
歡迎添加微信交流學習。
1.DMA仲裁機制
固定優先級仲裁(fixed priority arbitration): 使用者對每個通道設定一個明确優先級,優先處理優先級高的通道。
循環仲裁(round robin arbitration): 從通道号大的開始執行,依次到通道号小的通道,忽略優先級。
注意這個設定是全局的,針對DMA所有邏輯通道。
預設為固定優先級仲裁機制。
EB配置如下圖:
2.EB配置流程
由于DMA在标準中不屬于标準子產品,是以NXP的MCAL中将DMA歸屬于Mcl子產品裡。
2.1使能DMA
其餘選項根據需要進行選擇(可選)。
2.2使能通道中斷(可選)
如果你不需要使用中斷模式,忽略本章節。
2.3通道配置
上圖中第一和第二個視窗預設是有實體的,如果沒有,請點選工具區(上圖中紅框部分)綠色加号進行添加。第三個視窗預設沒有,需要根據自己需要進行添加,使用幾個通道就添加幾個實體。
上圖第二個視窗中
Round Robin Channel Arbitration
選項見前面“DMA仲裁機制”章節的解釋。
某些配置項如果可以顯示完全,可直接配置,如上圖中中間的配置視窗,但是某些配置由于配置項太多,顯示不全,需要進入進行配置,如上圖中第一個視窗和第三個視窗,進入方式隻需輕按兩下上圖中手形圖示處即可。
上圖中最後一個視窗輕按兩下相應邏輯通道進入進行詳細配置。如下圖:
上圖綠框部分可以保持預設配置設定的值,紅框部分通常為必選項,其餘選項根據需要進行勾選。
如果使用的循環仲裁模式,優先級設定可忽略,否則需要根據相應外設需要進行設定,比如SPI子產品要求Rx通道的優先級大于Tx通道的優先級。優先級取值範圍:0~15,數字越小優先級越低。
其中Notification選項可以是使用者的任意函數,但有時候需要注冊一些特殊的函數。如這裡的示例就是SPI子產品使用DMA中斷模式時,需要将SPI子產品的中斷函數注冊到這裡。