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.

[参考译文] CCS/TMS320F28069M:用于 LaunchXL-F28069M 的 SCI 引导

Guru**** 2394305 points
Other Parts Discussed in Thread: C2000WARE, LAUNCHXL-F28069M

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/711468/ccs-tms320f28069m-sci-boot-for-launchxl-f28069m

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

工具/软件:Code Composer Studio

您好!

我还尝试通过 SCI 接口加载软件。 我使用 Code Composer Studio 编译和创建 hex-Image (示例设计和标志: --boot --sci8 --ascii)。 我得到的文件似乎与数据表的建议不太远:

02 0D 0A 41 20 30 38...

02:"文件以 ASCII STX 字符(Ctrl-B、02h)开头..."  (downloads.ti.com/docs/esd/SPNU118O/Content/SPNU118O_HTML/hex_conversion_utility_description.html)

0D:不知道

0A:应该是数据表中描述的自动波特字符、 但它不起作用、相反、我必须发送 A -> 0x41的 ASCII 代码

41 41 20 30 38:十六进制 ASCII 代码:"AA 08"、这是引导加载程序预期的关键值、但同样 、它不起作用!  这次、为了让事情保持有趣、我必须发送实际的十六进制值 AA 和08 (否则引导加载程序将跳转到从闪存加载)

当我发送:"41 AA 08"时、piccolo 会正确地回送来自 CCS 创建的十六进制文件的所有数据、但程序不会在末尾启动 我尝试了几种修改图像的方法、因为我手动执行自动波特率和密钥值检测(例如、我删除了相应的部分)、但 似乎什么都不起作用。

我出了什么问题? 发送数据所需的实际格式是什么? (例如、我是否真的需要在数据之间发送空间0x20 (上述链接中的"格式由字节流组成、字节之间用空格分隔")

我是否需要在每个数据块或类似的数据块之后暂停?

谢谢你

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

    您正在正确生成十六进制映像。 您不必修改它、也不必暂停。
    查看 C2000Ware 中的 f2806x sci 闪存内核示例。 它附带一个串行闪存编程器、您还可以参考该编程器如何传输到十六进制文件。

    此外、如果您想执行闪存内核 、只需获取有关预期引导过程的其他一般信息:www.ti.com/.../sprabv4b.pdf

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

    尊敬的 Chris:

    感谢您的回复。 问题在于十六进制图像不起作用:它以"02 0D 0A 41 41 20 30 38 20 30 20 30 30 30 30 30 30 30 20 30 30 20 30 20 30 20 30 30 20 30 30 30 30 30 30 30 30 30 30 30 30 30 20 30 ..."开头 当我发送它时、Piccolo 从闪存开始。 我必须在开始时发送"41 AA 08"、以使 Piccolo 不从闪存开始、并回传按预期/数据表中所述写入的所有字节、我将它们全部读回并进行比较(无错误)、 如所附图片中所示。 十六进制文件"0A 41 20 30 38"的版本无法正常工作、因为 Piccolo 仅期望在自动波特率"A"之后有2个字节作为关键字符。 但是、即使所有数据都被无误地传输和回送、Piccolo 似乎也不会启动/执行程序。 在图像开始时、由于 ASCII 代码与二进制代码的混淆、我不相信图像的正确性。 此外、我还对空格字符(20)感到困惑、因为一旦它在所有数据表中显示:字节3、4、5…… (8个16位字)应该是 x00、而另一方面它只会产生大量开销。 在示例图像中 、空间出现超过30000次、 浪费了大约9秒的编程时间(写入和回读为~300µs μ s)。      

    将 launchpad "LaunchXL-F28069M"与默认示例程序(通过闪存和 USB 调试器工作)搭配使用。 我已组装 JP 6和7、引导模式选择开关设置为开/关/关(1/2/3)、并使用引脚接头 P28和 P29进行 SCIA 连接。 我使用的是76800。

    谢谢你

    Nicolai

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

    是否可以为项目附加生成的 hex 文件? 这是使用"-boot -sci8 -a"运行 C2000十六进制实用程序后生成的文件。

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

    尊敬的 Chris:

    感谢您花时间解决我的问题、十六进制文件就是这样(由于.hex 似乎不被允许、因此重命名为*。txt):

    /cfs-file/__key/communityserver-discussions-components-files/171/2541.Example_5F00_2806xLaunchPad.hex.txt

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

    十六进制文件正确。 您需要确保传输到器件的是十六进制值本身、而不是转换为 ASCII 的十六进制值。 它不应发送空格。 查看 hex 文件、您应该发送"AA"、"08"和"00"等。

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

    尊敬的 Chris:

    这就是我需要的信息、谢谢! 我必须将整个文件从"hex-ascii code"转换为实际的十六进制值(例如41 41 -> AA)、这也会去掉空格... 我正在使用微控制器从文件传输原始数据、而不对其进行处理。 串行编程器具有内置的转换。 不过、在发送转换后的文件之前、我仍然必须发送自动波特图字符 x41。
     
    感谢你的帮助
    Nicolai