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開始升級,直到升級完成。