请教:关于VxWorks下载到板子后,没有运行的问题
我做了块mpc862的目标板.<br />使用bootrom引导,然后用网口把VxWorks映像下载到板子上.<br /><br />下载成功,但是没有运行.<br /><br />wftpd服务器端报:发送了个QUIT命令,使得VxWorks quit.<br />但是,我没有去干预啊,怎么会自己发个QUIT呢?<br /><br />看tornador一本书,说可能是系统映像的问题.<br />那,会是哪里的问题呢? 系统映像都是按照步骤一步一步造出来的.<br />已经基本解决了
奶奶的,是cache的问题.<br /><br />问题绕过去了,禁了cache,系统就跑起来了.<br /><br />只是cache 的问题还是没解决.<br /><br />这个地方没搞清楚: 是不是vxworks针对不同的cache结构,需要人为的去调整软件吗>?<br /><br />你跳转之前没有刷CACHE吧
刷新cache?
我不是很清楚,在哪里刷新?<br />跳转之前?是说在转入执行vxworks之前?在这之前cache是禁止的.<br />怀疑是cache一致性的问题,现象就是在cache使能后,紧跟的那条指令没有执行,是个绝对转移指令.例程如下:<br />lis r4,0xa00<br />isync<br />mtspr ic_cst,r4<br />isync<br />lis r4,0x400<br />isync<br />mtspr ic_cst,r4<br />isync<br />lis r4,0x200<br />isync<br />mtspr ic_cst,r4<br />b xxxx <-----(这里没有跳转,去执行下面的了,就出了问题)<br /><br />最近刚做完vxworks的启动调试,但是是在把cache禁止的情况下做的.<br /><br />现在想把cache功能加进去.<br />问题是,我的vxworks一加cache就启动不起来.<br /><br />要怎么调试呢,我现在感觉无从下手.<br />没有vxworks源程序.<br /><br />比较郁闷.<br />哪位给点建议?<br />补充:<br />cache的应用是不是跟具体的设备有关?<br />如果该设备驱动使用了cache,那么就需要考虑cache 的一致性;<br />如果该设备驱动没有使用cache,那么就不需要考虑cache的一致性或者根本就不需要考虑cache.<br />是不是可以这样想?<br /><br />未知.再补充一点
补充: <br /> cache结构不同,是不是vxworks的相关vcache初始化程序也不同?比如,一个是4-way,set-associative with 256 sets,一个是2-way,set-associative with 128 sets.这样两个不同cahce(不管是i or d),是不是初始化,及相关操作程序都不一样? <br /> 那如果不一样,我需要去哪里修改呢? <br /><br />我找了几天,也没发现可以修改哪里.cache初始化的函数vxworks已经做了封装,不同架够不用你操心
我的意思是你跳转的地方是不是没有在内存里,而是在cache里我知道你的意思了
哦 我晓得你的意思了.<br /><br />你是说这个b xxxx.<br /><br />是在ram里,通过仿真器看到了.有没有在cache里,我不是很确定;也许通过ic_dat可以看到,我再去试试.<br /><br />正常的操作,我想应该是在cache使能以后,紧跟的指令应该被放到cache里的.<br />从结果看,应该是没写到cache里.<br /><br />那这会是什么问题?<br /><br />没在cache里;,没在cache里;不用cache了
在做vxworks image的时候去掉cache组件.<br /><br />唉,郁闷的是,没有研究cache的使用的问题.有机会吧.<br /><br />现在,调试完成了.<br />谢谢各位!
页:
[1]