Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

PSoC™ 4 Forum Discussions

idream
Level 2
Level 2
First like given 10 sign-ins First like received

请问 PSoC Creator生成Hex文件,如何不添加0x9030_0000 ~ 0x9060_0000 的信息?

默认IDE生成的hex文件中包含了0x9030_0000等信息,除了手动编辑删除的方式外,是否还有其他配置使之不添加该信息?

thanks.

 

0 Likes
3 Replies
Vison_Zhang
Moderator
Moderator
Moderator
250 solutions authored 10 likes given 500 replies posted

Creator 生成 PSoC4 工程的 HEX 文件使用的是自带的 CyElfTool.exe 工具,为 90300000~90600000 地址生成信息也是这个工具的固化逻辑的一部分,这一点不好修改。

不过你可以参考下面链接的帖子,采用加入 postbuild 指令的方式让 Creator 生成 HEX 文件的同时也生成对应的 bin 文件。bin 文件的格式就简单多了,只保留 data 信息,多余的格式信息一概被删除。

https://community.infineon.com/t5/PSoC-4/How-can-PSoC-Creator-GCC-linker-generate-binary-BIN-file/td...

 

0 Likes

Hi Vison,

实测使用这种方式生成的BIN文件巨大,应该是因为生成的elf文件中也包含了0x9060_0000的信息,所以生成的BIN有3.97GB。

"D:\Cypress\PSoC Creator\4.4\PSoC Creator\import\gnu\arm\5.4.1\bin\arm-none-eabi-objcopy" -S -O binary ".\CortexM0p\ARM_GCC_541\Debug\AppBootable.elf" ".\CortexM0p\ARM_GCC_541\Debug\AppBootable.bin"

是否还有其他方式呢?

0 Likes
Vison_Zhang
Moderator
Moderator
Moderator
250 solutions authored 10 likes given 500 replies posted

bin 文件转换失败的原因和 HEX 文件中包含额外信息无关,应该是 elf 文件是 bootlodable elf 文件的原因,这种转换方式只适用于普通 project,  bootlodable 的 elf 文件是 boot 和 app 两个工程的 elf 文件 merge 到一起组合成的一个 elf,这个 elf 文件直接转换成 bin 看起来不适用这种方法。

这个有点麻烦了,如果把工程导出到 keil/iar 然后去生成标准 hex 格式输出文件或者 bin 文件到是一种方法,但是需要额外的操作,不是很好的方法。

0 Likes