#ifndef __IAP_H__ #define __IAP_H__ #include "main.h" #include "cmsis_os.h" #include "FreeRTOS.h" #include "task.h" #include "timers.h" #include "event_groups.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "string.h" #include "stdio.h" #include "usart.h" #include "config.h" #include "rkg.h" #include "cang.h" #include "kzq.h" #include "level.h" #include "tem.h" #include "angle.h" #include "xyf.h" #include "hdf.h" #include "bgy.h" #include "yqhs.h" ////////////////////////////////////////////////////////////////////////////////// //邵磊明 2022/01/11 //All rights reserved ////////////////////////////////////////////////////////////////////////////////// typedef void (*iapfun)(void); //定义一个函数类型的参数. #define FLASH_APP1_ADDR 0x08010000 //第一个应用程序起始地址(存放在FLASH) //保留0X08000000~0X0800FFFF的空间为IAP使用 /* 启动选项 */ #define Startup_Normal 0xBBBBBBBB ///< 正常启动 跳转到APP1 #define Startup_Update 0xAAAAAAAA ///< 升级再启动 #define Startup_Reset 0x5555AAAA ///< ***恢复出厂 目前没使用*** #define Startup_APP2 0x5555BBBB ///< ***跳转到APP2*** #define StartBytes_IAP ((uint32_t)0xA55A55AA) //远程升级的起始字节 #define EndBytes_IAP ((uint32_t)0x5AA5AA55) //远程升级的结束字节 void Process_CMD_IAP_Update(void); void Set_Update_Down(void); void Res_Update_Down(void); void Start_BootLoader(void); void iap_load_app(uint32_t appxaddr); //执行flash里面的app程序 void iap_load_appsram(uint32_t appxaddr); //执行sram里面的app程序 void iap_write_appbin(uint32_t appxaddr,uint8_t *appbuf,uint32_t applen); //在指定地址开始,写入bin #endif