| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /*
- * @Description:
- * @Version: 2.0
- * @Author: Seven
- * @Date: 2022-11-22 10:52:19
- * @LastEditors: Seven
- * @LastEditTime: 2022-12-05 13:54:37
- */
- #ifndef __OTA_DISPLAY_H__
- #define __OTA_DISPLAY_H__
- #include "stm32f10x.h"
- #include "tools.h"
- extern uint32_t XSP_OTA_VER;
- #define OTA_XSP_PACK_LEN 64 //显示屏升级时单包最大长度
- #define XSP_BOOT_ADDR 0x08000000 //存放 bootloader 的区域起始地址
- #define XSP_BOOT_SIZE 0x4000 //存放 bootloader 的区域长度
- #define XSP_APPL_ADDR 0x08004000 //用户程序起始地址
- #define XSP_APPL_SIZE 0xE000 //用户程序长度
- #define XSP_APPH_ADDR 0x08012000 //用户程序起始地址
- #define XSP_APPH_SIZE 0xE000 //用户程序长度
- #define XSP_CFG_ADDR 0x08020000 //用户配置区域起始地址
- #define XSP_CFG_SIZE 0x1000 //用户配置区域长度
- #define XSP_USER_DATA_ADDR 0x08021000 //用户数据区域起始地址
- #define XSP_USER_DATA_SIZE 0x1F000 //用户数据区域长度
- extern uint32_t XSPL_addr,XSPL_len,XSPA_len;
- extern uint16_t XSP_crc;
- extern uint32_t XSPL_APP_Addr,XSPL_APP_Len,XSPL_APP_Crc,XSPH_APP_Addr,XSPH_APP_Len,XSPH_APP_Crc;
- extern uint8_t XSP_update_state[10];
- #define XSP_OTA_TOTAL_TIME (5*60*1000)//5MIN
- //升级包信息
- typedef struct _ota_xsp_pack_info
- {
- uint8_t protver; //协议版本
- uint32_t app3_startaddr; //app3内程序的起始地址
- uint32_t startaddr; //显示屏开始地址
- uint32_t update_ver; //升级包版本
- uint32_t total_bytes; //总字节
- uint16_t single_byte; //单包最大字节
- uint16_t total_pkgs; //总包数
- uint16_t total_crc; //总校验
- uint16_t sub_pkg_id; //当前包编号
- // timeout_t tt_uart_timeout; //串口超时定时器
- timeout_t tt_total; //总定时器
- }ota_xsp_pack_info_t;
- extern ota_xsp_pack_info_t ota_xsp_pack_info;
- //单个显示屏信息
- typedef struct _single_xsp_info
- {
- uint32_t xsp_type; //显示屏设备类型
- uint32_t xsp_sn; //显示屏sn
- }__attribute__((packed)) single_xsp_info_t;
- //单个采集器的信息
- typedef struct _single_coll_info
- {
- uint32_t coll_type; //采集器设备类型
- uint32_t coll_sn; //采集器sn
- uint32_t xsp_num; //显示屏个数
- single_xsp_info_t xsp_info[8]; //显示屏sn
- }__attribute__((packed)) single_coll_info_t;
- //显示屏升级信息
- typedef struct _xsp_ota_info
- {
- uint32_t coll_num; //采集器个数
- single_coll_info_t coll_xsp[16]; //采集器信息
- }xsp_ota_info_t;
- void xsp_ota_start(void);
- void xsp_ota_over(void);
- void ota_xsp_info_read_test(void);
- uint8_t check_route_xsp_ota(void);
- uint16_t xsp_update_crc(uint32_t start, uint32_t len);
- void ota_xsp_init(void);
- void ota_xsp_send(void);
- void get_xsp_ota_info(uint32_t addr, uint32_t len);
- uint8_t rcv_iap_0x01_handle(void *data);
- void lora_xsp_ota_updatestate_resp(uint8_t updatestate);
- void xsp_update_handle(void);
- #endif
|