iap.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. // #ifndef __IAP_H
  2. // #define __IAP_H
  3. // #include "global.h"
  4. // #include <stdint.h>
  5. // #include <stm32f4xx.h>
  6. // #define IAP_FLASH_UP_LEN 0x8080000
  7. // #define IAP_FLASH_UP_ADDR 0X8080004
  8. // #define IAP_RUN_START_SECTOR 0x8010000
  9. // #define IAP_DOWN_BEGIN_ADDR 0x8080000 // iap代码下载起始地址
  10. // #define IAP_BACKUP_SECTOR1 10
  11. // #define IAP_BACKUP_SECTOR2 11
  12. // #define IAP_PC_BEGINE_FRAME 0x18CFD0EF
  13. // #define IAP_PC_DATA_FRAME 0x18CED0EF
  14. // #define IAP_MCU_BIGEN_FRAME 0x18CFEFD0
  15. // #define IAP_MCU_DATA_FRAME 0x18CEEFD0
  16. // #define UPGRADE_FLASH_DATA_SIZE 4 // 升级参数数组元素个数
  17. // #define UPGRADE_APP_DATA_SIZE 4 // 升级参数数组元素个数
  18. // #define UPGRADE_BUFF_DATA_SIZE (UPGRADE_FLASH_DATA_SIZE + UPGRADE_APP_DATA_SIZE) // 升级参数数组元素个数
  19. // #define IAP_CMD_VERSION 0x71 // 查询版本号
  20. // #define IAP_CMD_INFO 0x72 // 包信息
  21. // #define IAP_CMD_ERASE 0x73 // 擦除命令
  22. // #define IAP_CMD_DATA 0x80 // 数据帧 IAP_CMD_DATA |帧号
  23. // #define IAP_CMD_CRC 0x74 // 传输结果校验
  24. // #define IAP_CMD_OVER 0x76 // 执行跳转
  25. // typedef union
  26. // {
  27. // uint16_t u8_buf[8];
  28. // uint16_t u16_buf[4];
  29. // } u16_u8;
  30. // typedef union
  31. // {
  32. // uint16_t u8_save[200];
  33. // uint16_t u16_save[100];
  34. // } u16save_u8save;
  35. // typedef struct
  36. // {
  37. // uint16_t total_packages;
  38. // uint16_t current_packages;
  39. // uint16_t count_packages;
  40. // uint16_t recv_len;
  41. // uint16_t crc16;
  42. // uint16_t firmware_crc16;
  43. // uint16_t firmware_ver;
  44. // uint16_t total_bytes;
  45. // uint16_t count_bytes;
  46. // u16_u8 flash_data;
  47. // u16_u8 recheck_data;
  48. // u16save_u8save save_data;
  49. // } iap_type;
  50. // typedef union
  51. // {
  52. // struct
  53. // {
  54. // uint16_t sign; // 首地址 buf[0]
  55. // uint16_t crc16; // 中地址 buf[1]
  56. // uint32_t moving_size; // 高地址 buf[2] buf[3]
  57. // } param;
  58. // uint16_t infor_buf[UPGRADE_FLASH_DATA_SIZE];
  59. // } upgrade_param; // 升级参数使用
  60. // // FLASH 扇区的起始地址
  61. // #define ADDR_FLASH_SECTOR_0 ((u32)0x08000000) // 扇区0起始地址, 16 Kbytes
  62. // #define ADDR_FLASH_SECTOR_1 ((u32)0x08004000) // 扇区1起始地址, 16 Kbytes
  63. // #define ADDR_FLASH_SECTOR_2 ((u32)0x08008000) // 扇区2起始地址, 16 Kbytes
  64. // #define ADDR_FLASH_SECTOR_3 ((u32)0x0800C000) // 扇区3起始地址, 16 Kbytes
  65. // #define ADDR_FLASH_SECTOR_4 ((u32)0x08010000) // 扇区4起始地址, 64 Kbytes
  66. // #define ADDR_FLASH_SECTOR_5 ((u32)0x08020000) // 扇区5起始地址, 128 Kbytes
  67. // #define ADDR_FLASH_SECTOR_6 ((u32)0x08040000) // 扇区6起始地址, 128 Kbytes
  68. // #define ADDR_FLASH_SECTOR_7 ((u32)0x08060000) // 扇区7起始地址, 128 Kbytes
  69. // #define ADDR_FLASH_SECTOR_8 ((u32)0x08080000) // 扇区8起始地址, 128 Kbytes
  70. // #define ADDR_FLASH_SECTOR_9 ((u32)0x080A0000) // 扇区9起始地址, 128 Kbytes
  71. // #define ADDR_FLASH_SECTOR_10 ((u32)0x080C0000) // 扇区10起始地址,128 Kbytes
  72. // #define ADDR_FLASH_SECTOR_11 ((u32)0x080E0000) // 扇区11起始地址,128 Kbytes
  73. // #define ADDR_FLASH_SECTOR_END ((u32)0x080FFFFF)
  74. // typedef enum
  75. // {
  76. // DISCONNECT = 0,
  77. // HANDSHAKE,
  78. // PROGRAMING,
  79. // PROGRAMFinish,
  80. // } workmode;
  81. // typedef union
  82. // {
  83. // u8 value[4];
  84. // u32 cmd;
  85. // } IAP_Union;
  86. // void iap_process(CanData_TypeDef *rx_msg);
  87. // u8 flash_up_is_ok(void);
  88. // void iap_from_flash(void);
  89. // #endif