硬汉嵌入式论坛

 找回密码
 立即注册
查看: 297|回复: 1
收起左侧

[Cache] MDK调试时候使用内存监控,在cache开启的情况下可能读到的是cache里面的缓冲而不是实际sram里面的数据

[复制链接]

4

主题

6

回帖

18

积分

新手上路

积分
18
发表于 2024-2-23 20:09:51 | 显示全部楼层 |阅读模式
       如题,在使用DMA的时候,我进入调试模式,查看内存数据,我发现手动改变了一次目标地址的数据,全都设置成0xff后,按理来说在dma一直运行的情况下,他应该很快就会变成DMA发送的源地址的数据,但是我发现他数据一直没有变,然后就莫名其妙突然想到前两天看视频学到的mpu相关的知识,然后使用scb-invalidatedcache,发现目标地址的数据突然正常了。但是一时间没有反应过来到底是哪里的问题。
       在硬汉老哥的帮忙下,突然意识到mdk调试的内存监控可能读的是cache里面的数据,而不是实际ram里面的数据,这就能解释为什么在使用scb-invalidatedcache之后就可以看到正确的数据了。

       之前用mdk调试的时候先入为主了,一直觉得内存监控窗口监控的就是实际内存的数据,他没写cache就跟cache一点关系也没有,然后嘀咕来嘀咕去弄了一两天才明白为啥看到的数据不对。感觉很多萌新第一次使用mdk调试可能会误认为内存监视窗口检测到的就是实际的内存,我就把我自己碰到的问题写下来,如果能帮萌新躲个坑就再好不过了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106760
QQ
发表于 2024-2-24 00:32:57 | 显示全部楼层
谢谢楼主分享。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-5 02:22 , Processed in 0.229860 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表