总之、我从对 Fapi_initializeFlashBanks 的调用中获得了数据中止(我认为不精确)、我认为此代码起作用、因此(我认为)在调用之前 CPU 处于不正确的状态。 在致电之前需要满足哪些条件、或者我可以查看哪些条件来解决此问题?
详细信息:我将用户配置变量存储在闪存的1个上段中、因此该代码块尝试仅擦除该段。 这个代码过去是有效的--在我实施引导加载程序之前,它允许用户在没有 JTAG 的情况下升级固件,所以这个新的引导加载程序代码有新的闪存操作代码,必须使闪存控制器处于错误状态。 我已经尝试了多种操作:从 RAM 或闪存中调用 Fapi_initializeFlashBanks、禁用或启用 ARM FlashECC、所有这些操作都无效。 此外、我还在 系统模式下调用 Fapi_initializeFlashBanks。 我已经阅读了您的 F021闪存 API 指南、其中规定 在执行任何其他操作之前调用 Fapi_initializeFlashBanks。
此外、在中止处理程序中、ESM 寄存器都为零、并且 CPSR-A 标志被置位、这意味着它是一个不精确的数据中止。
谢谢、
Jim