|
我刚好做过你说的事情。
我的系统是PPC7447A,因为需要兼容linux和vxWorks,所以选择用uboot引导。
---------------------------------------------------------------
用uboot引导vxWorks有两种方式:
一是传统方式:先引导bootrom,再由bootrom引导vxWorks;
二是:直接用uboot引导vxWorks。
两种方式类似,需要注意的是
1, 编译生成的bootrom和vxWorks都是elf格式的,不能直接下载运行
需要转成二进制或十六进制文件,就是你说的objcopy实现。
2, 链接地址需要改动,通常BSP将bootrom等的链接地址设成flash地址,
如果想下载到ram中运行,必须将链接地址改成ram地址,并且tftp命令下载时的地址要和它一致。
3,因为默认bootrom或vxWorks_rom在启动时运行在flash等中,会对ram进行初始化配置,
而现在bootrom是直接下载到ram中运行,就不能再初始化ram了,否则会因为找不到ram中的代码而出错。
----------------------------------------------------------------------------
如:在config.h和makefile文件中将
ROM_BASE_ADRS改为0x00100000
ROM_TEXT_ADRS改为0x00100100
编译生成bootrom.bin后
->tftp 0x00100000 bootrom.bin
->go 0x00100100
就可以启动bootrom了,由bootrom去引导vxWorks我想你肯定熟悉。
直接启动vxWorks的情况和上述类似。
祝成功!
|
|