From 5c58381988a28c273bfc0b013e7ae35aa5298aa5 Mon Sep 17 00:00:00 2001 From: armink Date: Thu, 23 Apr 2015 13:46:27 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E3=80=90=E5=A2=9E=E5=8A=A0=E3=80=91?= =?UTF-8?q?=E5=BC=80=E5=90=AF=E3=80=81=E5=85=B3=E9=97=ADIAP=E5=8F=8AENV?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E7=9A=84=E5=AE=8F=E5=AE=9A=E4=B9=89=EF=BC=8C?= =?UTF-8?q?=E6=8F=90=E9=AB=98=E8=BD=AF=E4=BB=B6=E5=8F=AF=E8=A3=81=E5=89=AA?= =?UTF-8?q?=E6=80=A7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: armink --- flash/inc/flash.h | 10 +++++++++- flash/src/flash.c | 4 ++++ flash/src/flash_env.c | 8 ++++++-- flash/src/flash_env_wl.c | 9 +++++++-- flash/src/flash_iap.c | 4 ++++ flash/src/flash_utils.c | 2 +- 6 files changed, 31 insertions(+), 6 deletions(-) diff --git a/flash/inc/flash.h b/flash/inc/flash.h index c48f0c9..600a583 100644 --- a/flash/inc/flash.h +++ b/flash/inc/flash.h @@ -26,6 +26,10 @@ #include "types.h" +/* using ENV function */ +#define FLASH_USING_ENV +/* using IAP function */ +#define FLASH_USING_IAP /* 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 */ @@ -46,7 +50,7 @@ if (!(EXPR)) \ while (1); \ } /* EasyFlash software version number */ -#define FLASH_SW_VERSION "1.04.20" +#define FLASH_SW_VERSION "1.04.23" typedef struct _flash_env{ char *key; @@ -66,6 +70,7 @@ typedef enum { /* flash.c */ FlashErrCode flash_init(void); +#ifdef FLASH_USING_ENV /* flash_env.c flash_env_wl.c */ void flash_load_env(void); void flash_print_env(void); @@ -75,7 +80,9 @@ FlashErrCode flash_save_env(void); FlashErrCode flash_env_set_default(void); size_t flash_get_env_total_size(void); size_t flash_get_env_write_bytes(void); +#endif +#ifdef FLASH_USING_IAP /* flash_iap.c */ FlashErrCode flash_erase_bak_app(size_t app_size); FlashErrCode flash_erase_user_app(uint32_t user_app_addr, size_t user_app_size); @@ -84,6 +91,7 @@ FlashErrCode flash_write_data_to_bak(uint8_t *data, size_t size, size_t *cur_siz size_t total_size); FlashErrCode flash_copy_app_from_bak(uint32_t user_app_addr, size_t app_size); FlashErrCode flash_copy_bl_from_bak(uint32_t bl_addr, size_t bl_size); +#endif /* flash_port.c */ FlashErrCode flash_read(uint32_t addr, uint32_t *buf, size_t size); diff --git a/flash/src/flash.c b/flash/src/flash.c index b683589..6fd4e47 100644 --- a/flash/src/flash.c +++ b/flash/src/flash.c @@ -64,14 +64,18 @@ FlashErrCode flash_init(void) { result = flash_port_init(&env_start_addr, &env_total_size, &erase_min_size, &default_env_set, &default_env_set_size); +#ifdef FLASH_USING_ENV if (result == FLASH_NO_ERR) { result = flash_env_init(env_start_addr, env_total_size, erase_min_size, default_env_set, default_env_set_size); } +#endif +#ifdef FLASH_USING_IAP if (result == FLASH_NO_ERR) { result = flash_iap_init(env_start_addr + flash_get_env_total_size()); } +#endif if (result == FLASH_NO_ERR) { FLASH_DEBUG("EasyFlash V%s is initialize success.\n", FLASH_SW_VERSION); diff --git a/flash/src/flash_env.c b/flash/src/flash_env.c index 00602ff..2075c9c 100644 --- a/flash/src/flash_env.c +++ b/flash/src/flash_env.c @@ -24,6 +24,8 @@ #include #include +#ifdef FLASH_USING_ENV + #ifdef FLASH_ENV_USING_NORMAL_MODE /** @@ -204,7 +206,7 @@ size_t flash_get_env_total_size(void) { * * @return write bytes */ -uint32_t flash_get_env_write_bytes(void) { +size_t flash_get_env_write_bytes(void) { return get_env_end_addr() - env_start_addr; } @@ -569,4 +571,6 @@ static bool_t env_crc_is_ok(void) { } #endif -#endif +#endif /* FLASH_ENV_USING_NORMAL_MODE */ + +#endif /* FLASH_USING_ENV */ diff --git a/flash/src/flash_env_wl.c b/flash/src/flash_env_wl.c index 93a0c46..61a8a94 100644 --- a/flash/src/flash_env_wl.c +++ b/flash/src/flash_env_wl.c @@ -24,6 +24,8 @@ #include #include +#ifdef FLASH_USING_ENV + #ifdef FLASH_ENV_USING_WEAR_LEVELING_MODE /** @@ -241,7 +243,7 @@ static size_t get_env_user_used_size(void) { * * @return write bytes */ -uint32_t flash_get_env_write_bytes(void) { +size_t flash_get_env_write_bytes(void) { return get_env_detail_end_addr() - get_env_start_addr(); } @@ -700,4 +702,7 @@ static FlashErrCode save_cur_using_data_addr(uint32_t cur_data_addr) { } return result; } -#endif + +#endif /* FLASH_ENV_USING_WEAR_LEVELING_MODE */ + +#endif /* FLASH_USING_ENV */ diff --git a/flash/src/flash_iap.c b/flash/src/flash_iap.c index eb03462..5e59af4 100644 --- a/flash/src/flash_iap.c +++ b/flash/src/flash_iap.c @@ -22,6 +22,8 @@ #include "flash.h" +#ifdef FLASH_USING_IAP + /* IAP section backup application section start address in flash */ static uint32_t bak_app_start_addr = NULL; @@ -248,3 +250,5 @@ static uint32_t get_bak_app_start_addr(void) { FLASH_ASSERT(bak_app_start_addr); return bak_app_start_addr; } + +#endif /* FLASH_USING_IAP */ diff --git a/flash/src/flash_utils.c b/flash/src/flash_utils.c index 1c0bb81..445c8b7 100644 --- a/flash/src/flash_utils.c +++ b/flash/src/flash_utils.c @@ -20,7 +20,7 @@ * Created on: 2015-01-14 */ -#include "types.h" +#include "flash.h" static const uint32_t crc32_table[] = {