|
|
|
|
@ -517,8 +517,8 @@ void flash_load_env(void) {
|
|
|
|
|
|
|
|
|
|
/* read current using data section address */
|
|
|
|
|
flash_read(get_env_start_addr(), &using_data_addr, 4);
|
|
|
|
|
/* if environment variables is not initialize, set default for it */
|
|
|
|
|
if (using_data_addr == 0xFFFFFFFF) {
|
|
|
|
|
/* if environment variables is not initialize or flash has dirty data, set default for it */
|
|
|
|
|
if ((using_data_addr == 0xFFFFFFFF) || (using_data_addr > env_start_addr + env_total_size)) {
|
|
|
|
|
/* initialize current using data section address */
|
|
|
|
|
set_cur_using_data_addr(get_env_start_addr() + flash_erase_min_size);
|
|
|
|
|
/* save current using data section address to flash*/
|
|
|
|
|
@ -530,6 +530,10 @@ void flash_load_env(void) {
|
|
|
|
|
set_cur_using_data_addr(using_data_addr);
|
|
|
|
|
/* read environment variables detail part end address from flash */
|
|
|
|
|
flash_read(get_cur_using_data_addr() + ENV_PARAM_PART_INDEX_END_ADDR * 4, &env_end_addr, 4);
|
|
|
|
|
/* if environment variables end address has error, set default for environment variables */
|
|
|
|
|
if (env_end_addr > env_start_addr + env_total_size) {
|
|
|
|
|
flash_env_set_default();
|
|
|
|
|
} else {
|
|
|
|
|
/* set environment variables detail part end address */
|
|
|
|
|
set_env_detail_end_addr(env_end_addr);
|
|
|
|
|
|
|
|
|
|
@ -547,6 +551,7 @@ void flash_load_env(void) {
|
|
|
|
|
FLASH_INFO("Warning: Environment variables CRC check failed. Set it to default.\n");
|
|
|
|
|
flash_env_set_default();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|