您好!
我正在处理引导代码。 我必须将一些变量存储在从0x08.0000到0x08.3FFF 的地址中的闪存存储器中。 每次复位后、我必须读取变量并更新变量。 是否有用于这些操作的 API? 如何在我的计划中执行这些操作? 请指导我。
此致
Sandra
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.
您好!
我正在处理引导代码。 我必须将一些变量存储在从0x08.0000到0x08.3FFF 的地址中的闪存存储器中。 每次复位后、我必须读取变量并更新变量。 是否有用于这些操作的 API? 如何在我的计划中执行这些操作? 请指导我。
此致
Sandra
您好、Sandra、
我编辑了您帖子的标题、以帮助其他人在搜索时查找此信息。
我从您的问题中假设您需要读取一些在执行读取的程序范围之外初始化的闪存位置。 也就是说、您没有与该位置关联的符号。 您可以定义符号以指向特定位置、如下所示:
#define BOOT_STATE *(unsigned int *) 0x80000 my_function (void) { unsigned int state; state = boot_State; }
[引用 user="Bob Crosby"]在这种情况下,我建议您使用 EEPROM。
如果 OP 要执行此操作、那么我强烈建议阅读适用于 EEPROM 的勘误表。
[引用 user="Bob Crosby"]使用 TivaWare 中的函数编写和读取。
我相信闪存也是如此。 当然、EE 功能更友好。
在这两种情况下都需要注意的一点是、最大写入时间非常长。
Robert