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.

[参考译文] F29H85X-F29H85x-:SOM 存储体模式 3:应用仅在通过 CCS 编程后工作一次

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1638975/f29h85x-som-evm-f29h85x-bank-mode-3-application-works-only-once-after-programming-via-ccs

器件型号: F29H85X-EVM-EVM SOM

使用 CCS 在存储体模式 3 下对 F29H85x 器件进行编程时会出现异常行为:
  • 当该器件处于 存储体模式 2时、编程和执行在重复的编程/调试周期内是可靠的。
  • 切换到 存储体模式 3时、应用会:
    • 仅在第一个程序之后才能正确运行。
    • 在后续编程尝试时、系统会出现故障: 不再命中断点、 错误聚合器重复置为有效、 应用程序不再正常运行。
链接器命令文件是明确为 存储体模式 3 设置的、 为什么应用程序只在存储体模式 2 下运行正确、但在存储体模式 3 下的第一个编程周期后运行失败?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Chibudem:

    不再命中断点、 错误聚合器反复断言、 应用程序不再正常运行。

    下电上电后、如果连接到 CCS、PC 位于哪个位置? 它是否正确引导至闪存?  

    在 Bankmode3 中对应用程序进行编程后、您从错误聚合器看到了什么错误? 您是指 CPU1 应用程序还是 CPU3 应用程序、还是同时指这两者?

    链接器命令文件明确设置为 存储体模式 3、为什么应用程序仅在存储体模式 2 下运行正确、但在存储体模式 3 的第一个编程周期后失败?

    在 bankmode3 的 cmd 文件中、CPU1 的应用程序是否保持在 1MB 闪存范围内? CPU3 相同?

    此致、

    Marlyn

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 Bankmode3 中对应用程序进行编程后、您从错误聚合器中看到了什么错误? 您是指 CPU1 应用程序还是 CPU3 应用程序、还是同时指这两个应用程序?

    我没有 从错误聚合器捕获之前的错误、这次尝试也没有收到任何错误。

    下电上电后、如果连接到 CCS、PC 位于哪个位置? 它是否正确引导至闪存?  [/报价]

    调用栈:0x00014EB0

    在 bankmode3 的 cmd 文件中、CPU1 的应用程序是否保持在 1MB 闪存范围内? CPU3 相同?

    是的、CPU1 的应用程序保持在 1MB 闪存范围内。 当前没有 CPU3 应用程序。 Bankmode 3 是否要求运行 CPU3? 我假设 Bankmode 3 可以与 CPU3 应用程序一起使用、也可以不使用 CPU3 应用程序。

    使用 CCS 观察到存储体模式 3 下的编程行为
    1. 将器件编程为存储体模式 3

    2. 复位时执行 Power‑on Reset 以进入组模式 3

    3. 第一个编程周期

      • 在 CCS 中将新固件编程到 CPU1。
      • 复位时执行 Power‑On Reset。
      • 结果 没有问题。
    4. 第二个编程周期

      • Re‑将同一固件编程到 CPU1。
      • 复位时执行 Power‑On Reset。
      • 错误:
      • 调用栈 0x00014EB0
    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我还尝试了调试 flash_mode3_512_program_cpu1_cpu3 示例工程。 在 Bankmode 2 中、 它按预期工作 、但 示例代码返回中的一些闪存 API 函数失败 、因为预计器件处于 Bankmode 3。 在 Bankmode 3 中、我在 nmiStatus 寄存器中得到了这个错误:

    {“Cpu1EsmSts“:[48652032、8、0、0、0、0]、“cpu1EaSts“:{“pr“:{“highPriPriridr“:0、“lowPriorAddr“:0、“errorType“:0、“errorAddr“:0、“errorAddr

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

    尊敬的 Chibudem:

    感谢您的更新! 您能否帮助阐明您在“使用 CCS 在存储体模式 3 下观察到的编程行为“中描述的行为是否适用于  flash_mode3_512_program_cpu1_cpu3 示例工程? 前面您提到您没有 CPU3 项目、因此我想澄清您用于测试的代码库。 明天、我将尝试复制您在我这边看到的行为、因此感谢您对在我们 SDK 内运行的任何软件(在后续闪存编程中遇到故障)提供一些意见。

    [quote userid=“595821“ url=“~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1638975/f29h85x-som-evm-f29h85x-bank-mode-3-application-works-only-once-after-programming-via-ccs/6319104 错误:

    您当前使用的是哪个 CCS 版本?

    此致、

    Marlyn

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

    CCS 版本:20.4.1.4__1.10.1

    对于 flash_mode3_512_program_cpu1_cpu3 示例工程、遇到的错误是我从 nmiStatus 寄存器提供的错误。 我在 Bankmode 3 中运行它、 断点不再被命中、应用程序不再正常运行。

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

    尊敬的 Chibudem:

    我正在查看 flash_mode3_512_program_cpu1_cpu3 示例工程、将使用我的发现进行更新。  

    您是否有一个可以运行的示例工程、该工程展现了您在“使用 CCS 在存储体模式 3 中观察到的编程行为“中描述的行为?

    此致、

    Marlyn

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

    是、flash_based_sbl_with_fOTA (UART) 版本: f29h85x-sdk/examples/driverlib/single_core/flash/flash_based_sbl_with_fOTA at 1c297f3e2a85a6bff300ba2ae960ced1229ec442 TexasInstruments/f29h85x-sdk ·

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

    尊敬的 Chibudem:

     flash_mode3_512_program_cpu1_cpu3 示例工程似乎存在问题。 感谢您的报告。 我已经向我们的软件团队提出了这个问题、因此可以解决这个问题。

    对于 flash_based_sbl_with_fOTA、我在 F29x SDK 的 1.03 版本上测试了此情况、我没有看到任何问题。 我们的 GitHub 版本落后一个版本。 您能在 TI.com 上试用该版本吗?如果您遇到任何问题、请告诉我。  

    https://www.ti.com/tool/F29-SDK

    此致、

    Marlyn

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

    对于 flash_based_sbl_with_fOTA 工程、我使用 F29x SDK 版本 1.02.01.00。 您能否测试该版本?

    您能否在 TI.com 上试用该版本并告诉我您是否遇到任何问题?

    您是说您想让我尝试 F29x SDK 1.03 版的 flash_blocation_sbl_with_fOTA 工程吗?

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

    我已经使用 SDK 版本 1.03 尝试了 FLASH_based_uart_sbl_with_fOTA 工程。 它在 Bankmode 3 中仍然不起作用。 调用栈滞留在 0x0001535C、我从 EsmCPU1Regs 寄存器获得以下值:

    PID 0x6FE03101 0x60090000 修订版本寄存器信息 0x800808 0x60090004 信息寄存器 EN 0x00000000 0x60090008 全局使能寄存器 SFT_RST 0x00000000 0x6009000C 全局软复位寄存器 LOW_PRI 0x60090000 优先级寄存器 优先级看门狗预加载寄存器 HI_PRI_WD_INTR_SET 0x00000000 0x6009008C 高优先级看门狗中断状态/设置寄存器 HI_PRI_WD_INTR_CLR 0x00000000 0x60090090 高优先级看门狗中断状态/清除寄存器 GROUP_N_LOCK 0x00000001 0x60090100 组 N 中断锁定寄存器 ENT_PRI_PRI_WD_INCR900000 CRPRI_CAST_CLI_关键控制寄存器 0x6000000_DECR900000 CRPRI_PRI_PRI_DECR1000_DECR1000_DECR1000_DECR1000_DECR100000

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

    尊敬的 Chibudem:

    对于 flash_mode3_512_program_cpu1_cpu3、请确保禁用闪存设置中的 FOTA 选项。 未选中此复选框时、示例的闪存构建应成功运行。

    我尝试了 SDK 版本 1.03 的 flash_based_uart_sbl_with_fOTA 工程。 它在 Bankmode 3 中仍然不起作用。 调用栈滞留在 0x0001535C、我从 EsmCPU1Regs 寄存器获得这些值:

    这与您之前在本示例中描述的行为不同。 这发生在第 2 个编程步骤中? 您能否提供有关 FOTA 和存储体交换相关的“闪存设置“中设置的更多详细信息?

    此致、

    Marlyn

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

    闪存设置:

    这会在第二个编程步骤中发生?

    第二个编程步骤是什么意思?

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

    Chibudem,

    您能否取消选中启用 FOTA 的复选框。 然后、您可以对 BANKMGMT 进行编程->使用 XRSn。

    完成上述步骤后、您能否重试程序加载并检查是否遇到任何问题?

    谢谢

    Aswin