1、【修复】Flash log 中的 EfSecrorStatus 在上一版本遗漏更新的问题。感谢网友 @Teddy_Le 的反馈。

Signed-off-by: armink <armink.ztl@gmail.com>
pull/7/merge
armink 9 years ago
parent 2883158fd0
commit 365892e4b4

@ -94,7 +94,7 @@ EfErrCode ef_log_init(void) {
*/
static void find_start_and_end_addr(void) {
size_t cur_size = 0;
FlashSecrorStatus cur_sec_status, last_sec_status;
EfSecrorStatus cur_sec_status, last_sec_status;
uint32_t cur_using_sec_addr = 0;
/* all status sector counts */
size_t empty_sec_counts = 0, using_sec_counts = 0, full_sector_counts = 0;
@ -112,15 +112,15 @@ static void find_start_and_end_addr(void) {
cur_sec_status = ef_get_sector_status(log_area_start_addr + cur_size, EF_ERASE_MIN_SIZE);
/* compare last and current status */
switch (last_sec_status) {
case FLASH_SECTOR_EMPTY: {
case EF_SECTOR_EMPTY: {
switch (cur_sec_status) {
case FLASH_SECTOR_EMPTY:
case EF_SECTOR_EMPTY:
break;
case FLASH_SECTOR_USING:
case EF_SECTOR_USING:
EF_DEBUG("Error: Log area error! Now will clean all log area.\n");
ef_log_clean();
return;
case FLASH_SECTOR_FULL:
case EF_SECTOR_FULL:
EF_DEBUG("Error: Log area error! Now will clean all log area.\n");
ef_log_clean();
return;
@ -128,19 +128,19 @@ static void find_start_and_end_addr(void) {
empty_sec_counts++;
break;
}
case FLASH_SECTOR_USING: {
case EF_SECTOR_USING: {
switch (cur_sec_status) {
case FLASH_SECTOR_EMPTY:
case EF_SECTOR_EMPTY:
/* like state 1 */
cur_log_sec_state = 1;
log_start_addr = log_area_start_addr;
cur_using_sec_addr = log_area_start_addr + cur_size - EF_ERASE_MIN_SIZE;
break;
case FLASH_SECTOR_USING:
case EF_SECTOR_USING:
EF_DEBUG("Error: Log area error! Now will clean all log area.\n");
ef_log_clean();
return;
case FLASH_SECTOR_FULL:
case EF_SECTOR_FULL:
/* like state 2 */
cur_log_sec_state = 2;
log_start_addr = log_area_start_addr + cur_size;
@ -150,9 +150,9 @@ static void find_start_and_end_addr(void) {
using_sec_counts++;
break;
}
case FLASH_SECTOR_FULL: {
case EF_SECTOR_FULL: {
switch (cur_sec_status) {
case FLASH_SECTOR_EMPTY:
case EF_SECTOR_EMPTY:
/* like state 1 */
if (cur_log_sec_state == 2) {
EF_DEBUG("Error: Log area error! Now will clean all log area.\n");
@ -166,7 +166,7 @@ static void find_start_and_end_addr(void) {
cur_using_sec_addr = log_area_start_addr + cur_size - EF_ERASE_MIN_SIZE;
}
break;
case FLASH_SECTOR_USING:
case EF_SECTOR_USING:
if(total_sec_num <= 2) {
/* like state 1 */
cur_log_sec_state = 1;
@ -181,7 +181,7 @@ static void find_start_and_end_addr(void) {
}
}
break;
case FLASH_SECTOR_FULL:
case EF_SECTOR_FULL:
break;
}
full_sector_counts++;
@ -192,11 +192,11 @@ static void find_start_and_end_addr(void) {
}
/* the last sector status counts */
if (cur_sec_status == FLASH_SECTOR_EMPTY) {
if (cur_sec_status == EF_SECTOR_EMPTY) {
empty_sec_counts++;
} else if (cur_sec_status == FLASH_SECTOR_USING) {
} else if (cur_sec_status == EF_SECTOR_USING) {
using_sec_counts++;
} else if (cur_sec_status == FLASH_SECTOR_FULL) {
} else if (cur_sec_status == EF_SECTOR_FULL) {
full_sector_counts++;
}

Loading…
Cancel
Save