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:SCI 引导加载

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1392678/tms320f28069m-sci-bootloading

器件型号:TMS320F28069M
主题中讨论的其他器件:C2000WARELAUNCHXL-F28069M

工具与软件:

尊敬的社区:

那么、最近我正在 LaunchXL f28069m 上开发一个软件。

现在、我已经完成开发、我想将代码加载到我为我的应用创建的定制 PCB 中。

我知道我可以使用 SCI 引导加载程序来刷写代码、但我仍然不清楚如何执行该操作。

如果有人帮助我就好了。

谢谢!  

Vishwas  

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

    您好、Vishwas、

    首先要做的是熟悉 器件 TRM 引导 ROM 的第2章-特别是有关引导加载和引导模式的子章。 有一个 SCI 引导模式(请参阅2.2.16)。 我  也推荐我们的串行闪存编程器指南、尽管它面向其他 C2000器件、但也可以使用类似的过程通过 SCI 将代码加载到器件中。  

    SCI 引导加载程序源代码位于 C2000Ware 中(C:\ti\c2000\C2000Ware_5_02_00_00\libraries\boot_rom\f2806x\v1_1\rom_sources\source)。  

    如果您发现这些资源有用并能够加以利用、请告诉我。

    此致、

    Allison

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

    您好、Allison、

    我曾尝试使用 C2000 微控制器串行闪存编程中的参考启动 、后来得到了

    我不知道它可能卡在那里、或者在等待主机发送消息的时候卡在那里。

    您能为我介绍一下发生的事情吗?

    谢谢!

    Vishwas

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

    您好!

    出于安全原因、我无法访问文件共享站点、如 google drive。  

    请在此处提供更多背景信息吗? 您处于哪个开发阶段-您是否尝试使用串行闪存编程器? 您正在执行哪些步骤、在顺序中的哪一步会卡住? 什么情况表明您有错误(问题的症状是什么)? 除非我更了解你所处的位置和你正在做的事情、否则很难评估。

    此致、

    Allison

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

    您好!

    这是我使用该链接共享的图像。

    您处于什么开发阶段-您是否尝试使用串行闪存编程器?

    是的、实际上我是使用 LaunchXL-F28069M 开发应用的、但现在我想将该代码上传到应用 PCB、为此目的、我将使用串行闪存编程器。

    您执行的步骤

    实际上、我是指 YouTube 视频: (1518)《使用 TMS320F2837xD 的 SCI 引导加载程序》- YouTube

    如果您无法访问本视频、请执行以下步骤:  
    1.修改串行闪存内核 Code Composer Studio 项目文件
    要从 C2000Ware 库目录 C:\ti\c2000\C2000Ware_5_02_00_00\device_support\f2806x\examples\c28\f28069_sci_flash_kernel 导入

    3. Re 编译项目并启用 CCS 编译器"Hex Utility"以生成 TI ASCII txt 格式化文件。

    4.在 Windows C:驱动器中为自己创建一个工作目录。 如果您具有 C:驱动器的写入访问权限、则可以是:C:\Temp。 否则、您可以在以下目录中创建:C:\Users\vishwas.bhansali\TES_DFU (例如、您需要进行相应调整)、然后您需要将所有必需的文件(仅3个文件)复制到该工作目录、并通过将目录更改为:cmd C:\Users\hadiyat\Test_DFU 从该目录运行命令
    a)编程器可执行文件:"serial_flash_programmer_appln.exe"
    从 C:\ti\c2000\C2000Ware_5_02_00_00\utilities\flash_programmers\serial_flash_programmer\serial_flash_programr_appln.exe 复制内容
    b) MCU 内核 TI txt 文件:"f28069_sci_flash_kernel.txt"
    从 C:\ti\c2000\C2000Ware_5_02_00_00\utilities\flash_programmers\serial_flash_programmer\f286x\f28069_sci_flash_kernel.txt 复制内容
    c)应用文件:"Example_2806xEPwmUpAQ.txt"(通过使用"Hex Utility"、我可以生成 txt 文件)
    从 C:\ti\c2000\C2000Ware_5_02_00_00\utilities\flash_programmers\serial_flash_programmer\f286x\Example_2806xEPwmUpAQ.txt 复制内容

    5.然后打开 cmd 打开
    C:\Users\vishwas.bhansali\TES_DFU
    然后、复制:
    serial_flash_programmer_appln -d f2806x -k f28069_sci_flash_kernel.txt -a Example_2806xEPwmUpAQ.txt -b 9600 -p COM5

    您在顺序的哪一步遇到问题?

    我认为主机设备首先将内核下载到目标器件、然后从内核那里获取控制权、并将应用程序上传到闪存中。
    因此、如图中所示、它正在器件中下载应用程序、可能是在第二阶段。
    请多多指教。

    什么情况表明您遇到错误(问题的症状是什么)?

    因为,它是停留在那个特定的声明下载  Example_2806xEPwmUpAQ.txt 到设备,而不是进一步的是我认为我有一个错误。

    感谢您的快速响应、

    Vishwas

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

    尊敬的 Vishwas:

    感谢您发送此信息。 如 TRM (2.2.16 SCI_Boot 函数)所述、器件应使用自动波特率功能与串行闪存编程器执行握手。在这种情况下、编程器主机发送一个初始字、器件使用此字来校准 SCI 波特率、并将数据回显进行确认。

    当我最近为另一个 C2000器件运行此程序时、编程器消息如下所示:

    我们看起来不像在序列中达到自动波特步进、因此问题是我们在哪里停止? 我首先要确认的是 要在 SCI 引导模式下启动器件? 那么、您是否在未连接调试器且引导引脚设置为 SCI 引导模式的情况下引导器件? 如果是、我们可以看到其他可能导致断开的位置。  

    此致、

    Allison

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

    您好、Allison、

    感谢您的答复。

    那么您是否在未连接调试器并为 SCI 引导模式设置了引导引脚的情况下引导器件?

    是的、我不使用任何调试器、而是使用 UART 模块在 PC 和器件之间进行通信。
    是的、我已通过选择 TRST/J_TRST = 0、TDO = 0和 GPIO34 = 1将引导引脚设置为 SCI 引导模式。  

    好的、这就是我现在要做的。

    此致、

    Vishwas

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

    尊敬的 Vishwas:

    当闪存编程器 exe 停止以查看器件在引导加载程序中的位置进行仔细检查时、您是否可以使用 CCS 连接到器件?

    需要检查的另一件事是验证 COM 编号是否正确、不过、我想您已经这么做了。

    此致、

    Allison

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

    您好、Allison、

    当闪存编程器 exe 停止查看器件在引导加载程序中的位置以便再次检查时、您能否使用 CCS 连接到器件?

    您能指导我如何操作吗?

    另一项需要检查的事情是验证 COM 编号是否正确

    是的、COM 编号正确、而且我已经进行了验证。

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

    尊敬的 Vishwas:

    加载符号是一种有价值的调试方法。 此选项添加生成的工程".out"文件中提供的符号以进行调试、而不是通过 CCS 将实际的".out"程序加载到内核中。  引导器件、连接至主机编程器、然后继续使用命令执行串行闪存编程器。 一旦 IT 暂停:

    1. 将 CCS 打开到工作区
    2. 点击"View">"目标配置":
    3. 您可以将此器件的工程导入 CCS 并使用该工程连接到器件、或在此窗口中将原始目标配置从 C2000Ware 复制到"用户定义的"目标配置。 无论通过哪种方式、均可查找器件目标配置(下面的 F28377D 示例)并启动:
    4. 当它打开调试窗口时、选择器件 CPU 并连接到目标:
    5. 导航至工具栏并单击按钮至"LOAD symbols"(加载符号)
    6. 加载 bootrom .out 文件。 对于该器件、它应该位于中  
      1. C:\ti\c2000\C2000Ware_5_02_00_00\libraries\boot_rom\f2806x\v1_1\rom_sources\Release
      2. 如果弹出一个窗口、表明找不到源文件、可以选择"Locate File"并在 C2000Ware 中找到它
        1. 这里通常为 C:\ti\c2000\C2000Ware_5_02_00_00\libraries\boot_rom\f2806x\v1_1\rom_sources\source
    7. 该文件应打开以显示您所在的 Bootrom 位置、而您可以单步执行/调试

    请告诉我、您是否能够使它正常工作-还有其他线程可能也提供了有关如何执行该操作的说明。

    此致、

    Allison

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

    您好、Allison、  

    我确实尝试执行了上述步骤、但在步骤中:4连接目标、我收到此错误

    这可能是因为我有这样的连接:

    PC 到 UART 驱动器模块的 USB 连接、然后 UART 驱动器模块到器件。

    没有 XDS100v2。

    如果回答正确、答案是肯定的、如果不使用 XDS USB 调试探针、我们就无法调试定制电路板。  

    但如果我们可以在不使用 XDS USB 调试探针的情况下进行调试、我们该怎么做?

    此致、

    Vishwas

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

    您好、Allison、

    我将通过这种方式尝试连接到定制板。

      

    请查看并提供您对此问题的宝贵意见、然后告诉我我有什么问题。

    谢谢!

    Vishwas

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

    尊敬的 Vishwas:  

    请给我留出另一天的时间来作出答复。 感谢您的耐心等待。

    此致、

    Allison

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

    尊敬的 Vishwas:

    我真诚的道歉, 我误读了您之前的文章,以为您使用的是一个板与调试器. 正确的做法是、如果没有调试探针、您将无法执行我提到的步骤。

    遗憾的是、在无法连接到器件并进行调试的情况下、很难判断发生了什么情况。 假设您的引导引脚确实正确、最后一项建议是探测/监控电源轨和 XRSn、以查看器件是否正确引导、否则建议使用评估板或调试器、以帮助了解器件/程序。

    如果您想了解调试探针方面的建议、请告诉我。  在线提供一些相当便宜的选项。

    此致、

    Allison

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

    您好、Allison、

    您能否定义在测试/检查电源轨或 XRSn 引脚时应该得到什么结果?!!!

    否则、建议使用评估板或调试器以帮助查看器件/程序。

    我有一个评估板 LaunchXL-F28069m。
    那么、请告诉我如何才能实现可见性。

    如果您想获得调试探针方面的建议、请告诉我。  在线提供一些相当便宜的选项。

    我已经订购了 XDS-100v2 USB 调试探针、看其他选项会很棒。

    谢谢!

    Vishwas

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

    尊敬的 Vishwas:

    这些器件包含一个器件复位(XRSn)引脚、该引脚在被驱动为低电平时将器件复位。 该引脚在上电复位(POR)、欠压复位(BOR)或看门狗复位时也被驱动为低电平。 您可以监控电源轨、以便在 XRSn 释放时观察到电源轨锁存。 如果 XRSn 正在切换、这意味着器件每隔 几个周期由看门狗复位一次。 如果您没有定期复位、那么您是在 禁用看门狗的专用引导模式下等待的。  

    我有同样的评估 板,并亲自尝试。 我目前遇到类似的问题、您可以看到自动波特不在哪里发生。 我想也许只是发送文件的格式、但让我与维护此闪存内核示例的人员确认一下、并更新我的进度。

    只想补充一点、这是有关 launchpad https://www.ti.com/lit/ug/sprui11b/sprui11b.pdf 的指南

    此致、

    Allison

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

    您好、Allison、

    如果 XRSn 正在切换、这意味着看门狗每隔一个 周期复位一次器件

    这正是 XRSn 引脚发生的情况、该引脚以63Hz 的频率持续切换。
    我认为这意味着我未正确引导器件。
    但到目前为止、我已将开关设置为:  
    GPIO34:1.
    TDO:0
    TRST:0
    即使它正在发生这样的事情、为什么!!!!!!!

    我将提供我的板的原理图、请看一下、如果有什么问题、请告诉我

    谢谢!

    Vishwas

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

    尊敬的 Vishwas:

    感谢您提供的信息。 当我们明天回到办公室时、让我咨询一位同事、并提出另一项建议。  我认为  在这种情况下、也可以考虑使用仿真启动进行测试。

    此致、

    Allison

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

    您好、Allison、  

    为了交叉检查硬件是否存在问题、引导模式引脚可能没有相应地更改。 我确实从 IC 本身检查了特定引脚、并且获得了与 SCI 引导模式相同的结果。

    所以、我可以这么说  
    GPIO34 = 1
    TDO = 0
    TRST = 0

    当搜索为什么这种类型的问题发生,我得到了这两个博客。
    TMS320F280049:在独立模式下、看门狗将持续使器件复位。 - C2000微控制器论坛- C2000 ︎ 微控制器- TI E2E 支持论坛
    CCS/TMS320F280049:器件独立运行失败- C2000微控制器论坛- C2000 ︎ 微控制器- TI E2E 支持论坛
    他们讨论了我所面临的看门狗问题以及他们是如何从该问题中克服的。

    从这些帖子我知道,问题在 Start_Branch 中,我们需要禁用看门狗,然后继续前进。

    但我的 codestart 文件已经具有看门狗禁用功能、也许它也有其他要求。

    请看一下它。

    谢谢  

    Vishwas

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

    尊敬的 Vishwas:

    感谢您提供更多信息。 让我回顾一下这些主题和信息并提供进一步的评估。 一如既往、感谢您耐心等待。

    此致、

    Allison

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

    尊敬的 Vishwas:

    我将在下周早些时候为您提供最新消息。

    谢谢!

    Charles

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

    Vishwas、

    很抱歉出现延迟、但您是否仍需要有关此问题的帮助?

    谢谢!

    Charles

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

    Charles  

    是的、Charles、我还陷入了同样的情况、您能帮我解决吗?

    谢谢!

    Vishwas

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

    所有这些都可以在没有外部振荡器的情况下工作吗?

    或者需要使用振荡器来执行 sci 引导加载、甚至通过 xds100v2加载代码。

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

    尊敬的 Vishwas:

    很遗憾、Charles 无法进一步支持这一点。 我刚从办公室回来、但本周会再看一次。 再次感谢您的耐心等待。 此外、在不需要外部振荡器的情况下、该设置应该没有问题。

    此致、

    Allison

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

    您好、Allison、  

    我希望你做得好

    您找到了什么吗?

    此致、

    Vishwas

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

    尊敬的 Vishwas:

    我也许已经解决了这个问题、但我的串行闪存编程器遇到了一个错误。 我正在立即与团队核实/更正、并将在我可以运行检查后立即提供更新。  

    同时、您能否:

    1.设置仿真启动开关、开启设备电源、启动目标配置连接到该配置、打开存储器浏览器、检查0x0D00/0x0D01等处的存储器、并将所得值的屏幕截图发送给我。

    2.为 SCI 引导设置开关并 在 LaunchPad 上发送您的开关设置图片以便我复查?

    此致、

    Allison

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

    您好、Allison、

    1. 设置用于仿真启动的开关、打开器件电源、启动目标配置以连接到该配置、打开内存浏览器检查0x0D00/0x0D01等处的内存、然后将值的屏幕截图发送给我。[/QUOT]

    不使用调试器是否会发生这种情况!!!!

    此致、

    Vishwas

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

    尊敬的 Vishwas:

    Allison 今天不在办公室,明天回来,请期待届时回复。

    谢谢!

    Luke

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

    尊敬的 Vishwas:

    我只是想提供一个更新、但在验证这一点时仍然遇到问题。 我也会在内部循环使用其他一些、本周晚些时候将为您提供更新。 一位和我的同事目前正在使用 F28069 Launchpad 对此进行测试、因此我列出了仿真引导建议(针对 Launchpad)、以便我们可以验证器件的过程、因为同样的过程适用于定制 PCB。 同样、该流程应遵循先前链接的串行闪存编程应用程序中直接列出的内容。  

    澄清一下、您仍然能够将闪存内核加载到器件的 RAM 中、但无法将应用代码加载到器件闪存中? 您能介绍一下如何生成应用代码.txt 文件吗? 我知道您之前说过、您正在使用十六进制实用程序-但是您采取了哪些步骤? 是设置为闪存构建配置的工程(加载到 RAM 的工程需要不同的链接器命令文件、而不是闪存)。  

    此致、

    Allison

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

    您好、Allison、

    这就是为什么我列出仿真启动建议

    我认为如果没有调试探针、就无法使用仿真引导模式。 对!??
    由于我没有调试探针、因此我无法使用它。

    您仍然能够将闪存内核加载到器件的 RAM 中

    根据该内核映像已下载、但在下载应用代码时卡住了。

    您能说明如何生成应用程序代码.txt 文件吗?

    是设置为闪存构建配置的项目(加载到 RAM 的项目与闪存时需要不同的链接器命令文件)。  [报价]

    到目前为止、我还没有对构建配置进行任何更改、我只使用 ram 连接器命令文件。

    此致、

    Vishwas  

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

    您好、Vishwas、

    我能够使用上的以下步骤成功运行该演示 LaunchPad F28069M 评估板

    1. 将 F2806x SCI 闪存内核示例导入 CCS ( \device_support\f2806x\examples\c28\f28069_sci_flash_kernel)
      1. 在项目浏览器中右键单击项目、选择"Properties"(属性)->"Build"->"Steps"(构建)->"Steps"(步骤)。 验证该工程是否按如下方式配置
      2. 构建闪存内核项目  
      3. 将  f28069_sci_flash_kernel.txt 输出 文件复制  到工程的"Debug"文件夹中、并粘贴到  serial_flash_programr.exe 所在的同一目录中
    2. 配置应用程序的项目属性以输出.txt 应用程序输出
      1. 与步骤1a 类似、请确保"${CG_TOOL_HEX}""${BuildArtifactFileName}"-boot -sci8 -a -o "${BuildArtifactFileBaseName}.txt"处于应用工程的编译后处理步骤中
      2. 通过右键点击 RAM 链接器 cmd 文件 并从下拉菜单中选择 Exclude from Build 来排除该文件
      3. 复制位于的闪存链接器 cmd 文件  将\device_support\f2806x\common\cmd\f28069M.cmd 输入到工程中  
      4. 构建项目
      5. 将 应用程序.txt  输出 文件复制    到工程的 Debug 文件夹中、并粘贴到  serial_flash_programr.exe 所在的同一目录中
    3. 将器件配置为 SCI 仿真引导模式
      1. 确保 TRST =1、这样您就可以使用仿真引导模式
        1. 对于 LaunchPad、这可以通过 S1手动完成、如下所示                              
      2. 启动 Debug 会话并转到"View"->"Memory Browser"
      3. 找到地址0xD00以按如下所示配置 SCI 仿真引导配置                    
        1. 如果不使用调试器、请配置 SCI 独立引导
      4. 复位 CPU、以便器件仿真 SCI 引导模式并跳转到 SCI 引导加载程序
    4. 使用以下命令行运行闪存编程器: ./ serial_flash_programr.exe -d f2806x -k YOUR_FLASH_KERNEL.txt -a YOUR_APPLICATION.txt -p COM#-b 9600 -v  
      1. 确保红色文本已相应调整
      2. 闪存内核和应用程序都应该加载