一起使用 Data Logger- 和 Eeprom 服务
Using Datalogger- and EepromService together
我正在尝试在设备上存储一些数据,但我不想在数据记录器已满时将其覆盖。并 运行 处理一些小问题。我一直在寻找 "eeprom_logbook_app" 但无法在设备库的固件版本 1.6.2 中找到它。
我已经定义了我想要多少 space 我的持久数据,并且在 App.cpp 我使用了 LOGBOOK_MEMORY_AREA(offset, size) 宏。
其中我使用了我想要存储的大小作为偏移量并将大小设置为
(2097152 + 1048576) - (size of data I want to store)
因为这是我向传感器询问 eeprom 大小时返回的内容。 (eeprom 分为 2 个 IC,一个 1MB 容量和一个 2MB 容量?)
然后我想起有人说 ExtflashChunkStorage::StorageHeader 被存储为 答案中的前 256 个字节。
所以我的问题是数据将从哪里偏移,我可以设置的最大大小是多少,以便我可以减去正确的数量以适合我的数据?我想我至少需要从大小中再减去 256 个字节才能获得正确的存储大小。
正如我在评论中所述,我让这个工作正常,您唯一需要做的就是使用 LOGBOOK_MEMORY_AREA(offset, size) 函数。
假设您想为自己的配置预留 256 位,您可以这样做:
#define RESERVED_CONFIG 256
#define TOTAL_MEMMORY_SIZE (2097152 + 1048576)
static const uint32_t offset = RESERVED_CONFIG;
static const uint32_t size = TOTAL_MEMMORY_SIZE -offset;
LOGBOK_MEMORY_AREA(offset, size);
这将在 EEPROM 存储器的开头留出 256 个字节,并偏移日志以容纳此空间。因此,日志 header 也将移至日志存储区的开头。
我正在尝试在设备上存储一些数据,但我不想在数据记录器已满时将其覆盖。并 运行 处理一些小问题。我一直在寻找 "eeprom_logbook_app" 但无法在设备库的固件版本 1.6.2 中找到它。
我已经定义了我想要多少 space 我的持久数据,并且在 App.cpp 我使用了 LOGBOOK_MEMORY_AREA(offset, size) 宏。
其中我使用了我想要存储的大小作为偏移量并将大小设置为
(2097152 + 1048576) - (size of data I want to store)
因为这是我向传感器询问 eeprom 大小时返回的内容。 (eeprom 分为 2 个 IC,一个 1MB 容量和一个 2MB 容量?)
然后我想起有人说 ExtflashChunkStorage::StorageHeader 被存储为
所以我的问题是数据将从哪里偏移,我可以设置的最大大小是多少,以便我可以减去正确的数量以适合我的数据?我想我至少需要从大小中再减去 256 个字节才能获得正确的存储大小。
正如我在评论中所述,我让这个工作正常,您唯一需要做的就是使用 LOGBOOK_MEMORY_AREA(offset, size) 函数。 假设您想为自己的配置预留 256 位,您可以这样做:
#define RESERVED_CONFIG 256
#define TOTAL_MEMMORY_SIZE (2097152 + 1048576)
static const uint32_t offset = RESERVED_CONFIG;
static const uint32_t size = TOTAL_MEMMORY_SIZE -offset;
LOGBOK_MEMORY_AREA(offset, size);
这将在 EEPROM 存储器的开头留出 256 个字节,并偏移日志以容纳此空间。因此,日志 header 也将移至日志存储区的开头。