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文件下载。
8 手机端安装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开始升级,直到升级完成。