我在读取编程位置时获得 FaultISR。 如果尚未对其进行编程、则其读数正常。
在我使用固件版本 I getFaultISR 对位置进行编程之后。
/*从已知位置读取当前版本*/
memcpy (&appVersion、appVerLoc、sizeof (appVersion));
我在读取之前尝试了 fapi_flushPipeline(),但这没有帮助。
谢谢。
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.
我在读取编程位置时获得 FaultISR。 如果尚未对其进行编程、则其读数正常。
在我使用固件版本 I getFaultISR 对位置进行编程之后。
/*从已知位置读取当前版本*/
memcpy (&appVersion、appVerLoc、sizeof (appVersion));
我在读取之前尝试了 fapi_flushPipeline(),但这没有帮助。
谢谢。
瑞吉斯
如 TRM (http://www.ti.com/lit/spruhe8)的第5.3.10节纠错码(ECC)保护中所述、必须为闪存编程 ECC 以避免 ECC 错误。 复位时、针对闪存读取/取的 ECC 检查被启用。
使用 API 时、Fapi_AutoEccGeneration 模式是对 ECC 进行编程的最简单方法。 这要求所有64位数据都可用。 有关 更多详细信息,请阅读 www.ti.com/.../spnu595上闪存 API 参考指南中的第3.2.3节 Fapi_issueProgrammingCommand()。
如果您有任何疑问、请告诉我。
谢谢、此致、
Vamsi
瑞吉斯
1) 1)使用 ECC 时、代码未正确放入闪存中。
您能否提供有关此问题的更多详细信息?
2) 2) 是否有用于为 ECC 编程导出十六进制的设置?
您可以使用链接器生成的 ECC 选项(在 TI ARM 和 C28x 汇编语言工具用户指南中进行了说明) 来生成 ECC 并将 ECC 附加到输出可执行文件中,作为链接步骤的一部分。 但是、我想了解您在使用 AutoEccGeneration 模式对十六进制数据进行编程时遇到的问题。 如果无法解析 ECC、则可以在只对数据进行编程后对其进行编程。 您可以使用 Fapi_calculateECC()和 Fapi_EccOnly 模式(用于程序)来完成此操作。
谢谢、此致、
Vamsi
我现在对文档进行了更好的了解。
您能 更详细地解释一下 Fapi_issueProgrammingCommand 的工作原理吗、以帮助我更正我在下面看到的内容吗?
十六进制文件数据: 地址: 002E0050数据:03 F0 9A 为70 47
编程后在 M3闪存中:
使用 DataOnly: 地址: 002E0050数据:03 F0 9A 为70 47
使用 AutoECC: 地址:002E0050数据:03 FF FF FF FF FF FF FF FF FF