123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- // #ifndef __IAP_H
- // #define __IAP_H
- // #include "global.h"
- // #include <stdint.h>
- // #include <stm32f4xx.h>
- // #define IAP_FLASH_UP_LEN 0x8080000
- // #define IAP_FLASH_UP_ADDR 0X8080004
- // #define IAP_RUN_START_SECTOR 0x8010000
- // #define IAP_DOWN_BEGIN_ADDR 0x8080000 // iap代码下载起始地址
- // #define IAP_BACKUP_SECTOR1 10
- // #define IAP_BACKUP_SECTOR2 11
- // #define IAP_PC_BEGINE_FRAME 0x18CFD0EF
- // #define IAP_PC_DATA_FRAME 0x18CED0EF
- // #define IAP_MCU_BIGEN_FRAME 0x18CFEFD0
- // #define IAP_MCU_DATA_FRAME 0x18CEEFD0
- // #define UPGRADE_FLASH_DATA_SIZE 4 // 升级参数数组元素个数
- // #define UPGRADE_APP_DATA_SIZE 4 // 升级参数数组元素个数
- // #define UPGRADE_BUFF_DATA_SIZE (UPGRADE_FLASH_DATA_SIZE + UPGRADE_APP_DATA_SIZE) // 升级参数数组元素个数
- // #define IAP_CMD_VERSION 0x71 // 查询版本号
- // #define IAP_CMD_INFO 0x72 // 包信息
- // #define IAP_CMD_ERASE 0x73 // 擦除命令
- // #define IAP_CMD_DATA 0x80 // 数据帧 IAP_CMD_DATA |帧号
- // #define IAP_CMD_CRC 0x74 // 传输结果校验
- // #define IAP_CMD_OVER 0x76 // 执行跳转
- // typedef union
- // {
- // uint16_t u8_buf[8];
- // uint16_t u16_buf[4];
- // } u16_u8;
- // typedef union
- // {
- // uint16_t u8_save[200];
- // uint16_t u16_save[100];
- // } u16save_u8save;
- // typedef struct
- // {
- // uint16_t total_packages;
- // uint16_t current_packages;
- // uint16_t count_packages;
- // uint16_t recv_len;
- // uint16_t crc16;
- // uint16_t firmware_crc16;
- // uint16_t firmware_ver;
- // uint16_t total_bytes;
- // uint16_t count_bytes;
- // u16_u8 flash_data;
- // u16_u8 recheck_data;
- // u16save_u8save save_data;
- // } iap_type;
- // typedef union
- // {
- // struct
- // {
- // uint16_t sign; // 首地址 buf[0]
- // uint16_t crc16; // 中地址 buf[1]
- // uint32_t moving_size; // 高地址 buf[2] buf[3]
- // } param;
- // uint16_t infor_buf[UPGRADE_FLASH_DATA_SIZE];
- // } upgrade_param; // 升级参数使用
- // // FLASH 扇区的起始地址
- // #define ADDR_FLASH_SECTOR_0 ((u32)0x08000000) // 扇区0起始地址, 16 Kbytes
- // #define ADDR_FLASH_SECTOR_1 ((u32)0x08004000) // 扇区1起始地址, 16 Kbytes
- // #define ADDR_FLASH_SECTOR_2 ((u32)0x08008000) // 扇区2起始地址, 16 Kbytes
- // #define ADDR_FLASH_SECTOR_3 ((u32)0x0800C000) // 扇区3起始地址, 16 Kbytes
- // #define ADDR_FLASH_SECTOR_4 ((u32)0x08010000) // 扇区4起始地址, 64 Kbytes
- // #define ADDR_FLASH_SECTOR_5 ((u32)0x08020000) // 扇区5起始地址, 128 Kbytes
- // #define ADDR_FLASH_SECTOR_6 ((u32)0x08040000) // 扇区6起始地址, 128 Kbytes
- // #define ADDR_FLASH_SECTOR_7 ((u32)0x08060000) // 扇区7起始地址, 128 Kbytes
- // #define ADDR_FLASH_SECTOR_8 ((u32)0x08080000) // 扇区8起始地址, 128 Kbytes
- // #define ADDR_FLASH_SECTOR_9 ((u32)0x080A0000) // 扇区9起始地址, 128 Kbytes
- // #define ADDR_FLASH_SECTOR_10 ((u32)0x080C0000) // 扇区10起始地址,128 Kbytes
- // #define ADDR_FLASH_SECTOR_11 ((u32)0x080E0000) // 扇区11起始地址,128 Kbytes
- // #define ADDR_FLASH_SECTOR_END ((u32)0x080FFFFF)
- // typedef enum
- // {
- // DISCONNECT = 0,
- // HANDSHAKE,
- // PROGRAMING,
- // PROGRAMFinish,
- // } workmode;
- // typedef union
- // {
- // u8 value[4];
- // u32 cmd;
- // } IAP_Union;
- // void iap_process(CanData_TypeDef *rx_msg);
- // u8 flash_up_is_ok(void);
- // void iap_from_flash(void);
- // #endif
|