From 9e88186e5fd87b0dd99faebcc4d72409efcb7c7c Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期五, 03 一月 2025 17:04:07 +0800 Subject: [PATCH] 加入支持通过uwb给基站基站升级 --- dualboots_Gai_youhua_anbang_tag/src/customboot/customboot.c | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 42 insertions(+), 2 deletions(-) diff --git a/dualboots_Gai_youhua_anbang_tag/src/customboot/customboot.c b/dualboots_Gai_youhua_anbang_tag/src/customboot/customboot.c index a27ce2a..1a818cd 100644 --- a/dualboots_Gai_youhua_anbang_tag/src/customboot/customboot.c +++ b/dualboots_Gai_youhua_anbang_tag/src/customboot/customboot.c @@ -117,11 +117,15 @@ } } +unsigned short int APP_byte = 0; unsigned short int updata_byte = 0; uint8_t trx_buf[10] = {0}; +int test1; +int aaa; +uint16_t finalbag; int main(void) { uint8_t c; - + uint8_t zhongjian_shuju[128]; //sys_tick_callback_set(systic_time_callback); board_clock_run(); board_pins_config(); @@ -172,10 +176,46 @@ //flash_write_nbytes(FLASH_ID0,APP_CONFIG_IAPFLAG_MAP,(uint8_t*)&tmp,2);//测试用 // SPIFlash_Read(SPI_FLASH_ID_0, (HIDO_UINT8*)&tmp, APP_CONFIG_IAPFLAG_MAP, sizeof(tmp)); MK8000修改 - flash_read(FLASH_ID0, APP_CONFIG_IAPFLAG_MAP, (uint8_t*)&tmp, 2); while (flash_check_busy(FLASH_ID0)) { } + flash_read(FLASH_ID0, APP_1OR2_ADRESS, (uint8_t*)&tmp, 2); + APP_byte = tmp; + if(APP_byte==0XDDDD) + { + Serial0PutString("进入搬运\r\n"); + flash_erase(FLASH_ID0, APP_1OR2_ADRESS, 0x1000);//擦除APP + flash_read(FLASH_ID0, APP_1OR2_ADRESS, (uint8_t*)&tmp, 2); + APP_byte = tmp; + if(APP_byte==0XDDDD) + { + memcpy((void *)SRAM_BASE, (void *)APP_CONFIG_APPLICATION_ADDRESS, APP_CONFIG_APPLICATION_SIZE);//size太大导致覆盖没法跳转 + __set_MSP(*(uint32_t *)SRAM_BASE); + typedef void (*p_entry_t)(void); + ((p_entry_t) (*(uint32_t *)(SRAM_BASE + 4) + SRAM_BASE))(); + } + Serial0PutString("擦除标注位成功\r\n"); + test1=flash_erase(FLASH_ID0,APP1_ADRESS,FLASH_IAP_CTRL_MAP-APP1_ADRESS); + if(test1==0) + { + finalbag=((FLASH_IAP_CTRL_MAP-APP1_ADRESS)/128)+1; + for(aaa=0;aaa<finalbag;aaa++) + { + time32_reset=0; + memcpy(&zhongjian_shuju,(void *)(APP2_ADRESS+(aaa*128)),128); + test1=flash_write_nbytes(FLASH_ID0, (APP1_ADRESS+(aaa*128)), (uint8_t*)&zhongjian_shuju, 128); + if(test1==0) + {Serial0PutString("test1=0\r\n");} + else + {Serial0PutString("test1=1\r\n");} + } + delay_ms(10); + Serial0PutString("搬运成功,准备重启\r\n"); + delay_ms(500); + NVIC_SystemReset(); + } + } + flash_read(FLASH_ID0, APP_CONFIG_IAPFLAG_MAP, (uint8_t*)&tmp, 2); updata_byte = tmp;//读取指定地址的值 if(updata_byte == 0xAAAA)//判断此地址的值是否为0xAAAA,如果是则升级 { -- Gitblit v1.9.3