CH573 CH582 CH579 固定LIB OTA

OTA升级,以ble_uart为例(该工程是在ble_uart上修改的)

1、找到例程中的这三个工程,分别将这三个工程中的.hex取出;

 

 

 

1、打开ble_uart工程,将Ld中link.Ld替换成OnlyUpdateApp_Peripheral工程Ld中link.ld.

1、修改ble_uart工程

添加跳转函数Jump_OTA( void )

/* OTA 升级标志 */
#define IMAGE_OTA_FLAG                  0x03
/* 存放在DataFlash地址,不能占用蓝牙的位置 */
#define OTA_DATAFLASH_ADD               0x00077000-FLASH_ROM_MAX_SIZE
/* flash的数据临时存储 */
__attribute__((aligned(8))) uint8 block_buf[16];
/*******************************************************************************
* Function Name  : Jump_OTA
* Description    : 跳转OTA升级
* Input          :
* Output         : none
* Return         : none
*******************************************************************************/
void Jump_OTA( void )
{
  UINT16 i;
  UINT32  ver_flag;

  /* 读取第一块 */
  EEPROM_READ( OTA_DATAFLASH_ADD, (PUINT32) &block_buf[0], 4 );
  /* 擦除第一块 */
  EEPROM_ERASE(OTA_DATAFLASH_ADD,EEPROM_PAGE_SIZE);
  /* 更新Image信息 */
  block_buf[0] = IMAGE_OTA_FLAG;
  /* 编程DataFlash */
  EEPROM_WRITE(OTA_DATAFLASH_ADD, (PUINT32) &block_buf[0], 4);
  /* 软复位 */
  SYS_ResetExecute();
}

比如自定义CHAR3接收任意字节进行跳转(条件可以自定义)

修改配置:删除LIB路径,添加全局宏定义CH57xBLE_ROM

 

替换ble-uart的.S文件(可以用OnlyUpdateApp_IAP 的S文件替换),差别如下

 

 

重新编译工程ble_uart,并将.hex文件取出。

 

5、打开合并工具

6、将这个.hex文件放进合并工具的四个file中(可以不按顺序),点击合并文件。

 7、打开wchISPTool工具,将合并生成的.bin文件下载。

手机端安装ch573升级工具;

 9、将要升级的ble_uart工程的.hex文件存储到手\Android\data\cn.wch.ch573update\files\CH573OTA\imageA

 

10、打开BLE调试助手,连接对应的蓝牙;服务2的通道1发送数据(任意),蓝牙显示断开;

 

 11、手机打开ch573升级工具,连接OTAOTAO_OTAOTA_OTA;

 12、点击GETINFO,再点击IMAGEA,选择.hex文件

 13、点击START开始升级,直到升级完成。

 

posted @ 2022-03-07 13:36  debugdabiaoge  阅读(2478)  评论(9编辑  收藏  举报