1234567891011121314151617181920212223242526272829303132333435 |
- #ifndef __IAP_H__
- #define __IAP_H__
- #include "main.h"
- #include "string.h"
- #include "stdio.h"
- #include "usart.h"
- typedef void (*iapfun)(void); //定义一个函数类型的参数.
- #define FLASH_APP1_ADDR 0x08010000 //第一个应用程序起始地址(存放在FLASH)
- //保留0X08000000~0X0800FFFF的空间为IAP使用
- /* 启动选项 */
- #define Startup_Normal 0xFFFFFFFF ///< 正常启动 跳转到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 Set_App2_Flag(void);
- void iap_load_app(uint32_t appxaddr); //执行flash里面的app程序
- void iap_write_appbin(uint32_t appxaddr,uint8_t *appbuf,uint32_t applen); //在指定地址开始,写入bin
- #endif
|