PowerPC 启动序列上的 VxWorks 6.6 _sysInit() 操作码异常
VxWorks 6.6 on PowerPC Boot Sequence _sysInit() opcode bizarity
对于我正在进行的项目,
运行 在 PowerPC MPC-8641d、VxWorks6.6 上。
我需要从另一个 VIP 项目启动 VIP 图像。
调查引导顺序,引导加载程序似乎是:
读取图像的二进制头,
将二进制图像(没有 hdr)复制到 0x100000
并跳转到 0x100000
(_sysInit())所在的位置。
做与引导加载程序相同的事情,我的 CPU 冻结在地址 0x100004h
阅读 0x100000
的内容揭示了以下转储:
48 44 01 FC BA AD C0 DE 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
...
...
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
嗯,0x484401FC
看起来像函数序言,
但是,0xBAADC0DE
一定是个笑话!
我的VIP怎么调用这个地址运行
我还缺少其他东西吗?
0x484401FC
是 b 0x4401fc
,所以它应该分支到 0x4401fc
并且从不执行 0x100004
处的指令(除非它 returns,但是该分支未设置 LR
,因此必须手动设置 return。
对于我正在进行的项目,
运行 在 PowerPC MPC-8641d、VxWorks6.6 上。
我需要从另一个 VIP 项目启动 VIP 图像。
调查引导顺序,引导加载程序似乎是:
读取图像的二进制头,
将二进制图像(没有 hdr)复制到 0x100000
并跳转到 0x100000
(_sysInit())所在的位置。
做与引导加载程序相同的事情,我的 CPU 冻结在地址 0x100004h
阅读 0x100000
的内容揭示了以下转储:
48 44 01 FC BA AD C0 DE 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
...
...
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
嗯,0x484401FC
看起来像函数序言,
但是,0xBAADC0DE
一定是个笑话!
我的VIP怎么调用这个地址运行
我还缺少其他东西吗?
0x484401FC
是 b 0x4401fc
,所以它应该分支到 0x4401fc
并且从不执行 0x100004
处的指令(除非它 returns,但是该分支未设置 LR
,因此必须手动设置 return。