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.

[参考译文] LAUNCHXL-F2800157:需要有关配置 SCI 引导模式以进行固件重新编程的指南 (F2800157)

Guru**** 2988540 points

Other Parts Discussed in Thread: TMS320F2800157, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1648503/launchxl-f2800157-need-guidance-on-configuring-sci-boot-mode-for-firmware-reprogramming-f2800157

器件型号: LAUNCHXL-F2800157
主题中讨论的其他器件: TMS320F2800157、 C2000WARE

尊敬的支持团队:

我正在处理 TMS320F2800157 器件、我尝试 使用 TI 的闪存编程器工具通过 SCI (UART) 实现固件重新编程。

我对引导配置概念不熟悉、因此需要一些指导来了解如何正确使用 SCI 引导模式。


到目前为止、我已经了解到:

  • 引导 ROM 代码经过出厂编程、无法修改
  • 引导 ROM 中已存在 SCI 引导加载程序
  • 闪存编程通过以下方式完成:
    • flash_programr.exe
    • 内核文件
    • 应用程序 (.hex/.txt) 文件

我的困惑/问题:

1.如何启用 SCI 引导模式

我不清楚如何实际使器件进入 SCI 引导模式:

  • 是否应该在软件中配置某些功能?
  • 还是仅使用 GPIO 引脚(硬件)来实现?
  • 我应该如何在电路板上设置 GPIO24 和 GPIO32?

2. SCI 外设选择

  • 在 SCI 引导期间、使用哪个 SCI 模块?
  • 它始终是 SCIA 吗?
  • 我们可以配置为使用另一个 SCI(如 SCIB)吗?

SCI 的 GPIO 引脚映射

  • 哪些引脚在引导期间用于 SCI RX 和 TX?
  • 在引导 ROM 中修复了这些问题吗?
  • 我们是否需要单独配置它们?

4. SCI 引导与闪存编程器之间的关系

我的理解是:

  • 首先、器件应已处于 SCI 引导模式
  • 然后 flash_programr.exe 发送内核和应用程序

Point right 这是正确的吗?
该工具是否本身将器件置于 SCI 引导模式?


5、完成实践流程(要求指导)

能否请您逐步说明以下各项的正确顺序:

  1. 设置硬件(GPIO/连接)
  2. 使器件进入 SCI 引导模式
  3. 运行闪存编程器
  4. 发送内核和应用程序

目标:

我的目标是 通过 SCI 成功实现固件更新、希望从头开始了解正确的配置和流程。


如果您为初学者提供任何指导、示例参考或文档、我将不胜感激。

此致、
MD Kamarudheen

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

    默认情况下、引导模式由引导模式引脚定义。 但是、您可以在 OTP(一次性 prom)中配置为具有一组不同的启动选项和一组不同的启动引脚。

    通常、您需要从闪存引导(也称为不引导,但只是从闪存启动固件)。 如果进行固件更新、您必须将引导引脚设置为从 SCI 引导并复位器件。 然后、您可以上传新固件、将引导引脚从闪存更改回引导、并复位器件。

    或者、您可以使用自定义引导加载程序、例如、从闪存始终引导、在串行线路上复位一段时间后等待一段时间、如果没有收到固件更新命令、只需启动现有固件。

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

    你(们)好  

    感谢您之前的答复、感谢您解释使用引导引脚的默认 SCI 引导方法。

    我理解:

    • 可以使用 GPIO 引脚选择引导模式
    • SCI 引导可用于通过闪存编程器进行固件更新
    • 编程后、器件可以切换回闪存引导

    White check mark 我的要求(需要说明)

    在我的应用中、该电路板将部署在系统内、并且 手动更改引导引脚 (GPIO24/GPIO32) 以进行固件更新是不可行的。

    因此、我想遵循这种方法:

    Arrow right️ 始终从闪存引导
     Arrow right️ 应用程序正常运行
     Arrow right️ 每当需要进行固件更新时、应用本身都应触发更新过程
     μArrow right️ 器件应通过 SCI 接收新固件并更新闪存


    White check mark 我的问题

    1.推荐的方法

    • 对于此用例、在闪存中实现自定义引导加载程序的正确方法是否是?
    • 这是否是生产系统的推荐方法?

    2.可用的 TI 示例/固件

    • TI 是否提供了任何现成的引导加载程序示例:

      • 基于 SCI 的固件更新 (UART)
      • 应用触发的重新编程(IAP–应用程序编程中)
    • 如果是、请分享以下信息:

      • C2000Ware 中的示例工程路径
      • 相关应用手册或文档

    3.固件更新工具

    • 在这种方法(闪存引导+自定义引导加载程序)中:
      • 建议使用哪些工具来发送固件?
    • 我们仍可以使用:
      • flash_programmer.exe
        或
      • 我们是否需要开发自定义主机工具(例如基于 Python/UART 的工具)?

    4.引导加载程序流程说明

    • 以下理解是否正确:

      1. 引导 ROM 始终从闪存引导
      2. 引导加载程序(存储在闪存中)首先执行
      3. 引导加载程序检查更新请求 (SCI/CAN/FLAG)
      4. 如果请求更新→接收固件并对闪存进行编程
      5. 否则→跳转到应用程序

    Point right 请确认这是否是正确的实施流程。


    5.引导加载程序中的 SCI 配置

    • 若要实现基于 SCI 的更新:
      • 我们是否应该在软件中使用标准 SCIA 外设初始化?
      • 是否存在任何限制或建议的引脚配置?

    White check mark 结束目标

    我的目标是 在不更改引导引脚的情况下通过 SCI 实施强大的固件更新机制、适用于已部署的系统。

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

    您好、

    该专家目前已离职。 请预计响应会延迟、直到他们下周返回。  

    此致、
    Aj Favela.  

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

    您好:

    有关引导加载的详细信息、请参阅以下文档。 如果您有任何后续问题、请告知我。

    此致、
    马特

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

    1) 如果您不想切换引导引脚并在“从闪存引导“和“从 SCI 引导“之间切换、是的、那么您需要自定义引导加载程序。 您可以自行开发、也可以从第三方供应商处购买这样的软件。

    这是 “推荐用于生产系统的方法“吗? 这实际上取决于您的要求。 您仍需要一种在器件上安装引导加载程序的方法(通过更改引导引脚或使用 JTAG(最常见的方法))。

    2) 我不知道有任何引导加载程序示例、但 C2000 Ware 包含引导 ROM 的源代码、其中包括嵌入式引导加载程序的源代码。

    3) 如果您实现与引导 ROM 正在使用的协议非常相同、则应该能够使用 TI 提供的工具。 但这也限制了 ROM 引导加载程序的特性。

    4) 这听起来合理,正是我的引导加载程序所做的。 (https://www.torrox.de/2025/10/15/bootloader-architecture/)

    5) 在引导加载程序中使用 SCI 外设不会施加任何特殊 限制。 我想、当我尝试在没有 FIFO 的情况下使用 SCI 外设时、我偶然发现了一个硬件错误。 (https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1648556/tms320f28p659dk-q1-sci-receiving-incorrect-data)

    HTH

    Torsten

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

    要添加:

    2) 我不知道有任何引导加载程序示例、但 C2000 Ware 包含引导 ROM 的源代码、其中包括嵌入式引导加载程序的源代码。

    C2000Ware 中有一个针对 F280015x 的 SCI 闪存内核示例、位于: “driverlib\f280015x\examples\flash\flash_kernel_ex3_sci_flash_kernel“

    此致、
    马特