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.

[参考译文] CCS/RM48L952:armhex

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/934170/ccs-rm48l952-armhex

器件型号:RM48L952
主题中讨论的其他器件:UNIFLASH

工具/软件:Code Composer Studio

我想将.out 转换为.hex、能否获得一个可以下载 armhex.exe 的链接? 我在 TI.com 上搜索、找不到下载链接

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

    您好!

    ARMHEX 与编译器一起安装。 它位于:

    C:\ti\ccsxx\ccs\tools\compiler\ti-cgt-arm_xx.LTS \bin

    BTW、CCS 能够生成十六进制文件:

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

    好的、谢谢。 我已经找到了在 CCS 中生成十六进制的方法。 出于某些原因、我无法使用 TI 提供的引导加载程序。我想更新使用十六进制文件的程序。 现在、我想在 RAM 中运行一些函数、这些函数将接收十六进制文件、然后使用闪存库 API 将数据写入闪存。 可以正常工作吗? 到目前为止、我感到困惑的是、在十六进制文件中、一些数据被写入 RAM 地址、闪存库中的 API 可以帮助我执行此操作还是需要忽略数据? 我是否可以参考任何文档?

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

    您好!

    十六进制文件的记录包含标头、地址、校验和和数据。 您可以将数据编程到地址(绝对地址)。

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

    BTW、请检查您的链接器 cmd 文件是否已将 const 映射并加载到 RAM 而不是闪存。

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

    您是说我将数据写入0x0800000吗? 在存储器映射中、0x0800000是 RAM 的开始、在我的链接器文件中、0x0800000是堆栈的开始。 闪存 API 可以将数据写入 RAM 吗?

    附件是我的链接器文件  

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

    它是从0x080053B0开始的日志数据。 十六进制文件用于引导加载程序、而不是应用程序映像。 您可以使用 Uniflash 将 Hex 文件或.out 文件加载到闪存中。

    使用引导加载程序以十六进制格式对应用程序映像进行编程时、需要首先计算地址的绝对值:

    TTyle (第7字节和第8字节)= 0x04 ->高位地址

    地址(第3个~第6个字节):低位地址

    绝对地址=高位地址<< 16 +低位地址

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

    如果地址位于 RAM 范围、只需将初始化的变量复制到 RAM、就不使用闪存 API。