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 引导加载程序刷写 time_led_blink 示例时卡在校验和处。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1040171/tms320f28069m-flashing-timed_led_blink-example-through-sci-bootloader-gets-stuck-at-checksum

器件型号:TMS320F28069M

您好!

我已经在这个问题上停留了几天了。 我正在尝试将 TIAM_LED_BLINK 示例从 TI 通过 SCI 刷写到定制板上的 F28069M。 我已经做出了保证并控制、当我引导芯片时、它处于 SCI 引导模式。 发送十六进制数0x41后接0xAA 和0x08后、我尝试使用命令提示符将程序刷写到我的芯片中。 为此,我使用 了 TI 的3652.Serial Flash Programming PDF 中提供的标准行: :\serial_flash_programr.exe–d f2806x–k ~\Debug\f28069_sci_flash_kernel.txt -a  ~\Debug\Example_2806xLEDBlink.txt -p COM6 -b 9600 -v  

执行此操作后、我得到以下结果:

 

因此、我要查看问题所在的位置、就是通过添加一些 VERBOSEPRINT 来编辑 TI 提供的 sci_flash_programmer、我已经这样做来查看问题所在的哪个部分。  
我在 f05_DownloadImage.cpp 文件中添加了注释:

执行此操作后、输出如下所示:

在这个输出中、我发现问题出现在第219行的 if 语句中、它在该语句中检查校验和。

我已经浏览过数十个论坛、并检查了所有可能的问题、例如:清除 内核和内核十六进制文件中的 sci-pins 是很好的、使清除我的存储器范围是正确的。 但在所有这些搜索和挖掘之后、我仍然感到困住、因此我需要你们的帮助。

我在定制电路板上使用 F28069M、为了在笔记本电脑和 PCB 之间进行通信、我使用 CP210x USB 转 UART 电缆。 该电路板由36V 和0.5A 电源供电(这是需要的电源)。

其他信息:使用 XDS110调试探针刷写 time_led_blink 示例时效果完美、使用此工具刷写任何其他程序时效果也很好。 在 time_led_blink 项目中所做的唯一更改是 GPIO 引脚34更改为 GPIO12、因为这是我板上的 LED1。 我已进行了修改、以同时更改 MUX 和 DIR、使其工作正常(使用调试探针测试)。  

我很期待听到您的建议、
您好、Guilliam

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

    Guilliam、  

    感谢您提供调试过程的详细说明。 在十六进制文件的前几个字节被传输后、看起来会引发校验和错误。 您能否共享用于生成十六进制文件的命令? 此外、您是否可以尝试在 controlCARD 上运行内核、以便我们可以查看内核执行暂停的位置?

    以下是 controlCARD 的链接: https://www.ti.com/tool/TMDSDOCK28069?keyMatch=&tisearch=search-everything&usecase=hardware 

    谢谢、  

    Anu

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

    尊敬的 Anu:

    我用于从 hex 文件生成 txt 文件的命令如下所示:  
    "${CG_TOOL_HEX}""${BuildArtiftFileName}"-boot -sci8 -a -o "${BuildArtiftFileBaseName}.txt"

    我已经问过我的公司目前是否有 controlCARD 板、以便我可以对其进行测试。 这可能需要一些时间、但我会不断更新。

    谢谢、
    Guilliam

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

    Guilliam、  

    命令看起来正确、确保在您拥有 controlCARD 后通知我。  

    谢谢、  

    Anu

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

    尊敬的 Anu:

    在串行闪存编程器中进行了一些尝试和更改、通过添加一些详细说明、我发现了以下内容。 应用程序将完成包括校验和在内的所有步骤。 之后、它被重定向至"Loading flash application whileloop found at line 238 of the flash programmer of the Flash programmer (加载闪存应用程序、在闪存编程器的 f05_DownloadImage.cpp 文件的第238行中找到 它进入 else if 语句、该语句将在块中的所有数据已发送到第271行时执行。 之后、我发现它卡在第一个 whileloop 中、在这里、它正在读取第283行的文件。 命令行上的输出如下所示:  
    希望您能为我提供信息来解决这个问题。

    电源 这在 controlCARD 上完成


    谢谢、
    Guilliam

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

    尊敬的 Anu:
    在搜索更多信息后、我发现了问题。 我仍然使用 28069_RAM_lnk.cmd 文件、而不是28069.cmd 文件。 因此、它永远不会 RUM、因为闪存寄存器未分配。 在输入正确的.cmd 文件后、我能够将闪烁项目刷写到我的 controlCARD 板和我们自己的板上。 感谢所有的支持! 我现在将这个问题付诸解决。