问题描述:
小弟有1块开发板,里面有现成的Boot。CPU是是MPC852,上面跑vxworks5.5。
欲采用bootRom + vxworks image的方式,通过网口下载一个loadable vxWorks image进行开发。采用Tornado工具编译选项如下(RAM_LOW_ADR=0x10000):
得到一个vxWorks 映像文件。将此文件下载到开发板中,并执行得到,立刻出现异常,执行不下去。有如下提示信息:
Loading... vxworks
Starting at 0x10000...
Implementation Dependent Software Emulation
Exception current instruction address: 0x00010000
Machine Status Register: 0x00001000
。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。
r0 = a041dc sp = fd0e98 r2 = 0 r3 = 9000
r4 = 1000 r5 = 1 r6 = 2 r7 = faad0c
r8 = 40 r9 = ab0000 r10 = ffffffff r11 = fd0e98
r12 = 20002042 r13 = 0 r14 = 0 r15 = 0
r16 = 0 r17 = 0 r18 = 0 r19 = 0
r20 = 0 r21 = 0 r22 = 0 r23 = 0
r24 = 0 r25 = 0 r26 = 0 r27 = 0
r28 = 0 r29 = 10000 r30 = 0 r31 = fd0e98
msr = 1000 lr = a041ec ctr = 0 pc = 10000
cr = 20000084 xer = 0
出现异常“Exception current instruction address”的地址就是我将内核链接到的地址“0x00010000”,我的Tornado环境的宏定义如下:(注: 地址就在0x00010000)。
所以我怀疑我的内核文件被加载后,一执行就异常。
我再将vxWorks 映像文件反汇编,得到如下: