diff options
author | Ryan Hsu <ryan.hsu@telink-semi.com> | 2023-04-07 09:17:40 -0700 |
---|---|---|
committer | Ryan Hsu <ryan.hsu@telink-semi.com> | 2023-04-07 10:30:34 -0700 |
commit | 13df6d562096908209ceb96d21b7ed08bff9b6a6 (patch) | |
tree | abecf27d83dbe5626f7dea748c1797044217199b | |
parent | 66f5a2ad57ca90baf034e2ea3a8db1cbe376aa3c (diff) | |
download | refDesignRcu-13df6d562096908209ceb96d21b7ed08bff9b6a6.tar.gz |
Fix the IR brick RCU issue
Correct the flash address to avoid memory corruption.
Set the version number to 2.20
bug: b/264841539
test: manual
Change-Id: If86a1d0efa1e05de3a7cc3fc1676ff0a4e279441
-rw-r--r-- | vendor/827x_ble_remote/app_ir.c | 14 | ||||
-rw-r--r-- | version.h | 2 |
2 files changed, 9 insertions, 7 deletions
diff --git a/vendor/827x_ble_remote/app_ir.c b/vendor/827x_ble_remote/app_ir.c index 9d95f25..f469c36 100644 --- a/vendor/827x_ble_remote/app_ir.c +++ b/vendor/827x_ble_remote/app_ir.c @@ -432,8 +432,8 @@ void ir_flash_check(u32 addr) ir_table[button_index].button_idx = button_index; if(code_size>256) { - printf("addr=%x\r\n",addr-IR_SECTOR_ADD_OFFSET+i*256); - flash_read_page(addr-IR_SECTOR_ADD_OFFSET+i*256, code_size-251, &buf[256]); + printf("addr=%x\r\n",addr-0x7000+i*256); + flash_read_page(addr-0x7000+i*256, code_size-251, &buf[256]); } memcpy(ir_table[button_index].code, &buf[5], code_size); @@ -604,7 +604,7 @@ void ir_flash_save(u8 button) bls_ll_disableConnBrxEvent(); //device_led_on(1); - flash_write_page(flash_addr-IR_SECTOR_ADD_OFFSET+ir_app_parm.ir_save.ir_save_pos-256,write_len_per,(((u8*)(&ir_table[button]))+ir_app_parm.ir_save.ir_save_pos)); + flash_write_page(flash_addr-0x7000+ir_app_parm.ir_save.ir_save_pos-256,write_len_per,(((u8*)(&ir_table[button]))+ir_app_parm.ir_save.ir_save_pos)); //device_led_off(1); bls_ll_restoreConnBrxEvent(); ir_flash_save_flag_for_ext_sector(); @@ -735,7 +735,7 @@ int ir_flash_erase_timeoutcb(void) //printf("ir_flash_erase_timeoutcb\r\n"); //u32 time; u8 data; - u32 pos_addr=0; + u32 pos_addr_ext=0, pos_addr=0; if(is_mic_enable() == 1) return 0; @@ -746,10 +746,12 @@ int ir_flash_erase_timeoutcb(void) if(ir_flash_need_erase_sector == 0) { pos_addr = 0; + pos_addr_ext = 0; } else if(ir_flash_need_erase_sector == 2) { pos_addr = 0x2000; + pos_addr_ext = 0x7000; } else { @@ -836,11 +838,11 @@ int ir_flash_erase_timeoutcb(void) else { printf("step_3\r\n"); - flash_read_page(IR_DATA_SECT_1_EXT_ADDR + pos_addr,1,&data); + flash_read_page(IR_DATA_SECT_1_EXT_ADDR - pos_addr_ext, 1, &data); if(data == APP_IR_DATA_HEAD) { printf("step_3_3\r\n"); - flash_erase_sector(IR_DATA_SECT_1_EXT_ADDR + pos_addr); + flash_erase_sector(IR_DATA_SECT_1_EXT_ADDR - pos_addr_ext); ir_flash_erase_sector_step = 0; printf("erase_succ\r\n"); } @@ -27,6 +27,6 @@ #ifndef VERSION_H_ #define VERSION_H_ -#define FW_VERSION 0x34210218//FW:v3.4.2 SW:v2.18 +#define FW_VERSION 0x34210220//FW:v3.4.2 SW:v2.20 #endif /* VERSION_H_ */ |