一起使用Datalogger-和EepromService

时间:2018-07-26 16:09:56

标签: movesense

我试图在数据记录器已满时不希望被其覆盖的设备上存储一些数据。并遇到了一些小问题。我正在寻找“ eeprom_logbook_app”,但在设备库的固件版本1.6.2中找不到它。

我已经定义了我的持久数据所需的空间,在App.cpp中,我使用了LOGBOOK_MEMORY_AREA(offset,size)宏。

我将要存储的大小用作偏移量,并将大小设置为

  

(2097152 + 1048576)-(我要存储的数据大小)

因为这是我向传感器询问eeprom大小时返回的内容。 (eeprom被划分为2个IC,其中一个IC的容量为1MB,另一个IC的容量为2MB?)

然后我想起了关于ExtflashChunkStorage :: StorageHeader作为enter image description here答案中的前256个字节存储的话题。

所以我的问题是数据将从何处偏移,可以设置为大小的最大大小是多少,以便我可以减去适合数据的正确数量?我想我至少需要再减去256个字节才能获得正确的存储大小。

1 个答案:

答案 0 :(得分:0)

正如我的评论中所述,我要做的唯一一件事就是使用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个字节,并偏移日志以适应此情况。结果,日志标题也将移至日志存储区的开头。