1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #ifndef __myBootloader_H
- #define __myBootloader_H
- #include "stm32f10x.h"
- #include "stdbool.h"
- // 0x08004000~0x0800FFFF的空间为APP使用
- #define APP_START_ADDR 0x0800C800
- // IAP地址最后一个Page放Flag
- #define IAP_UPGRADE_FLAG_ADDR (APP_START_ADDR-2048)
- // 用户的APP code 收到上位机 0x5AA5 命令后, 会设置此旗标, 表示后续将进行APP更新, 详见应用指南
- #define IAP_UPGRADE_FLAG 0x41544B38
- #define SRAM_SIZE 48
- typedef void (*iapfun)(void); //定义一个函数类型的参数.
- typedef struct{
- uint8_t cmd_head;
- uint8_t cmd_addr[4];
- uint8_t cmd_buf[2248];
- uint8_t cmd_check;
- }CMD_DATA_STRUCT;
- typedef enum{
- CMD_DATA_IDLE,
- CMD_DATA_ADDR,
- CMD_DATA_BUF,
- CMD_DATA_CHACK,
- CMD_DATA_DONE,
- CMD_DATA_ERR,
- }CMD_DATA_STEP;
- typedef enum{
- CMD_CTR_IDLE,
- CMD_CTR_INIT,
- CMD_CTR_DONE,
- CMD_CTR_ERR,
- CMD_CTR_APP,
- }CMD_CTR_STEP;
- typedef enum{
- CMD_PRO_IDLE,
- CMD_PRO_START,
- CMD_PRO_GET_INIT,
- CMD_PRO_GET_OFFSET_ADDR,
- CMD_PRO_RECV_ING,
- CMD_PRO_WRITE_2KBYTE,
- CMD_PRO_CRC_ERROR,
- CMD_PRO_ADDR_ERROR,
- CMD_PRO_BOOT_DONE,
- }CMD_PRO_STA;
- typedef enum{
- UPDATE_PRE,
- UPDATE_CLEAR_FLAG,
- UPDATE_ING,
- UPDATE_DONE,
- }UPDATE_STATUS_te;
- void IAP_Load_APP(uint32_t appxaddr);
- uint8_t decodeBootLoadData(uint8_t *src, uint16_t len);
- void myFlash_setBootloadFlag(void);
- void myFlash_clearBootloadFlag(void);
- bool myFlash_checkFlag(void);
- #endif
|