使用定时器触发ADC转换DMA传输,在开启Cache后都不正常工作
在使能Cache之前,使用定时器触发ADC并采用DMA传输的方式进行数据传输,并在AXI RAM(地址0x24000000)中开辟了存储空间,定时器可以正常计数,ADC中DR寄存器的值也不断更新,DMA缓存区中也有数据更新,但使能Cache后(按照DMA双缓冲配置例程),定时器也不计数了,DR寄存器中只有个刚上电后采集的数据,并且不更新了,且DMA缓冲区中都是0x0,且进入不了DMA中断服务函数,请教大神帮忙答疑一下?看下map文件,你的ADC缓冲是否确定安排到0x24000000里面。
因为开Cache仅仅是影响数据一致性,并不会影响ADC,TIM和DMA的正常运行。 eric2013 发表于 2024-1-23 10:31
看下map文件,你的ADC缓冲是否确定安排到0x24000000里面。
因为开Cache仅仅是影响数据一致性,并不会影 ...
好的,十分感谢,我去尝试一下! eric2013 发表于 2024-1-23 10:31
看下map文件,你的ADC缓冲是否确定安排到0x24000000里面。
因为开Cache仅仅是影响数据一致性,并不会影 ...
例程中 __STATIC_INLINE void SCB_EnableDCache (void)函数里面的内容是灰色的;而我创建的工程中里面却不是怎么回事?
langlangago 发表于 2024-1-24 22:57
例程中 __STATIC_INLINE void SCB_EnableDCache (void)函数里面的内容是灰色的;而我创建的工程中里面却 ...
这个是MDK的bug,你可以调试看下,实际是进去了
发现MDK5.25一个bug,语法检测机制中自动让条件编译中未使用的部分变成灰色,有时候是不正确的
https://www.armbbs.cn/forum.php?mod=viewthread&tid=85910&fromuid=58
(出处: 硬汉嵌入式论坛)
eric2013 发表于 2024-1-25 00:34
这个是MDK的bug,你可以调试看下,实际是进去了
发现MDK5.25一个bug,语法检测机制中自动让条件编译中 ...
我之前用CubeMax配置的相关操作在运行的时候就会出现上述问题(使用定时器触发ADC转换DMA传输,在开启Cache后都不正常工作),但是我手动配置后,现在可以正常工作,这个问题时出在哪里了呢,我检查了一下初始化配置代码,都是一样的。
页:
[1]