器件型号: F29H85X-EVM-EVM SOM
- 当该器件处于 存储体模式 2时、编程和执行在重复的编程/调试周期内是可靠的。
- 切换到 存储体模式 3时、应用会:
- 仅在第一个程序之后才能正确运行。
- 在后续编程尝试时、系统会出现故障: 不再命中断点、 错误聚合器重复置为有效、 应用程序不再正常运行。
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-EVM-EVM SOM
尊敬的 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 下的编程行为[/quote]
将器件编程为存储体模式 3
复位时执行 Power‑on Reset 以进入组模式 3
第一个编程周期
- 在 CCS 中将新固件编程到 CPU1。
- 复位时执行 Power‑On Reset。
- 结果: 没有问题。
第二个编程周期
- Re‑将同一固件编程到 CPU1。
- 复位时执行 Power‑On Reset。
- 错误:
- 调用栈:
0x00014EB0
我还尝试了调试 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
是、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
我已经使用 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