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.

[参考译文] TMS320F28335:为 TMS320F28335控制器实现自定义引导加载程序的指导

Guru**** 2392095 points
Other Parts Discussed in Thread: TMS320F28335, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1421733/tms320f28335-guidance-on-implementing-custom-bootloader-for-tms320f28335-controller

器件型号:TMS320F28335
Thread 中讨论的其他器件: C2000WARE

工具与软件:

尊敬的团队:

我正在与 TMS320F28335控制器配合使用、并且需要实施符合以下规格的自定义引导加载程序。
您能给我介绍一下如何开始实施吗? 如果您有任何演示代码或资源、如果您在整个过程中提供支持、我将不胜感激。

以下是客户的要求:

1.固件版本控制  
2.防回滚机制  
3.安全启动过程  
4.基于 UART 的固件更新  
5.记忆保护  
6.失效防护和恢复机制  
7.备份固件  
8.看门狗定时器  
9.恢复模式  
10.安全擦除旧固件  
11、设备复位保护

我期待着你在这个问题上提供指导和协助。

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

    您好、Dipak、

    遗憾的是、此器件本身仅支持符合您要求的第4项和第8项(根据数据表 特性)、因此硬件不支持其余部分和/或需要由用户实现。 例如、 安全启动仅适用于较新的器件。  

    但是、我们有一份 串行闪存编程应用手册 、您可以参考项目4、并且 C2000ware SDK 中有示例代码。 有关串行闪存内核示例、请参阅  \device_support\f2833x\examples\F28335_flash_kernel

    关于定制引导加载程序的一般信息、 C2000ware 中提供了引导 ROM 源代码(器件引导加载程序)、网址为  \libraries\boot_rom\F2833x\v2_0\rom_sources\source。  在开发自定义引导加载程序时、可以参考这些内容。  

    此致、

    Matt

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

    尊敬的 Matt ***:

    很抱歉响应延迟。

    我目前正在开发 基于闪存的外部固件更新。  

    我有一个基于 SPI 的外部 EEPROM、目标是通过 UART 将新固件存储到外部存储器中。 验证固件后、系统将从外部闪存进行更新。

    您能否指导我如何开始使用它、您是否有任何可以指导我详细操作的代码或链接?

    此致、
    Dipak

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

    尊敬的 Dipak:

    我有一款基于 SPI 的外部 EEPROM、我的目标是通过 UART 将新固件存储在外部存储器中。

    您提到您正在使用基于 SPI 的 EEPROM、但希望通过 UART 加载它? 什么是将此 UART 数据发送到 EEPROM?  

    验证数据后、您想要使用外部 EEPROM 上的映像进行固件更新。 这将通过 SPI 还是 UART 实现? 核查过程涉及哪些方面?

    此致、

    Matt

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

    尊敬的 Matt:

    我希望这封邮件能让您满意。

    我想澄清一下我正在实施的固件更新过程。

    我当前正在通过 UART 接收固件数据、同时应用正在运行、我 有基于 SPI 的外部 EEPROM。

    首先、我将通过 UART 收集固件数据、并在正常应用运行时将其存储在 EEPROM 中。 一旦接收到所有数据并将其存储在 EEPROM 中、我将更新内部闪存中的标志、以指示有可用的固件更新。

    在 MCU 复位或软件复位时、系统将首先检查内部闪存中的标志。 如果指示固件更新、它将从 EEPROM 获取数据并将其写入 MCU 的内部闪存以完成更新过程。

    此外、如果您能提供用于基于 SPI 的引导加载程序和闪存写入操作的代码、我将不胜感激。 我已经具有用于固件验证的代码。

    感谢您的帮助!

    此致、

    Dipak

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

    尊敬的 Dipak:

    您可以在 C2000ware 根目录中的以下位置找到 F2833x SPI 引导加载程序: libraries\boot_rom\f2833x\v2_0\rom_sources\source

    F2833x 闪存内核 位于 C2000ware 根目录中的: device_support\f2833x\examples\f28335_flash_kernel

    此致!

    Matt

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

    尊敬的 Matt:

    您能解释一下如何为引导加载程序和应用程序区域设置存储器地址吗?

    我不知道如何在链接器文件中设置应用程序地址和自定义引导地址?

    请 指导我 如何继续...

    此致、

    Dipak  

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

    尊敬的 Dipak:

    这里是 可能有帮助的连接器命令文件简介。 如果 您还有特定于链接器命令文件的其他问题、请在单独的 E2E 主题上提交这些问题、以便将其定向到正确的专家。

    此致!

    Matt