将数据记录器和EpromService一起使用



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

我已经定义了我想要多少空间来存放持久数据,在App.cpp中,我使用了LOGBOOK_MEMORY_AREA(偏移量,大小(宏。

其中我使用了我想要存储的大小作为偏移,并将大小设置为

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

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

然后我想起有人谈论ExtflashChunkStorage::StorageHeader被存储为这个答案中的前256个字节。

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

正如我在评论中所说,我已经完成了这项工作,您唯一需要做的就是使用LOGBOOK_MEMORY_AREA(偏移量,大小(函数。假设你想为自己的配置留出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个字节,并偏移日志以适应这一点。因此,行车日志标题也将移动到行车日志记忆区域的起始位置。

最新更新