EasyFlash icon indicating copy to clipboard operation
EasyFlash copied to clipboard

size_t ef_log_get_used_size(void) 函数返回值是负值

Open Aslm opened this issue 5 years ago • 3 comments
trafficstars

原语句是:header_total_num = (physical_size / EF_ERASE_MIN_SIZE) + 1; 修改后是:header_total_num = (physical_size % EF_ERASE_MIN_SIZE) + 1;

在执行原语句的时候 physical_size / EF_ERASE_MIN_SIZE 是会计算错误(本台是STM32F072、MDK)。 作者的本意是计算扇区使用多少个吧。

Aslm avatar Feb 18 '20 05:02 Aslm

physical_size / EF_ERASE_MIN_SIZE 是会计算错误(本台是STM32F072、MDK)

具体是什么错误?

armink avatar Feb 18 '20 06:02 armink

感谢回答,今天重新配置了页大小 #define PAGE_SIZE 1024
#define EF_ERASE_MIN_SIZE (4U * PAGE_SIZE) --> #define PAGE_SIZE 2048 #define EF_ERASE_MIN_SIZE (2U * PAGE_SIZE) 新参数运行正常了。 奇怪的是 physical_size / EF_ERASE_MIN_SIZE 的结果在我的原设置下是很大的数。

Aslm avatar Feb 20 '20 09:02 Aslm

这个我也踩坑了,配置这个EF_ERASE_MIN_SIZE宏参数忘记加括号ef_log_get_used_size()读出来有问题

chc0chc avatar Nov 18 '23 16:11 chc0chc