Vxworks-shell查看内存问题,马上结贴。

xiaozhaofei 2011-05-16 10:37:01
我们知道在shell下查看内存的用法:d Addr,UnitNum,UnitBytes
功能:从地址Addr开始显示UnitNum组的内存数据,每行显示16Bytes;每组包含UnitBytes字节,一行有16/UnitBytes
组数据;
说明:UnitBytes的可选值有:1,2,4,8;其它数值的显示形式和1相同.其中以1为参数可以从任意地址开始显示数据,
而已其它参数则只能从偶地址开始显示.

想问的是:(1)d命令是否每次直接从内存中读取数据,如果显示的地址在本CPU-MMU里设置的是带cache属性,用d 命令会不会先从cache里查?

如果系统中另外一处地方如其它CPU通过其它的方式把内存修改了,这个时候在d会不会出问题?
...全文
999 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhanghangzhi 2011-06-30
  • 打赏
  • 举报
回复
这里不错呀
winnie_zx 2011-05-31
  • 打赏
  • 举报
回复
值得学习
xjf01794 2011-05-26
  • 打赏
  • 举报
回复
支持2楼所说!!!
frank_zhou 2011-05-17
  • 打赏
  • 举报
回复
1)会
2)这种一般都是设备映射到本地的设备空间,或者比如VME空间等,这些地址本身在设置MMU的时候就应该要设置为not-cache的。
d命令本身就只是把地址对应的内容显示出来而已。
另外要考虑的是,比如VME地址空间是A24/D16的,这个时候用d命令显示的时候就应该用2字节显示的才对,如果用4字节显示可能就会有问题。甚至设备空间的数据宽度与之不匹配的时候可能会发生异常错误,比如用d以1字节内容显示某个VME设备地址,但VME设备是D16数据宽度的,并且不支持D8方式访问,就可能会发生异常错误。
小小豆芽 2011-05-16
  • 打赏
  • 举报
回复
d命令跟你自己用物理地址访问内存一样,就是data <- *(type *)addr,然后按照设定的格式打印出来。

至于你所提的问题其实跟d命令没有关系,访问cachable区域肯定是先cache,如未命中再从memory中加载。
一般的多核处理器都具有memory coherence机制,修改内存的core会通知其他core invalid cache。大概是这么意思,记得不是太清了,翻翻相关的CPU手册,肯定会涉及这方面的内容。

2,179

社区成员

发帖
与我相关
我的任务
社区描述
xworks是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。
社区管理员
  • VxWorks开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧