2009-12-23 36 views
1

我是嵌入式設備編程的新手。我有一項任務是從DSP存儲器地址讀取數據塊並將其複製到其他地址(其他外圍設備映射的地址)。複製過程是通過編程設備中的一個DMA通道來完成的。 我想將第一個副本的拷貝複製到別處。嵌入式系統:使用兩個不同的DMA讀取相同的內存塊

現在我的問題是,如果我使用第二個DMA通道並在第一個DMA開始工作後立即觸發其複製操作,兩個DMA操作是否會以某種方式相互衝突?

+2

你使用什麼樣的DSP?我懷疑答案取決於目標... – 2009-12-23 11:01:59

回答

4

依賴,我敢肯定,你的什麼做這個,但沒有,DMA通道將不太可能「碰撞」儘管有人可能會搶佔其他。

如果您在Microchip dsPIC33F器件之一上使用該器件,則DMA的要點是訪問與CPU無關。如果時間正確,那麼您可以將DMA時序與您的時鐘時序相匹配,並進行原子讀取或寫入。此外,您最多可以有8個單向通道,按優先順序排列。在這個平臺上,我相信,(我不知道)兩個DMA通道不會同時工作,它們將根據特定通道的優先級一個接一個地運行。即使優先級較低的通道先啓動,優先級較高的通道也會先完成。

所以,是的,您可以複製信息,以兩個不同的位置,而無需使用了CPU時鐘,但它需要兩倍的時間。

相關問題