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.

[参考译文] 可以引导 TMS320F28069M MCU

Guru**** 2517220 points
Other Parts Discussed in Thread: C2000WARE, TMS320F28069M

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1164681/can-boot-for-tms320f28069m-mcu

主题中讨论的其他器件:C2000WARETMS320F28069M

您好!

我想通过 CAN 更新闪存存储器。 根据 MCU 文档、提到 OTP 值应更改为从 CAN 引导。 此外、还没有提到 CAN 引导的引脚配置。 因此、我已经根据随附的应用手册更改了 GETMODE 的 OTP 值。  

结果:- MCU 不会默认引导。 MCU 始终在等待 CAN 数据。 尽管电源复位、但未发生正常启动。 现在、它不是独立工作的。 现在、我只能使用调试器从 JTAG 上传代码。  

问题:-如何 再次将 MCU 更改为默认引导模式、而无需反复查找 CAN 数据?

希望尽快得到回复。

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

    尊敬的 Kasun:

    [引用 userid="541723" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1164681/can-boot-for-tms320f28069m-mcu ]问题:-如何 在不反复查找 CAN 数据的情况下再次将 MCU 更改为默认引导模式?

    您是否还更改了引导模式引脚(GPIO37/GPIO34)的状态? 如果您希望从 CAN 引导、这两个引脚都应处于高电平。 如果要将引导选项更改为等待引导模式、GPIO37应保持高电平、GPIO34应驱动为低电平。  

    此致、

    Marlyn

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

    是的、我检查了两个引脚的状态。 三是高电平。 我希望在新更新后从闪存引导。  

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

    尊敬的 Kasun:

      《F2806x 技术参考手册》的引导加载程序功能操作部分 中的信息显示了根据调试探针是否连接而进行引导的依赖项。

    如果调试探针已连接、则必须在指定的 RAM 位置配置 EMU_KEY 和 EMU_BMODE 以引导至闪存(请参阅表中的有效 EMU_KEY 和 EMU_BMODE 值)。

    如果未连接调试探针、除了配置引导模式引脚之外、还需要对 OTP 值进行编程(请 参阅表 OTP 中 GetMode 的值)。

    我希望这对您有所帮助!

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

    我想通过应用程序调用 CAN 引导加载程序。

    有可能吗?

    否则、

    我想将闪存内核复制到 RAM 中、RAM 在发送更新请求时位于闪存中

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

    您好、Kasun、此时此刻最适合帮助的主题专家还在办公室外工作几天。  我会看到我是否能找到其他人支持、否则您应该在星期四之前回来与他会面。  给您带来的不便、我深表歉意。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="541723" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1164681/can-boot-for-tms320f28069m-mcu/4387401 #4387401"]我想通过应用程序调用 CAN 引导加载程序。[/quot]

    是的、这是可能的。

    您可以配置引导加载引脚以始终从闪存引导器件。 在固件中、您可以等待一段预先确定的时间来查找特定的 CAN 帧。 如果从主机接收到该帧、则可以切换到 CAN 引导加载程序。 否则、您可以分支到您的应用程序。

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

    你好、Joe、没关系。 我想、您已经清楚地理解了我的问题。 我正在寻找 TI 团队的即时回复。

    谢谢!

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

    您好、Haresh、

    请向我解释这种方法

    谢谢!

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

    尊敬的 Kasun:

    为了实现这一点、您可以尝试以下步骤:

    1. 将器件上的 GPIO37和 GPIO34引脚都设置为高电平
    2. 如果不使用调试探针、则将 OTP 密钥设置为0x005A、将 OTP BMODE 设置为 0x000B 、以便将闪存设置为主引导
    3. 在主固件代码中、您 需要使用适当的设置延迟为特定 CAN 帧交互设置确定的等待时间。 您 可以在此处修改 C2000Ware_X_XX_XX_XX\device_support\f2806x\examples\c28中的 f28069_CAN_flash_kernel 示例。
      1. 在闪存引导模式下启动时 ,调用  CAN_Boot()进行 CAN-Porta 通信初始化
      2. 调用 CAN_Init()
      3. 确定 CAN_GetWordData 是否包含要查找的相应帧。 如果是、请继续将应用程序下载到闪存的新部分。 如果没有、则返回闪存引导模式的入口点地址。

    请告诉我这是否有帮助。

    谢谢、此致、

    查尔斯

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

    Kasun、

                   需要记住的要点是不要将引导模式更改为 CAN。 这是因为99.9%的时间、您只想引导至闪存。 通过 CAN 更新闪存是一种特殊情况、您很少执行。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="10172" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1164681/can-boot-for-tms320f28069m-mcu/4388309 #4388309"]如果从主机接收到该帧,则可以切换到 CAN 引导加载程序。 [/报价]

    您好、Hareesh、您能告诉我主机接收到 CAN 帧时、在运行主固件代码时切换到 CAN 引导加载程序的方式吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="531473" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1164681/can-boot-for-tms320f28069m-mcu/4389662 #4389662">确定 CAN_GetWordData 是否包含您要查找的相应帧。 如果是、请继续将应用程序下载到闪存的新部分。 如果没有、则返回闪存引导模式的入口点地址[/quot]

    您好 Charles、您能给我解释一下闪存到新闪存扇区的方法吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="541723" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1164681/can-boot-for-tms320f28069m-mcu/4390356 #4390356"]您好,在主机接收到 CAN 帧时,您能告诉我在运行主固件代码时切换到 CAN 引导加载程序的方法吗?

    Kasun、

                 您可以在 C:\ti\c2000Ware_4_01_00_00\libraries\boot_rom\f2806x\v1_1\rom_sources\Release 中从 TMS320x2806x_rom_gold_release.out 加载引导 ROM 的符号 (如果尚未下载最新版本的 C2000ware、请下载)。 加载符号后、您将可以查看调试器中 Brom 的所有函数。 现在、您可以轻松识别 CAN 引导加载程序的起始地址。 需要记住的一点是:您的应用可能已经以特定的方式配置了 PLL 倍频器/分频器、这可能与 Brom 的配置方式不同。 请注意、这可能会更改 CAN 引导加载程序的位速率。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="10172" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1164681/can-boot-for-tms320f28069m-mcu/4390808 #4390808"]您可以从 TMS320x2806x_boot_rom_gold_release.out[/quot]加载引导 ROM 的符号

     请告诉我、如何加载符号?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="541723" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1164681/can-boot-for-tms320f28069m-mcu/4390830 #4390830"]您能告诉我如何加载符号吗?[/quot]

    加载符号的过程与加载.out 文件的过程相同。

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

    尊敬的 Kasun:

    要刷写新扇区、您必须更改应用程序的链接器 cmd 文件以说明要使用的闪存段。  下面的一个很好的示例是 C2000Ware_X_XX_XX_XX\device_support\f2806x\examples\c28\flash_programming 中的 Example_FlashF2806X_API。 在本示例中、列出了用于存储器分配的闪存扇区 A、C 和 D、其中扇区 B 用于数据存储器。 特别是对于这个器 件、扇区被表示为 A 到 H、闪存 A 从0x3F4000开始到闪存 H 在0x3D8000、每个扇区的大小为0x4000kw。 此信息可在 C2000Ware_X_XX_XX_XX\device_support\f2806x\docs、USBBL_UG pdf 中找到。  

    例如、如果您将闪存内核代码放置在 RAM 中并运行应用程序以最初将更新放置在闪存扇区 A 中、则可以选择覆盖该段、或在必要时移至新段。  请告诉我这是否有帮助。  

    查尔斯

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

    我正在为 TSM320F28069M 的 CAN 引导制作定制引导加载程序。 因为没有任何方法可以调用此 MCU 中的 CAN 引导加载程序。  

    我想在闪存中运行主代码。 当接收到 CAN 帧时、我想启动 CAN 引导加载程序来接收 CAN 闪存内核。 然后、应用程序代码通过主机发送。

     

    问题

    针对自定义引导加载程序获得了以下错误。 有人可以帮助我吗?

    说明资源路径位置类型
    ".TI.ramfunc"段由__attribute__((ramfunc))或 f28069_app_code C/C++ problem 生成
    链接期间遇到错误;"Example_2806xGpioToggle.out"不是 f28069_app_code C/C++问题
    文件 f28069_app_code C/C++问题
    gmake:***[Example_2806xGpioToggle.out]错误1 f28069_app_code C/C++问题
    gmake:目标"全部"不会由于错误而重新生成。 f28069_app_code C/C++问题

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="541723" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1167407/can-boot-for-tsm320f28069m-mcu、因为在此 MCU 中无法调用 CAN 引导加载程序。  [/报价]

    这是一条错误的陈述。 在 另一个线程中、我已经解释了如何执行此操作。  

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

    Kasun、

             请参阅此链接、它为您的所有闪存相关问题提供了答案: https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/757585

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

    Hareesh、

           如何通过主程序调用 CAN 引导加载程序?

           我无法做到这一点。

    谢谢!

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

    我已经解释了如何做到这一点。 不确定我可以提供哪些其他信息:

    "您可以  在 C:\ti\c2000Ware_4_01_00_00\libraries\boot_rom\f2806x\v1_1\rom_sources\Release 中从 TMS320x2806x_rom_gold_release.out 加载引导 ROM 的符号  (如果尚未下载最新版本的 C2000ware、请下载)。 加载符号后、您将可以查看调试器中 Brom 的所有函数。 现在、您可以轻松识别 CAN 引导加载程序的起始地址。 需要记住的一点是:您的应用可能已经以特定的方式配置了 PLL 倍频器/分频器、这可能与 Brom 的配置方式不同。 请注意这一点、因为这可能会更改 CAN 引导加载程序的比特率"。

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

    您好、Haresh、

             是否可以在 TMS320F28069M MCU 上执行软件控制的固件更新过程? 以下链接给出了另一个 MCU 的方法。

    https://www.ti.com/lit/pdf/spracn1 

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

    尊敬的 Kasun:

    需要进一步研究、请尽快返回给您。

    谢谢、此致、

    查尔斯

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

    您好、Charles、

             当然。谢谢

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

    Kasun、

    已在通话中向您发送了一条直接消息。 如果可用性对您合适、请在邮件中回复。

    谢谢、

    查尔斯

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

    查尔斯

    已回复您的消息。

    谢谢、

    Kasun

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

    明白了。  

    谢谢、

    查尔斯