aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Hsu <ryan.hsu@telink-semi.com>2023-04-07 09:17:40 -0700
committerRyan Hsu <ryan.hsu@telink-semi.com>2023-04-07 10:30:34 -0700
commit13df6d562096908209ceb96d21b7ed08bff9b6a6 (patch)
treeabecf27d83dbe5626f7dea748c1797044217199b
parent66f5a2ad57ca90baf034e2ea3a8db1cbe376aa3c (diff)
downloadrefDesignRcu-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.c14
-rw-r--r--version.h2
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");
}
diff --git a/version.h b/version.h
index 2910c30..bd6e136 100644
--- a/version.h
+++ b/version.h
@@ -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_ */