这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 请教高手Vxworks bootrom的问题.谢谢!

共3条 1/1 1 跳转至

请教高手Vxworks bootrom的问题.谢谢!

菜鸟
2006-03-06 05:12:13     打赏

根据vxworks开发手册以及相关文档的说明,bootrom应该加载到0x8000处,然后跳入入口点romInit处执行,而且romInit应该是bootrom代码段的第一条指令,那么romInit的入口地址应该也应该是0x8000。但是,用tornado2.0生成bootrom(压缩的)时,执行脚本显示:...........

..............

ld386 -o tmp.o -X -N -e _usrInit \
-Ttext 00008000 bootConfig.o version.o sysALib.o sysLib.o G:\tornado2\target\lib\l ibI80386gnuvx.a

...................................

ld386 -X -N -e _romInit -Ttext 00108000 \
-o bootrom romInit.o bootInit.o version.o \
G:\tornado2\target\lib\libI80386gnuvx.a bootrom.Z.o
G:\tornado2\host\x86-win32\bin\romsize 386 -b 00090000 bootrom

在上面的脚本中ld386 -X -N -e _romInit -Ttext 00108000 显示bootrom的入口点是_romInit,代码段起始地址时00108000,那岂不是指romInit的地址是0010800?好像有出入呀?不应该是8000么? 我很难理解到底是什么意思,还是我其他什么地方搞错了?

另外,在bootInit里面用到的宏BOOTCODE_IN_RAM是什么意思呀?

请高手指点呀,感激不尽!!




关键词: 请教     高手     Vxworks     bootrom     问题         

菜鸟
2006-03-06 17:39:00     打赏
2楼

你看看config.h和makefile中RAM_HIGH_ADDR是多少,这就是bootrom加载地址。这二者应该一致。


菜鸟
2006-03-06 19:35:00     打赏
3楼
是一致不错,ROM_HIGH_ADDR是8000,ROM_LOW_ADDR是0108000,按照ld里面制定的代码段地址010800,romInit应该在108000才能正确执行呀,两者不一致呀,是哪的问题呢?请版主帮帮忙呀

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]