Embedded 嵌入式系统:用两个不同的DMA读取相同的内存块

Embedded 嵌入式系统:用两个不同的DMA读取相同的内存块,embedded,dma,Embedded,Dma,我不熟悉嵌入式设备编程。我有一个任务,从DSP内存地址读取一块数据,并将其复制到其他地址(其他外设映射的位置)。复制过程通过对设备中的一个DMA通道进行编程来完成。 我想,除了第一份拷贝之外,在其他地方拷贝一份该数据的拷贝 现在我的问题是,如果我使用第二个DMA通道,并在第一个DMA开始工作后立即触发它的复制操作,这两个DMA操作会以某种方式相互冲突吗?我确信,这取决于您在什么情况下执行此操作,但不会,DMA通道不太可能“冲突”,尽管其中一个可能会抢占另一个 如果您在一个微芯片dsPIC33F设

我不熟悉嵌入式设备编程。我有一个任务,从DSP内存地址读取一块数据,并将其复制到其他地址(其他外设映射的位置)。复制过程通过对设备中的一个DMA通道进行编程来完成。 我想,除了第一份拷贝之外,在其他地方拷贝一份该数据的拷贝


现在我的问题是,如果我使用第二个DMA通道,并在第一个DMA开始工作后立即触发它的复制操作,这两个DMA操作会以某种方式相互冲突吗?

我确信,这取决于您在什么情况下执行此操作,但不会,DMA通道不太可能“冲突”,尽管其中一个可能会抢占另一个

如果您在一个微芯片dsPIC33F设备上使用此功能,DMA的要点是访问独立于CPU。如果您的计时正确,那么您可以将DMA计时与时钟计时相匹配,并获得原子读写。此外,您最多可以有8个单向通道,按优先级排序

在那个平台上,我相信,(我不知道)两个DMA频道不会同时运行,它们会根据特定频道的优先级一个接一个地运行。高优先级通道将首先完成,即使低优先级通道首先启动


因此,是的,您可以将信息复制到两个不同的位置,而不会占用CPU时钟,但这将需要两倍的时间

我敢肯定,这取决于你在做什么,但不,DMA通道不太可能“冲突”,尽管其中一个可能会抢占另一个

如果您在一个微芯片dsPIC33F设备上使用此功能,DMA的要点是访问独立于CPU。如果您的计时正确,那么您可以将DMA计时与时钟计时相匹配,并获得原子读写。此外,您最多可以有8个单向通道,按优先级排序

在那个平台上,我相信,(我不知道)两个DMA频道不会同时运行,它们会根据特定频道的优先级一个接一个地运行。高优先级通道将首先完成,即使低优先级通道首先启动


因此,是的,您可以将信息复制到两个不同的位置,而不会占用CPU时钟,但这将需要两倍的时间

您使用的是哪种DSP?我怀疑答案取决于目标…您使用的是哪种DSP?我怀疑答案取决于目标。。。