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.

[参考译文] TMS320F28P550SJ:尝试将代码加载到闪存 usign sci 时出错

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1369270/tms320f28p550sj-error-trying-to-load-code-into-flash-usign-sci

器件型号:TMS320F28P550SJ
主题中讨论的其他器件:C2000WARE

工具与软件:

您好!

以下错误的原因应该是什么:

第一阶段、加载内核、没有出现错误。  

82=82
fe=fe
6== 6
0== 0
0== 0
0== 0
传输的比特率/秒为:7647.001953
内核已加载! 正在引导内核...
等待内核引导完成...
正在尝试自动波特以发送函数消息...
您希望执行什么操作?
1-DFU CPU1
擦除 CPU1
验证 CPU1
4-解锁 CPU1区域1
5-解锁 CPU1区域2
6运行 CPU1
7-复位 CPU1
完成

第二级、DFU CPU1。 发生错误0x83198。

6
0
1
9安
6
0
6
0
0
0
传输的比特率/秒为:29686.691406
应用程序加载成功!
等待应用程序下载和引导完成...
命令成功执行
错误状态:program_error
错误地址:0x83198
闪存 API 错误:无效地址
有关错误的进一步说明、请参阅闪存 API 文档。
FMSTAT 寄存器内容:00

您希望执行什么操作?
1-DFU CPU1
擦除 CPU1
验证 CPU1
4-解锁 CPU1区域1
5-解锁 CPU1区域2
6运行 CPU1
7-复位 CPU1
完成

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

    尊敬的 Ari:

    您是否正在使用串行闪存编程器工具?

    谢谢!

    卢克

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

    您好、Luke

    是的、我正在使用位于以下位置的串行闪存编程器工具: C:\ti\c2000\C2000Ware_5_02_00_00\utilities\flash_programmers\serial_flash_programmer

    最近、我使用 C2prog 应用测试了固件升级。 借助 C2prog、它可以顺利运行、并且具有无需编译内核、运行速度更快的优势。

    不过、我想知道它为什么不能与 serial_flash_programmer 一起使用。

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

    尊敬的 Ari:

    F28P55x SCI 闪存内核工程使用相应闪存 API 的512位编程特性。 因此、存储在闪存中的应用程序段需要与512位边界对齐。 请将"align (32)"添加到闪存中存储的任何存储器段。 有关详细信息、请参阅本文档的第5.4节。

    此致、

    斯凯勒

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

    您好、Skyler:

    我正在使用"f28p55x_flash_ex3_sci_flash_kernel" 示例作为 内核、因此我需要将 align (32)命令添加到应用程序中、而不是内核中。 对吧?

    我需要在应用程序代码中的哪个位置包含 align (32)命令?

    Ari.

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

    尊敬的 Ari:

    是的、你需要将它添加到应用程序的链接器.cmd 文件中、而不是内核。 以 C2000Ware_5_02_00_00\device_support\f28p55x\common\cmd\28p55x_flash_api_512bit_lnk.cmd 为例、

    此致、
    斯凯勒

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

    Skyler、

     

    我在应用程序的.cmd 文件中使用了 aligh(32),但仍然有错误。

    我不明白为什么 serial_flash_programr.exe 程序不像 C2Prog 工作、能够直接使用.out 文件、也不需要为我的电路板配置和编译内核、也不需要配置我的应用程序来使用它。

    C2prog 只需按下按钮、即可在10秒内加载整个固件、因为 GUI 保持从我上次加载.out 文件开始的路径。

    我放弃了使用 serial_flash_programmer.exe 加载固件的尝试、而是使用 C2prog。

    感谢您的帮助、
    阿里

    传输的比特率/秒为:29444.427734
    应用程序加载成功!
    等待应用程序下载和引导完成...
    命令成功执行
    错误状态:program_error
    错误地址:0x8084c
    闪存 API 错误:无效地址
    有关错误的进一步说明、请参阅闪存 API 文档。
    FMSTAT 寄存器内容:00

    您希望执行什么操作?
    1-DFU CPU1
    擦除 CPU1
    验证 CPU1
    4-解锁 CPU1区域1
    5-解锁 CPU1区域2
    6运行 CPU1
    7-复位 CPU1
    完成

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

    尊敬的 Ari:

    您是否能够在此处提供链接器 cmd 文件以供查看? 也可以通过直接消息接受。

    谢谢。此致、

    查尔斯