完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我面临一个奇怪的缓存问题。我使用耦合到DMA的DCMI,以便将图像采集到外部SDRAM中。如应用说明 AN4839 中所述,我按照这种方式进行。
在stm32F7上,缓存失效例程一被调用,CPU就会产生总线错误。 在 stm32F7 上,在指示传输结束的 DMA 中断中,我将缓存失效 ( cache_D_Invalidate() ;) 替换为缓存清除,然后是缓存失效 ( cache_D_Clean(); cache_D_Invalidate(); )。添加一个干净的(cache_D_Clean();)似乎可以避免总线错误,但我不明白为什么。 为什么 H7 和 F7 缓存在同一代码上的行为不同? 感谢您的反馈。 知道为什么吗? |
|
相关推荐
1个回答
|
|
清除/使整个缓存失效的函数通常根本不应该使用并且几乎没有用。通常,可以只启用 I-cache,不需要任何进一步的管理。对于 D-cache 的正确管理必须遵循 3 个基本规则:
如果所有行都已分配,则缓存控制器运行行逐出过程,其中选择一条行(取决于替换算法)清理/无效,然后重新分配。数据缓存和指令缓存实现了伪随机替换算法。 AN4838 也密切相关。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2632 浏览 1 评论
3208 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1783 浏览 1 评论
3607 浏览 6 评论
5987 浏览 21 评论
939浏览 4评论
1315浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
582浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1302浏览 3评论
1357浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 06:12 , Processed in 0.897735 second(s), Total 47, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号