TI论坛
直播中

刘珊宏

8年用户 229经验值
私信 关注
[问答]

C6000 boot table的问题求教:字节顺序为什么和数据手册里的地址是相反的?

本帖最后由 电子人steve 于 2018-7-25 19:14 编辑

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

用之前的人留下来的一个exe小程序转换出来的是这样:研究了一下hpi引导代码,头一个字是段的数目,而且字节顺序需要反一下0x10 00 00 00--->0x00 00 00 10
,load地址和run地址也没有重复生成,一共16个sections,如下图。

部分map文件内容:   数了一下,确实是16个段
  1. OUTPUT FILES: hpiboot2.bin [b0..b7]
  2.    CONTENTS: 10000000..10095323   BOOT TABLE
  3.                             .bios : btad=10000000  dest=c4601140 size=000046a0
  4.                             .data : btad=100046ac  dest=c4633348 size=00000168
  5.                            .pinit : btad=1000481c  dest=c4601124 size=0000000c
  6.                             .text : btad=10004830  dest=c4572e20 size=00079a80
  7.                            .cinit : btad=1007e2b8  dest=c45ec8a0 size=00014884
  8.                           .switch : btad=10092b44  dest=c46330b0 size=00000294
  9.                          .gblinit : btad=10092de0  dest=c46335d0 size=000000d0
  10.                          .sysinit : btad=10092eb8  dest=c4632640 size=00000560
  11.                          .trcdata : btad=10093420  dest=c4601130 size=0000000c
  12.                        .rtdx_text : btad=10093434  dest=c46290e0 size=00000fc0
  13.                            .const : btad=100943fc  dest=c4631c60 size=000009c5
  14.                             .args : btad=10094dcc  dest=c4572e18 size=00000004
  15.                          .hwi_vec : btad=10094dd8  dest=1182d800 size=00000200
  16.                            .trace : btad=10094fe0  dest=1182da00 size=00000200
  17.                              .log : btad=100951e8  dest=1182ddd8 size=00000018
  18.                              .sts : btad=10095208  dest=1182dc00 size=00000110


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

回帖(3)

余少虹

2018-7-25 09:31:08
这个要看那个.exe小程序是怎么转的. 建议你用TI提供的hex6x.exe, 我们对转出来的boot table格式有具体的说明.
段的数目hex6x没有选项可以直接生成, 只能通过.map文件查看.  hex6x转出来的boot table最后结束标志位为0x00000000, 实际操作中, host不是必须知道有几个段, 只要判断到section size为0x00000000, 表示boot table结束, 没有更多的段需要加载.
举报

刘珊宏

2018-7-25 09:47:45
引用: vuywsdfwf 发表于 2018-7-25 09:31
这个要看那个.exe小程序是怎么转的. 建议你用TI提供的hex6x.exe, 我们对转出来的boot table格式有具体的说明.
段的数目hex6x没有选项可以直接生成, 只能通过.map文件查看.  hex6x转出来的boot table最后结束标志位为0x00000000, 实际操作中, host不是必须知道有几个段, 只要判断到section size为0x00000000, 表示boot tabl ...

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

余少虹

2018-7-25 10:03:58
引用: 波士顿特仑苏 发表于 2018-7-25 09:47
嗯,明白了,能否再问一个,我使用hex6x.exe直接用的 -b 选项生成了 .bin 文件,是不是还可以用 -a  或 -i 生成hex文件后再转换成bin类型的,这个转换程序应该用什么语言在什么软件环境下做,能不能提供一下思路,谢谢。

十六进制是还可以再转换成bin文件, 但既然有-b选项直接生成, 就没必要再转了.
如果你要写十六进制转bin文件的话, 可以google/baidu一下.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分