最近测试bootloader时,遇到了一些问题。调了好几天找不到原因了。
问题是:我的开发板脱离仿真器运行时,DSPBIOS工程可以跑起来了,跑到main函数里面,在创建任务时就跑不下去了(可能是死掉了或是其他异常),有时候是可以跑下去,
并且任务调度等都能正常。请问有没有遇到过相似问题?大概原因在?(有仿真器的时候,这个工程是正常运行的)
下面的我的bootloader的一些信息,我的bootloader会不会有问题呢?
我的bootloader加载的是DSPBIOS工程的app.bin文件,bin文件是以boot table格式存储在nor flash里。
OUTPUT TRANSLATION MAP
——————————————————————————–
00000000..ffffffff Page=0 Memory Width=8 ROM Width=8
——————————————————————————–
OUTPUT FILES: Z:\biostest\bin\app.bin [b0..b7]
CONTENTS: 00000000..0000d6cf BOOT TABLE
.sysinit : btad=00000000 dest=c00f0000 size=000004e0
.trcdata : btad=000004ec dest=c00f04f0 size=0000000c
.hwi_vec : btad=00000500 dest=11807000 size=00000200
.bios : btad=00000708 dest=11800000 size=00003ac0
.gblinit : btad=000041d0 dest=11807450 size=00000028
.args : btad=00004200 dest=11807300 size=000000f0
.trace : btad=000042f8 dest=11806dc0 size=00000200
.log : btad=00004500 dest=11807478 size=00000018
.sts : btad=00004520 dest=11806fec size=00000010
.cinit : btad=00004538 dest=1180ee20 size=000014ec
.const : btad=00005a2c dest=118114c8 size=000002e9
.printf : btad=00005d20 dest=118117b1 size=0000001a
.text : btad=00005d44 dest=118074a0 size=00007980
==========================================================
运行bootloader加载 Load app.bin size = len * 4
section addr :0xc00f0000 ,len = 312
section addr :0xc00f04f0 ,len = 3
section addr :0x11807000 ,len = 128
section addr :0x11800000 ,len = 3760
section addr :0x11807450 ,len = 10
section addr :0x11807300 ,len = 60
section addr :0x11806dc0 ,len = 128
section addr :0x11807478 ,len = 6
section addr :0x11806fec ,len = 4
section addr :0x1180ee20 ,len = 1339
section addr :0x118114c8 ,len = 187
section addr :0x118117b1 ,len = 7
section addr :0x118074a0 ,len = 7776
Image End address :0x6030d6d0
DSP Enery Point :0xc00f02e0
Entery ARM Wake up DSParm boot was successful
上面部分是生成的app.map.
下面部分是我加载时,输出的加载到内存的地址以及每个section的长度。刚刚好跟上面吻合。加载完成之后,跳到入口地址去。。
我的bootloader是这样的。
Tony Tang:
请问用的是哪款芯片?
上面的boot table是如何生成的?
ARM端运行的是什么操作系统?