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.

[参考译文] 编译器/TMS570LS3137:使用 Armhex 实用程序将.out 转换为.hex 时出现问题

Guru**** 2524550 points
Other Parts Discussed in Thread: HALCOGEN

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/810056/compiler-tms570ls3137-issues-converting-out-to-hex-with-armhex-utility

器件型号:TMS570LS3137
主题中讨论的其他器件:HALCOGEN

工具/软件:TI C/C++编译器

您好!

我正在尝试使用 armhex.exe 实用程序将.out 文件转换为.hex 文件。  我的项目是使用具有基本链接器部分的 HalCoGen 生成的:

内存
{
引导程序(X):origin=0x00000000 length=0x00000020
FLASH0 (RX):origin=0x00000020 length=0x0017FFE0
FLASH1 (RX):origin=0x00180000 length=0x00180000
堆栈(RW):origin=0x08000000 length=0x00017300
RAM (RW):origin=0x08017300 length=0x00028d00

/* USER CODE BEGIN (2)*/*
USER CODE END */
}/*

USER CODE BEGIN (3)*/*
//* USER CODE END *//*---


--- */
/*段配置 */

SECTIONS
{
.intvecs:{}>向量
.text:{}> FLASH0| FLASH1
.const:{}> FLASH0| FLASH1
.cinit:{}> FLASH0| FLASH1
.pinit:{}> FLASH0| FLASH1
.bss :{}> RAM
.data :{}>RAM
.sysmem :{}>RAM


/*用户代码开始(4)*/*
用户代码结束*/
} 

我还不明白为什么、但当我运行"armhex.exe -i projectName.out -o projectName.hex"时、我会收到以下警告:

转换为英特尔格式...
"projectname.out".intvecs =>.intvecs
警告:正在将数据写入自动生成的文件 projectName.i1
警告:正在将数据写入自动生成的文件 projectName.i2
警告:正在将数据写入自动生成的文件 projectName.i3
"projectname.out".text =>.text
"projectname.out".const =>.const
"projectname.out".init_array =>.init_array
"projectname.out".cinit =>.cinit

可能并不奇怪、但生成的十六进制文件无法正常运行。  

为什么数据会自动生成到另一个文件中? 我是否需要为实用程序指定其他参数才能为此器件正确生成.hex 文件?

谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    默认的 ROM 宽度为8位。 文件数=存储器宽度(32位)/ROM 宽度(8位)= 32/8=4个文件。 这就是您有4个十六进制文件的原因。 如果将 ROM 宽度更改为32位、则只会生成1个十六进制文件。

    armhex.exe -i projectName.out -o projectName.hex -romwidth=32

    armhex 还会转换所有已初始化的段。

    请参阅中标题为十六进制转换实用程序说明的章节: