前段时间,老板给了一大堆程序要移植到vxworks上,做好适配后将程序都作成了.a文件。但是把所有的库加进去,build没什么问题。但是在下载到目标板以后start at 308000就死了。而把库去掉就没问题了。困扰啊!忙了几天。先后试了去掉MMU,cache,有时候有点作用但是还是很不稳定。
感觉应该是内存方面的问题,于是跟到内核一点点地打印,前面发了通过串口打印的程序。最后发现在内核初始化前,打印内存大小时出现问题。于是又仔细的看了一下,初始化内存的资料。我用的工控板,X86支持自动计算内存大小,现在我还是不知道它是怎么计算的内存,但是感觉应该是这个地方的问题。于是我将自动计算内存关掉,自己设置一个固定值。OK啦!再用MMU和cache都没什么问题了。
仔细想想应该是函数memtop这个函数出现了问题。