This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6000 boot table的问题求教



C6748DSP版本使用的是HPI引导方式,我自己用hex6x.exe将out转换出来的bin文件是这样的:头一个字是程序入口地址,然后跟着section的大小、load地址及数据等内容,如下图。

用之前的人留下来的一个exe小程序转换出来的是这样:研究了一下hpi引导代码,头一个字是段的数目,而且字节顺序需要反一下0x10 00 00 00--->0x00 00 00 10

,load地址和run地址也没有重复生成,一共16个sections,如下图。

部分map文件内容:   数了一下,确实是16个段

OUTPUT FILES: hpiboot2.bin [b0..b7]

   CONTENTS: 10000000..10095323   BOOT TABLE
                            .bios : btad=10000000  dest=c4601140 size=000046a0
                            .data : btad=100046ac  dest=c4633348 size=00000168
                           .pinit : btad=1000481c  dest=c4601124 size=0000000c
                            .text : btad=10004830  dest=c4572e20 size=00079a80
                           .cinit : btad=1007e2b8  dest=c45ec8a0 size=00014884
                          .switch : btad=10092b44  dest=c46330b0 size=00000294
                         .gblinit : btad=10092de0  dest=c46335d0 size=000000d0
                         .sysinit : btad=10092eb8  dest=c4632640 size=00000560
                         .trcdata : btad=10093420  dest=c4601130 size=0000000c
                       .rtdx_text : btad=10093434  dest=c46290e0 size=00000fc0
                           .const : btad=100943fc  dest=c4631c60 size=000009c5
                            .args : btad=10094dcc  dest=c4572e18 size=00000004
                         .hwi_vec : btad=10094dd8  dest=1182d800 size=00000200
                           .trace : btad=10094fe0  dest=1182da00 size=00000200
                             .log : btad=100951e8  dest=1182ddd8 size=00000018
                             .sts : btad=10095208  dest=1182dc00 size=00000110

 

想问一下,这个段的数目有没有hex6x选项可以直接生成,我查了一下C6000汇编的那个文档也没找着,还有上述文件里面的字节顺序为什么和正常我们数据手册里看到的地址是相反的,求指点谢谢~~

  • 这个要看那个.exe小程序是怎么转的. 建议你用TI提供的hex6x.exe, 我们对转出来的boot table格式有具体的说明.

    段的数目hex6x没有选项可以直接生成, 只能通过.map文件查看.  hex6x转出来的boot table最后结束标志位为0x00000000, 实际操作中, host不是必须知道有几个段, 只要判断到section size为0x00000000, 表示boot table结束, 没有更多的段需要加载.

  • 嗯,明白了,能否再问一个,我使用hex6x.exe直接用的 -b 选项生成了 .bin 文件,是不是还可以用 -a  或 -i 生成hex文件后再转换成bin类型的,这个转换程序应该用什么语言在什么软件环境下做,能不能提供一下思路,谢谢。

  • 十六进制是还可以再转换成bin文件, 但既然有-b选项直接生成, 就没必要再转了.

    如果你要写十六进制转bin文件的话, 可以google/baidu一下.