最近在弄CPCI6880下vxWorks5.4 的bsp, cpu为pentium,在制作过程中,发现如下问题:
1.使用tornado2.0下的vxsys.com制作的硬盘启动盘,每次在在启动时会提示vxld1.2 no bootrom.sys,但是在dos下使用vxload加载此bootrom.sys却可以成功。
2.加载vxWorks镜像的方式无法保存。
3.使用ftp下载vxWorks镜像后,系统会进行重启。
解决方法如下:
对于第一个问题,因为是初次接触bsp的开发,很多东西都不是很了解,在网上查找vxWorks5.4的信息也相当少,网上有人建议直接运用mkboot的方式制作启动硬盘,或者将bootrom生成为bootrom_uncmp,然后再使用vxcopy将其改为bootrom.sys,但是实验时发现两者均不可行,后面使用tornado2.2下的vxsys.com进行硬盘启动盘的制作,并使用vxcopy将生成的bootrom更改为bootrom.sys,系统成功启动,虽然耗时比较长,还待调试解决。
对于第二个问题,经过跟踪调试发现是因为sysNvRamGet和sysNvRamSet两个在启动命令行更改时,调用的返回值均为FALSE,后面在tornado2.0的bsp reference中查找发现这两个函数均没有实现,后面将风河的sysNvRam.c源文件添加到本bsp目录下,并改正出现的错误,系统的配置信息可以进行保存。
对于第三个问题,期间耗费了我相当长的时间,主要是因为在vxworks系统初始化的时候,系统就直接重启,没有打印信息,使用bsp下的usrconfig.c生成的vxWorks镜像发现系统重启的位置还不确定,有时候在设置系统时钟和中断的时候重启,有时候在进行网络初始化的时候重启,通过更改mmu和内存的高低地址及内存的大小,系统仍然重启,这个让人很无语,找不到解决的办法,因为无法定位错误,后面经历过多次的调试和查找原因后,在偶然的一次试验中,在bsp下的Makefile里面加载上MACH_EXTRA = muxLib.o,并同时将muxLib.c文件添加到本bsp目录下,系统通过ftp成功下载,网络正常。
至此,以上三个问题得以解决,希望能帮助有需要的人。