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.

[参考译文] TMS320F280041C:通过 CAN 总线定制引导加载程序

Guru**** 2529630 points
Other Parts Discussed in Thread: TMS320F280041C, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028065/tms320f280041c-custom-bootloader-over-can-bus

器件型号:TMS320F280041C
主题中讨论的其他器件: C2000WARE

过去、我通过 CAN 总线为非 TI 微控制器开发了定制引导加载程序。 现在、我需要将该代码移植到 TI micro。 以下是我的问题:

  1. 我需要主应用程序编程文件作为二进制文件。 如何使 CCS 创建*。bin 文件以及*。out 文件? 或者如何将*。out 文件转换为*。bin 文件?
  2. 如何使链接器将主应用程序放置在引导加载程序之后、引导加载程序将是一个单独的项目、例如相对于当前位置的0x5000地址? 为了使主应用程序代码在该地址工作、我需要对代码和/或属性进行哪些更改? 我假设中断矢量表必须至少重定位、但我不知道如何重定位。
  3. 要从引导加载程序跳转到主应用程序、我需要执行哪些代码?
  4. 要查看 TMS320F280041C 微控制器上闪存的写入和读取、最好查看什么示例

Alex

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

    尊敬的 Alex:  

    C2000十六进制实用程序可用于创建应用程序的二进制文件。 可以使用--binary 标志。 有关如何使用十六进制实用程序的更多详细信息、请参阅 https://www.ti.com/lit/ug/spru513p/spru513p.pdf 的第12节 

    2. 您可以通过修改链接器命令文件的"段"部分来更改工程在存储器中的链接位置。 当您询问您需要更改应用程序的哪些部分时、我不确定您的意思。 若要获取有关程序某些段在存储器中放置位置的更多详细信息、请参阅在构建配置后命名的文件夹中的.map 文件。  

    3.从引导加载程序到应用程序的跳转可能会因实施方式而异,至少需要从引导加载程序到应用程序的分支指令。 C2000Ware 中有一个 SCI 自定义引导加载程序(称为闪存内核)示例、该引导加载程序通过一个 ExitBoot 例程来处理从引导加载程序跳转到应用程序的过程。 您可以在 F28004x 的闪存内核示例中的 flashapi_ex2_codestartbranch.asm 中找到它。 C2000Ware 中示例的路径为 driverlib\f28004x\examples\flash。  

    有几个示例- flashapi_ex1_program_autoecc 和 flashapi_ex2_sci_kernel。 第一个示例介绍了如何写入和读取闪存、第二个示例演示了自定义引导加载程序/闪存内核如何将映像写入闪存。 请注意、此示例将十六进制格式的文件写入闪存、而不是二进制文件。 有关 SCI 闪存内核的更多信息、请参阅 https://www.ti.com/lit/an/sprabv4d/sprabv4d.pdf。  

    谢谢、  

    Anu