TASKING中文网站 > 新手入门 > TASKING怎么生成HEX文件 TASKING生成HEX后地址范围不正确如何调整
教程中心分类
TASKING怎么生成HEX文件 TASKING生成HEX后地址范围不正确如何调整
发布时间:2026/08/28 11:21:01

  TASKING TriCore工程链接后可以同时输出ELF和Intel HEX,HEX常用于烧录或生产下载。HEX地址来自链接器已经确定的Section位置,如果地址范围与预期不同,应先核对LSL和Map文件,再检查HEX输出格式。

  一、TASKING怎么生成HEX文件

 

  TASKING可以直接生成一个Intel HEX,也可以按LSL中的ROM memory拆分输出。普通工程可先使用单HEX,分区烧录时再启用Chip Output。

 

  1、开启Intel HEX输出

 

  ①选中工程,进入【Project】→【Properties】。

 

  ②打开【C/C++Build】→【Settings】。

 

  ③进入【Linker】→【Output Format】。

 

  ④勾选【Generate Intel Hex format file】。

 

  ⑤在【Size of addresses】中设置地址长度,AURIX工程可检查是否使用【4】。

 

  ⑥按烧录要求决定是否启用【Emit start address record】。

 

  ⑦保存设置并执行【Rebuild Project】。

 

  ⑧在输出目录中检查【.hex】文件。

 

  2、按ROM区域分别生成HEX

 

  ①进入【Linker】→【Output Format】。

 

  ②开启【Generate Intel Hex format file】。

 

  ③勾选【Create file for each memory chip】。

 

  ④重新Build工程。

 

  ⑤打开当前【.lsl】,确认对应memory为【type=rom】。

 

  ⑥核对输出文件对应的PFLASH或其他ROM区域。

 

  二、TASKING生成HEX后地址范围不正确如何调整

 

  HEX地址异常时,先看Map里的Section是否已经放错。Map也错误时先查链接布局;Map正确再查地址宽度和输出方式。

 

  1、检查Map和LSL中的地址

 

  ①重新Build并打开【.map】文件。

 

  ②找到代码和初始化数据对应的Section。

 

  ③查看【Space addr】和所在Memory。

 

  ④确认代码是否进入【pflash0】【pflash1】等目标区域。

 

  ⑤地址不对时打开工程【.lsl】。

 

  ⑥找到对应【section_layout】和group。

 

  ⑦检查【run_addr】是否指向正确Flash memory。

 

  ⑧修改后重新链接并核对Map。

 

  AURIX的PFLASH可能存在cached和not_cached映射,同一物理Flash可对应不同地址。LSL选错mapping时,HEX地址也会变化。

  2、检查地址宽度和应用起始位置

 

  ①进入【Linker】→【Output Format】。

 

  ②检查【Size of addresses】。

 

  ③Intel HEX可使用【1】【2】【4】字节地址长度。

 

  ④工程使用32位地址时,检查是否设置为【4】。

 

  ⑤带Bootloader时,确认LSL中的应用起始位置避开Bootloader区域。

 

  ⑥需要预留标定区或升级区时,在LSL中限制Section范围。

 

  ⑦完整Rebuild后重新生成HEX。

 

  地址长度只影响HEX记录的地址表达,不会移动Section。程序需要换到另一段Flash时,应修改LSL,不要手工改HEX。

 

  三、调整后怎么确认HEX地址正确

 

  修改LSL和输出参数后,可以把Map、HEX解析结果和目标Flash范围对照。Intel HEX会用扩展地址记录表示高位地址,不要只看第一行判断起始位置。

 

  1、对照Map和HEX范围

 

  ①从Map记录第一个Flash Section地址。

 

  ②记录主要代码区结束地址。

 

  ③用烧录工具打开新生成的HEX。

 

  ④查看工具解析后的起始和结束地址。

 

  ⑤确认主要代码段与Map一致。

 

  ⑥检查Bootloader预留区没有被覆盖。

 

  2、烧录后检查目标Flash

 

  ①使用调整后的HEX执行下载。

 

  ②读取目标Flash中的应用起始区域。

 

  ③对照Map中的入口和关键Section地址。

 

  ④确认程序写入规划的Flash范围。

 

  ⑤重新上电验证启动。

 

  ⑥地址正确但仍无法运行时,再检查启动入口和Bootloader跳转。

  总结

 

  TASKING生成HEX时,文件地址取自链接阶段的Section定位,LSL决定程序落在哪段Flash。地址范围异常时,应先用Map确认链接结果,再检查memory mapping、run_addr、地址宽度和Chip Output设置,避免直接修改HEX导致镜像与ELF不一致。如需进一步了解TASKING HEX文件生成、LSL地址布局与烧录范围异常排查方法,欢迎联系咨询。

135 2431 0251