diff --git a/demo/stm32f10x/non_os/components/easyflash/port/flash_port.c b/demo/stm32f10x/non_os/components/easyflash/port/flash_port.c index dac081a..ac85463 100644 --- a/demo/stm32f10x/non_os/components/easyflash/port/flash_port.c +++ b/demo/stm32f10x/non_os/components/easyflash/port/flash_port.c @@ -66,11 +66,12 @@ static char log_buf[128]; * @param erase_min_size the minimum size of Flash erasure * @param default_env default ENV set for user * @param default_env_size default ENV size + * @param log_total_size saved log area size * * @return result */ FlashErrCode flash_port_init(uint32_t *env_addr, size_t *env_total_size, size_t *erase_min_size, - flash_env const **default_env, size_t *default_env_size) { + flash_env const **default_env, size_t *default_env_size, size_t *log_size) { FlashErrCode result = FLASH_NO_ERR; FLASH_ASSERT(FLASH_USER_SETTING_ENV_SIZE % 4 == 0); @@ -98,7 +99,6 @@ FlashErrCode flash_port_init(uint32_t *env_addr, size_t *env_total_size, size_t FlashErrCode flash_read(uint32_t addr, uint32_t *buf, size_t size) { FlashErrCode result = FLASH_NO_ERR; - FLASH_ASSERT(size >= 4); FLASH_ASSERT(size % 4 == 0); /*copy from flash to ram */ @@ -162,6 +162,8 @@ FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size) { FlashErrCode result = FLASH_NO_ERR; size_t i; uint32_t read_data; + + FLASH_ASSERT(size % 4 == 0); FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR); diff --git a/demo/stm32f10x/rtt/components/easyflash/port/flash_port.c b/demo/stm32f10x/rtt/components/easyflash/port/flash_port.c index 382a61a..d0bd85a 100644 --- a/demo/stm32f10x/rtt/components/easyflash/port/flash_port.c +++ b/demo/stm32f10x/rtt/components/easyflash/port/flash_port.c @@ -66,11 +66,12 @@ static struct rt_semaphore env_cache_lock; * @param erase_min_size the minimum size of Flash erasure * @param default_env default ENV set for user * @param default_env_size default ENV size + * @param log_total_size saved log area size * * @return result */ FlashErrCode flash_port_init(uint32_t *env_addr, size_t *env_total_size, size_t *erase_min_size, - flash_env const **default_env, size_t *default_env_size) { + flash_env const **default_env, size_t *default_env_size, size_t *log_size) { FlashErrCode result = FLASH_NO_ERR; FLASH_ASSERT(FLASH_USER_SETTING_ENV_SIZE % 4 == 0); @@ -101,7 +102,6 @@ FlashErrCode flash_port_init(uint32_t *env_addr, size_t *env_total_size, size_t FlashErrCode flash_read(uint32_t addr, uint32_t *buf, size_t size) { FlashErrCode result = FLASH_NO_ERR; - FLASH_ASSERT(size >= 4); FLASH_ASSERT(size % 4 == 0); /*copy from flash to ram */ @@ -166,6 +166,8 @@ FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size) { size_t i; uint32_t read_data; + FLASH_ASSERT(size % 4 == 0); + FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR); for (i = 0; i < size; i += 4, buf++, addr += 4) { diff --git a/demo/stm32f4xx/components/easyflash/port/flash_port.c b/demo/stm32f4xx/components/easyflash/port/flash_port.c index 2afbd32..00584ad 100644 --- a/demo/stm32f4xx/components/easyflash/port/flash_port.c +++ b/demo/stm32f4xx/components/easyflash/port/flash_port.c @@ -88,11 +88,12 @@ static uint32_t stm32_get_sector_size(uint32_t sector); * @param erase_min_size the minimum size of Flash erasure * @param default_env default ENV set for user * @param default_env_size default ENV size + * @param log_total_size saved log area size * * @return result */ FlashErrCode flash_port_init(uint32_t *env_addr, size_t *env_total_size, size_t *erase_min_size, - flash_env const **default_env, size_t *default_env_size) { + flash_env const **default_env, size_t *default_env_size, size_t *log_size) { FlashErrCode result = FLASH_NO_ERR; FLASH_ASSERT(FLASH_USER_SETTING_ENV_SIZE % 4 == 0); @@ -123,7 +124,6 @@ FlashErrCode flash_port_init(uint32_t *env_addr, size_t *env_total_size, size_t FlashErrCode flash_read(uint32_t addr, uint32_t *buf, size_t size) { FlashErrCode result = FLASH_NO_ERR; - FLASH_ASSERT(size >= 4); FLASH_ASSERT(size % 4 == 0); /*copy from flash to ram */ @@ -187,6 +187,8 @@ FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size) { size_t i; uint32_t read_data; + FLASH_ASSERT(size % 4 == 0); + FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR); diff --git a/easyflash/inc/flash.h b/easyflash/inc/flash.h index 5a2b78d..ba88fbf 100644 --- a/easyflash/inc/flash.h +++ b/easyflash/inc/flash.h @@ -37,7 +37,7 @@ extern "C" { /* using IAP function */ #define FLASH_USING_IAP /* using save log function */ -#define FLASH_USING_LOG +/* #define FLASH_USING_LOG */ /* using CRC32 check when load environment variable from Flash */ #define FLASH_ENV_USING_CRC_CHECK /* the user setting size of ENV, must be word alignment */