DMA使用是一個不需要CPU干預(yù),自己搬運(yùn)數(shù)據(jù)的模塊,在前面講中斷事件的章節(jié)里面,就有提到過事件的DMA通道,DMA事件路由(DMA Event Route)。
MSPM0L系列提供了6中DMA工作模式,除了比較常見的固定地址到固定地址(Fixed Address To Fixed Address),固定地址到地址塊(Fixed Address To Block Of Address),地址塊到固定(Block Of Address To Fixed Address),地址塊到地址塊( Block Of Address To Block Of Address)。
還提供了填數(shù)據(jù)到地址塊(Fill Data To Block Of Address),數(shù)據(jù)表到特定地址(Data Table To Specific Address)功能。
填數(shù)據(jù)到地址塊(Fill Data To Block Of Address)功能是用來快速生成一個等距數(shù)組,間距可以選擇±1,±2,±4,±8四個選項(xiàng),DMA會把源地址中填入的數(shù)據(jù)當(dāng)做起始數(shù)據(jù),然后進(jìn)行加減間距,填到目標(biāo)地址中。
數(shù)據(jù)表到特定地址(Data Table To Specific Address)功能,就是DMA順序讀兩次源地址中的數(shù)據(jù),把第一個數(shù)據(jù)當(dāng)做目標(biāo)地址的地址,第二個數(shù)據(jù)當(dāng)做目標(biāo)地址的數(shù)據(jù),依次填入對應(yīng)的RAM中。
這里就接著上一次的UART的使用教程,上一次UART發(fā)送收到的信息是使用的中斷的方式,這次的程序使用UART接收中斷觸發(fā)DMA,DMA再把收到的信息通過UART發(fā)送出去。
在上次UART的SYSCONFIG配置中,在UART選項(xiàng)頁面配置DMA。
DMA的觸發(fā)源選擇UART的接收中斷,會生成一個DMA通道的配置,因?yàn)槭前汛诮邮?a href="http://www.asorrir.com/tags/寄存器/" target="_blank">寄存器中的數(shù)據(jù)搬運(yùn)到串口的發(fā)送寄存器,所以選擇的是固定地址到固定地址的發(fā)送,每次觸發(fā)發(fā)送為1個字節(jié),發(fā)送模式選擇Repeat Single,如果不是Repeat的話,DMA會在發(fā)送完成傳輸次數(shù)(Transfer Size)后關(guān)閉DMA通道。
再到程序中,配置也比較簡單,只需要手動配置好源地址和目標(biāo)地址,使能DMA即可。
配套的工程文件名為DMA,需要復(fù)制到SDK目錄下運(yùn)行。
DMA的觸發(fā)源比較多,在mspm0l1306.h中可以找到對應(yīng)芯片支持的觸發(fā)源。
可以看到除了除了DMA事件路由和軟件觸發(fā)外,還支持通用事件路由。
其實(shí)DMA的中斷除了可以中斷CPU,也可以產(chǎn)生通用路由事件做其他控制用,這樣就可以最大程度的較少CPU的干預(yù),提升效率,降低功耗。
審核編輯:湯梓紅
-
中斷
+關(guān)注
關(guān)注
5文章
905瀏覽量
42787 -
uart
+關(guān)注
關(guān)注
22文章
1276瀏覽量
103905 -
dma
+關(guān)注
關(guān)注
3文章
576瀏覽量
103200 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5677瀏覽量
104599 -
數(shù)據(jù)表
+關(guān)注
關(guān)注
0文章
299瀏覽量
11814
原文標(biāo)題:MSPM0L1306開發(fā)板教程7 - DMA
文章出處:【微信號:創(chuàng)易棧,微信公眾號:創(chuàng)易棧】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
MSPM0L1306開發(fā)板教程之OPA

電賽:mspm0l1306的開發(fā)板可以燒錄程序,但是程序運(yùn)行不了,怎么解決這個問題?
MSPM0L1306開發(fā)板教程之開發(fā)環(huán)境搭建

MSPM0L1306開發(fā)板教程之通用定時器

MSPM0L1306開發(fā)板教程之I2C

MSPM0L1306開發(fā)板教程之WWDT

TI MSPM0L1306開發(fā)板簡介

MSPM0 L系列MCU硬件開發(fā)指南

MSPM0L1306 LaunchPad開發(fā)套件(LP?MSPM0L1306)

評論