如题,在DMA循环模式从I2C外设转移数据到储存器的过程中,读取储存器的值会不会出现故障?比如对于两个八位数据的数组,会不会出现,我读取这两个数据的时候,CPU一边读DMA一边改?或者会不会出现我读取数组第一个数据时,第二数据已经被改了这种情况?
这些情况会出现吗?会的话该如何避免呢?只能在读取的时候关闭DMA吗?
热门产品 :
CH182: 以太网PHY收发器芯片
如题,在DMA循环模式从I2C外设转移数据到储存器的过程中,读取储存器的值会不会出现故障?比如对于两个八位数据的数组,会不会出现,我读取这两个数据的时候,CPU一边读DMA一边改?或者会不会出现我读取数组第一个数据时,第二数据已经被改了这种情况?
这些情况会出现吗?会的话该如何避免呢?只能在读取的时候关闭DMA吗?
不会出现冲突,同一时间只能是DMA或者CPU操作内存;但是循环模式数据可能会被覆盖,你可以开启DMA中断,在中断出路函数中处理一次数据,这样处理的数据都是一轮循环中的数据。