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 版本 :8.0
闪存 API 02.01.01
HALCOGEN :04.06
我们有两个图像、
使用 HALCOGEN 工具和生成的一个
2.另一个映像通过闪存 F021库和 API 调用闪存映像从 RAM 执行。
两个图像都独立工作。 当我们使用在 RAM 中执行的映像(即 2中提到的映像)来刷写 HALCOGEN 生成的映像(即1中提到的映像)时,代码卡在 由 HALCOGEN 生成的 CheckFlashECC()上。 您能帮助我们确定问题吗?
谢谢、
Kalyan
您好、Wang、
感谢您的回答。 我认为我没有正确地表达这个问题。
我们使用 F021库函数刷写映像(HALCOGEN 生成的映像)。 以下是通过和失败情况:
通过场景:
成功刷写映像后、如果我重启电源、代码执行过程中不会出现问题。
故障场景:
成功刷写映像后 ,如果我复位,则控制器代码执行卡在 CheckFlashECC()函数上。
注意:我们使用"Fapi_issueProgrammingCommand"和"Fapi_AutoEccGeneration"作为 FAPI 函数的参数。
您能告诉 我们为什么会发生这种情况吗?
谢谢、
Kalyan
您好 Kalyan、
第2个映像中的 sys_startup.c 可能调用 CheckFlashECC(),第1个映像可能在 其 sys_startup.c 中再次调用 CheckFlashECC()
在通过场景中、在跳转到第一个映像之前、ESM 状态寄存器中的值是多少?
您好 Kalyan、
感谢您提供更多信息。 代码是否停留在下面 if (..) 陈述?
if ((flashWREG->FEDASTATUS & 0x2U)== 0U)
{
自测故障通知(CHECKFLASHECC_FAIL1);
}
调用 CheckFlashECC()前的 ESM 值是什么,代码被卡住时的 ESM 值是什么?