工具/软件:
在本常见问题解答中、我将介绍如何写入闪存组 0
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.
工具/软件:
在本常见问题解答中、我将介绍如何写入闪存组 0
要将任何内容写入闪存组 0、我们需要确保执行这两项操作。
1.我们应将所有 FAPI 例程执行到 RAM 中、因为“F021 闪存 API 库无法从与活动组相同的闪存组执行
选择它以使 API 命令运行。 在单组器件上、必须从 RAM 执行 F021 闪存 API。“
有关更多详细信息、请再次参阅以下主题:
(+) TMS570LS3137:TMS570LS3137:运行期间写入闪存 — 基于 Arm 的微控制器论坛 — 基于 Arm 的微控制器 — TI E2E 支持论坛
2、不仅 FAPI 例程,而且状态验证相关函数也只能从 RAM 执行。
例如:
我们 在 RAM 中执行 Fapi_issueAsyncCommandWithAddress 和 Fapi_issueProgrammingCommand 函数、这没有问题、但闪存中仍然存在其相应的状态验证。
即:
while ( FAPI_CHECK_FSM_ready_busy == Fapi_Status_Fsm );
while (FAPI_GET_FSM_STATUS!= Fapi_Status_Success);
上述两行仍在闪存中执行、这会产生问题、因为在对其中一个闪存存储体启动擦除或写入操作命令后、在发出命令操作完成之前、我们不应在同一闪存存储体中执行任何代码。 如果我们在完成将创建异常的操作之前访问同一个闪存存储体。
在您的情况下也会发生同样的情况。 因此、这里的解决方案是操作擦除和编程的状态检查指令也应发生在 RAM 而不是闪存中。
如果我们确保这样做、我们可以将代码轻松写入闪存组 0
以下是该函数的示例工程: