1、【修改】IAP中读取APP与Bootloader的方法,使其支持最新的flash_read接口。

Signed-off-by: armink <armink.ztl@gmail.com>
pull/1/head
armink 11 years ago
parent 3a31e0e9b0
commit fcbf3f98bc

@ -44,7 +44,7 @@ if (!(EXPR)) \
while (1); \
}
/* EasyFlash software version number */
#define FLASH_SW_VERSION "1.03.23"
#define FLASH_SW_VERSION "1.04.08"
typedef struct _flash_env{
char *key;

@ -175,11 +175,11 @@ FlashErrCode flash_copy_app_from_bak(uint32_t user_app_addr, size_t app_size) {
uint32_t buff[32];
/* cycle copy data */
for (cur_size = 0; cur_size < app_size; cur_size += sizeof(buff) / 4) {
for (cur_size = 0; cur_size < app_size; cur_size += sizeof(buff)) {
app_cur_addr = user_app_addr + cur_size;
bak_cur_addr = get_bak_app_start_addr() + cur_size;
flash_read(bak_cur_addr, buff, sizeof(buff) / 4);
result = flash_write(app_cur_addr, buff, sizeof(buff) / 4);
flash_read(bak_cur_addr, buff, sizeof(buff));
result = flash_write(app_cur_addr, buff, sizeof(buff));
if (result != FLASH_NO_ERR) {
break;
}
@ -211,15 +211,15 @@ FlashErrCode flash_copy_bl_from_bak(uint32_t bl_addr, size_t bl_size) {
size_t cur_size;
uint32_t bl_cur_addr, bak_cur_addr;
FlashErrCode result = FLASH_NO_ERR;
/* 32bytes buffer */
/* 32 words buffer */
uint32_t buff[32];
/* cycle copy data by 32bytes buffer */
for (cur_size = 0; cur_size < bl_size; cur_size += 32) {
for (cur_size = 0; cur_size < bl_size; cur_size += sizeof(buff)) {
bl_cur_addr = bl_addr + cur_size;
bak_cur_addr = get_bak_app_start_addr() + cur_size;
flash_read(bak_cur_addr, buff, 32);
result = flash_write(bl_cur_addr, buff, 32);
flash_read(bak_cur_addr, buff, sizeof(buff));
result = flash_write(bl_cur_addr, buff, sizeof(buff));
if (result != FLASH_NO_ERR) {
break;
}

Loading…
Cancel
Save