各位老师好,
我再6678平台下,用edma的CC1做数据搬运。pingset:将数据从一个内存固定源地址src搬到内存ping区域,pongset:将数据从该地址搬到pong区域。ping和pong在msm上。
ping pong搬运相互link。当ping搬运完成之后,edma发出中断,core0对ping区域进行处理,pong搬运完之后,core0处理pong数据。
现在中断程序只是简单的将ping或pong区域的数据搬运到另外一个数组里面,然后问题出现了,如果中断程序什么都不做,则edma可以正确的进行ping pong搬运,但是如果中断程序里面对ping区域进行了访问,则edma下一次搬到ping里面的数据就不是src地址的数据了。pong也是这样。
不知道是不是对内存做了保护,但是我看了mpu的介绍,发现它保护的空间并没有到0x0cxxxxx,也就是没有对msm进行保护。在msmc里面,priID0~15,也没有edma啊,为什么edma的对内存的访问会受到限制呢?