刚刚离职,但是原先的项目中碰见一个问题,已经解决,写个博客记录一下。
问题描述:
板卡的内存空间为1GB,但是在shell中使用d命令读取所以的内存信息,在访问700MB+的地址就会报访问异常。
分析步骤:
和硬件确认板卡的RAM确实是1GB,并且如果某一块坏的话整个内存将无法使用。
在bootrom启动后读取700MB+的地址没有问题。
确定是内核配置的问题,检查所有内核中关于内存空间映射的配置,没有发现什么问题。查看内核编程手册内存映射章节,发现这样的描述:
在不支持进程的情况下,vxworks的内存映射是这样的:
在支持进程的情况下,内存映射另外一个样子:
这样就分析出来,内核镜像的配置中是不是把RTP给打开了,检查配置文件,果然。