天天看點

NXP S32K1 MCAL DMA配置

作者:Stephen Du

免責聲明: 本文為個人學習筆記及總結,僅代表個人觀點,盡可能保證内容準确性。複制/轉發請注明來源/作者。

歡迎添加微信交流學習。
NXP S32K1 MCAL DMA配置

1.DMA仲裁機制

固定優先級仲裁(fixed priority arbitration): 使用者對每個通道設定一個明确優先級,優先處理優先級高的通道。

循環仲裁(round robin arbitration): 從通道号大的開始執行,依次到通道号小的通道,忽略優先級。

注意這個設定是全局的,針對DMA所有邏輯通道。

預設為固定優先級仲裁機制。

EB配置如下圖:

2.EB配置流程

由于DMA在标準中不屬于标準子產品,是以NXP的MCAL中将DMA歸屬于Mcl子產品裡。

2.1使能DMA

NXP S32K1 MCAL DMA配置

其餘選項根據需要進行選擇(可選)。

2.2使能通道中斷(可選)

如果你不需要使用中斷模式,忽略本章節。

NXP S32K1 MCAL DMA配置

2.3通道配置

NXP S32K1 MCAL DMA配置

上圖中第一和第二個視窗預設是有實體的,如果沒有,請點選工具區(上圖中紅框部分)綠色加号進行添加。第三個視窗預設沒有,需要根據自己需要進行添加,使用幾個通道就添加幾個實體。

上圖第二個視窗中

Round Robin Channel Arbitration

選項見前面“DMA仲裁機制”章節的解釋。

某些配置項如果可以顯示完全,可直接配置,如上圖中中間的配置視窗,但是某些配置由于配置項太多,顯示不全,需要進入進行配置,如上圖中第一個視窗和第三個視窗,進入方式隻需輕按兩下上圖中手形圖示處即可。

上圖中最後一個視窗輕按兩下相應邏輯通道進入進行詳細配置。如下圖:

NXP S32K1 MCAL DMA配置

上圖綠框部分可以保持預設配置設定的值,紅框部分通常為必選項,其餘選項根據需要進行勾選。

如果使用的循環仲裁模式,優先級設定可忽略,否則需要根據相應外設需要進行設定,比如SPI子產品要求Rx通道的優先級大于Tx通道的優先級。優先級取值範圍:0~15,數字越小優先級越低。

其中Notification選項可以是使用者的任意函數,但有時候需要注冊一些特殊的函數。如這裡的示例就是SPI子產品使用DMA中斷模式時,需要将SPI子產品的中斷函數注冊到這裡。

繼續閱讀