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-F28P65X:串行闪存编程失败"尝试自动波特以加载 kernel"

Guru**** 2478765 points
Other Parts Discussed in Thread: LAUNCHXL-F28P65X, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1470299/launchxl-f28p65x-serial-flash-programming-fails-attempting-autobaud-to-load-kernel

器件型号:LAUNCHXL-F28P65X
Thread 中讨论的其他器件: C2000WARE

工具与软件:

您好!

我将遵循 C2000微控制器的串行闪存编程应用手册 、以便让 SCI 编程能够在  LAUNCHXL-F28P65X 上正常工作。

目前、我正处在一个问题:Visual Studio 中运行的"serial_flash_programmer"达到了"尝试自动波特率加载内核..." 如下所示:

  这里显示了我的 SCI UART 选择开关- S2 (0:1)和引导选择开关- S3 (0:1):

我尝试遵循应用手册中下面的故障排除问题。

7疑难解答- 7.4 F28P65x - 问题:使用 LaunchPad、我无法在 SCI 引导中将 SCI 闪存内核下载到 RAM、我应该采取什么步骤?

但是" 答案: "在某些地方没有道理。   当提及 FTDI 芯片并在 CCS 中打开 Memory 窗口来更改存储器中的值时、似乎是指 controlCARD、而不是 LAUNCHXL-F28P65X。

有人能帮助我使这项工作吗?

我的最终目标是使用 EtherCAT foe 将固件下载到 C2000、并使用 C2000上无器件复位的实时固件更新 执行实时固件更新。

谢谢!

Rob McCullough

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

    尊敬的 Rob:

    您通过默认引导模式选择表(在 S3上使用 GPIO72/84)配置的 SCI 引导选项将 SCITXDA = GPIO12设置为 SCIRXDA = GPIO13。 但是、XDS110 UART TX/RX 会根据 S2的配置映射到 GPIO42和 GPIO43。  

    要采用 SCITXDA = GPIO42和 SCIRXDA = GPIO43、  您需要使用引导选项 0x61 . 您可以参阅 数据表中 F28P65x 器件的可用 SCI 引导选项

    您可以通过使用 JTAG 在 RAM 中对仿真启动寄存器进行编程来测试此启动模式。  验证 SCI 引导功能后、您可以通过对 OTP 进行编程来独立访问0x61引导模式、但实际上是这样 不会 建议测试。   

    如果您有任何其他问题、 请告诉我! 我很乐意澄清。  

    此致!

    Matt

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

    尊敬的 Matt:

    谢谢。 这可以帮助我做得更远一点。  现在看来、加载内核文件时遇到了困难、如此处所示。

    C2000 Serial Firmware Upgrader
    Copyright (c) 2013 Texas Instruments Incorporated.  All rights reserved.
    
    getting comm state
    building comm DCB
    adjusting port settings
    
    calling f021_DownloadKernel CPU1 Kernel
    Downloading c:\DevOps_SW\Workspace_Flash\flash_kernel_c28x_dual_ex1_c28x1.txt to device...
    
    Attempting autobaud to load kernel...
    Autobaud for kernel successful! Loading kernel file...
    aa

    我正在使用命令行参数:  -d f28p65x -k c:\Devps_sw\com\flash_kernel_c28x_dual_ex1_c28x1.txt -a c:Workspace_Flash \Devps_sw\com\led_ex1_c28x_dual_blinky_cpu1.txt -b 9600 -p Workspace_Flash -v -w

    我认为我使用的是 Windows 设备管理器中显示的正确 COM 端口#。

    你有什么建议吗?

    谢谢!

    Rob

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

    尊敬的 Rob:  

    我可以确认您的 COM 端口和命令行参数是否正确。

    您是否已尝试 串行闪存编程指南(第7.4节)中的故障排除步骤

    您已经配置了引导选项3 (0x61)、但还需要执行其他步骤来配置闪存内核。  

    此致!

    Matt

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

    尊敬的 Matt:

    我重新检查了 串行闪存编程指南(第7.4节)中第1-3项 的所有内容、并且我认为它们设置正确。  

    在单步执行 serial_flash_programmer 代码后、它卡在函数"loadProgram"中的"ReadFile (file、&rcvData、1、&dwRead、NULL);"上。
    函数"ReadFile"未返回。

    有什么想法吗?

    谢谢!

    Rob

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

    尊敬的 Rob:

    因此、 主机似乎正在发送第一个字节(AA)、并且没有从器件发回该字节。 器件引导 ROM 处于什么状态?  

    您可以通过将引导 ROM 符号(.out 文件)加载到器件来单步执行器件引导 ROM。  此选项会添加生成的项目".out"文件中提供的符号以进行调试、而不是通过 CCS 将实际的".out"程序加载到内核中-这也是您可以将此方法与引导 ROM/内 置引导加载程序一起使用以进行调试和获得可见性的原因。

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

    此致!

    Matt

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

    尊敬的 Matt:

    我 在 CCS 中没有看到"View">"target configurations"菜单项、而只是一个"Connected Targets"项目。  是因为我使用的是新版本的 CCS 吗?

    Rob

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

    Matt、

    我找到了"Load Symbols"选项、并尝试了它。

    但没有打开源文件。  然后、我得以让调试器中断看起来像引导 ROM 的内容、但 CCS 找不到源文件。  即使我单击"Browse.." 按钮并选择它找不到的文件,它仍然不会显示它。

    Rob

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

    尊敬的 Rob:

    抱歉、这些步骤是针对早期版本的 CCS (v12)执行的。

    只是为了确认、您正在浏览此路径(并且只选择文件夹、而不选择任何特定文件)?

    C2000Ware_5_04_00_00\libraries\boot_rom\f28P65x\rev0\rom_sources\CPU1\f28P65x_rom\bootrom\source

    此致!

    Matt

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

    Matt、

    它只允许我选择文件、而不允许选择文件夹。  因此、我选择 C:\ti\c2000\C2000Ware_5_04_00_00\libraries\boot_rom\f28P65x\rev0\rom_sources\cpu1\f28P65x_rom\bootrom\source\cpubrom_init_boot.asm

    但没有发生任何情况。

    Rob

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

    尊敬的 Rob:

    这是不常见的、我将向 CCS 团队核实如何在 v20上加载符号。 如果可能、我建议暂时使用 v12、以便能够在引导 ROM 中进行调试。

    为了确认上述步骤、通过仅在内核项目(_LAUNCHXL_F28P65X)中设置预定义符号并更改内核的 sciGetFunction ()以将 SCI_BOOT_ALT3作为输入(用于引导选项0x61)、我便能够成功通过自动波特率锁定并将应用加载到 F28P65x LaunchPad 上的闪存。

    我只想检查以下几点:

    1. 您为内核和应用程序设置了什么十六进制实用程序参数?
    2. 内核是否配置为针对 RAM 构建而应用程序是否为闪存构建?
    3. 是否可以尝试使用其他 USB 电缆?

    此致!

    Matt

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

    尊敬的 Matt:

    使用 CCS v20、我无法单步执行 BootROM 并查看加载的符号。  我还没有在 V12上试用、可能不会。  但最好仍然知道如何使其在未来发挥作用。

    今天上午、我再次按照步骤进行重试、能够使串行闪存编程工作。

    我想我的问题在于在修改 RAM 寄存器(0xD00、0xD01、0xD04)之后进行调试"Restart"、而不是进行"CPU Reset"。

     

    在了解正确的步骤顺序后、我已经能够以不同的波特率通过 SCI 对闪存进行多次编程。

    感谢您的所有帮助、

    Rob

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

    尊敬的 Rob:

    我很高兴听到您能运行它!

    使用 CCS v20时、我无法单步调试 BootROM 并查看加载的符号。  我还没有在 V12上试用、可能不会。  但最好仍然知道如何使这项工作在将来发挥作用。[/引述]

    在调试会话中、转到"Run"菜单并选择"Edit source search paths..." 这将打开一个类似如下的对话框:

    然后、您可以单击"添加"按钮以添加以下路径:

    C2000 C2000\libraries\boot_rom\f28P65x\rev0\rom_sources\CPU1\f28P65x_rom Ware_Root

    这将使您能够查看/调试引导 ROM 和 SCI 引导加载程序。

    用户指南提供了一些补充信息: https://software-dl.ti.com/ccs/esd/documents/users_guide_ccs/ccs_debug-main.html#debugging-library-code

    此致!

    Matt