| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- #ifndef __MEMORY_H__
- #define __MEMORY_H__
- #include "stm32f10x.h"
- #define DEVICE_ALRD 0x01 //设备信息是否写入eeprom标志
- //读芯片内部信息地址
- #define GD32F10X_ID_ADDR 0x1FFFF7E8
- #define GD32F30X_ID_ADDR 0x1FFFF7E8
- #define GD32F10X_TYPE_ADDR 0xE0042000
- //eeprom存储的共有数据
- typedef enum
- {
-
- /*第一次上电(0X55)*/
- EECFG_FIRST_INIT0 = 0x0000,
- /*第一次上电(0XAA)*/
- EECFG_FIRST_INIT1 = 0x0001,
- /*EEPROM版本*/
- EECFG_VER = 0x0002,
- /*复位次数*/
- EECFG_RST_TIME0 = 0x0003,
- /*复位次数*/
- EECFG_RST_TIME1 = 0x0004,
- /*复位次数*/
- EECFG_RST_TIME2 = 0x0005,
- /*复位次数*/
- EECFG_RST_TIME3 = 0x0006,
- /*升级标志(本体)*/
- EECFG_UPDATE_FLAG0 = 0x0007,
- /*升级标志(掩码)*/
- EECFG_UPDATE_FLAG1 = 0x0008,
- /*升级状态(本体)*/
- EECFG_UPDATE_STATE0 = 0x0009,
- /*升级状态(掩码)*/
- EECFG_UPDATE_STATE1 = 0x000A,
- /*预留*/
- EECFG_RESERVE0 = 0x000B,
- /*预留*/
- EECFG_RESERVE1 = 0x000C,
- /*出厂信息是否被初始化过*/
- EECFG_INFO_ALRD_INIT = 0x000D,
- /*设备SN*/
- EECFG_SN0 = 0x000E,
- /*设备SN*/
- EECFG_SN1 = 0x000F,
- /*设备SN*/
- EECFG_SN2 = 0x0010,
- /*设备SN*/
- EECFG_SN3 = 0x0011,
- /*设备类型*/
- EECFG_DEV_TYPE0 = 0x0012,
- /*设备类型*/
- EECFG_DEV_TYPE1 = 0x0013,
- /*生产厂家*/
- EECFG_MFRS0 = 0x0014,
- /*生产厂家*/
- EECFG_MFRS1 = 0x0015,
- /*批次号*/
- EECFG_BN0 = 0x0016,
- /*批次号*/
- EECFG_BN1 = 0x0017,
- /*生产日期*/
- EECFG_PD0 = 0x0018,
- /*生产日期*/
- EECFG_PD1 = 0x0019,
- /*生产日期*/
- EECFG_PD2 = 0x001A,
- /*生产日期*/
- EECFG_PD3 = 0x001B,
- /*PCB版本*/
- EECFG_PCB_VER = 0x001C,
- /*预留*/
- EECFG_RESERVED0 = 0x001D,
- /*预留*/
- EECFG_RESERVED1 = 0x001E,
- /*预留*/
- EECFG_RESERVED2 = 0x001F,
- /*预留*/
- EECFG_RESERVED3 = 0x0020,
- /*Bootloader版本*/
- EECFG_BT_VER0 = 0x0021,
- /*Bootloader版本*/
- EECFG_BT_VER1 = 0x0022,
- /*Bootloader版本*/
- EECFG_BT_VER2 = 0x0023,
- /*Bootloader版本*/
- EECFG_BT_VER3 = 0x0024,
- /*产测版本*/
- EECFG_PT_VER0 = 0x0025,
- /*产测版本*/
- EECFG_PT_VER1 = 0x0026,
- /*产测版本*/
- EECFG_PT_VER2 = 0x0027,
- /*产测版本*/
- EECFG_PT_VER3 = 0x0028,
- /*APP1版本*/
- EECFG_APP1_VER0 = 0x0029,
- /*APP1版本*/
- EECFG_APP1_VER1 = 0x002A,
- /*APP1版本*/
- EECFG_APP1_VER2 = 0x002B,
- /*APP1版本*/
- EECFG_APP1_VER3 = 0x002C,
- /*APP2版本*/
- EECFG_APP2_VER0 = 0x002D,
- /*APP2版本*/
- EECFG_APP2_VER1 = 0x002E,
- /*APP2版本*/
- EECFG_APP2_VER2 = 0x002F,
- /*APP2版本*/
- EECFG_APP2_VER3 = 0x0030,
- /*APP3版本*/
- EECFG_APP3_VER0 = 0x0031,
- /*APP3版本*/
- EECFG_APP3_VER1 = 0x0032,
- /*APP3版本*/
- EECFG_APP3_VER2 = 0x0033,
- /*APP3版本*/
- EECFG_APP3_VER3 = 0x0034,
- /*EEPROM存储数据字节数*/
- EECFG_NUM = 0x0035
- }eeprom_common_data ;
- //eeprom开头存储信息
- typedef struct _eeprom_first_info
- {
- uint16_t eeprom_first_init_flag;
- uint8_t eeprom_ver;
- uint32_t reset_total_num;
- uint16_t updata_flag;
- uint16_t updata_state;
- }__attribute__((packed)) eeprom_first_info_t;
- extern eeprom_first_info_t eeprom_first_info;
- //设备版本信息
- typedef struct _device_version_info
- {
- uint32_t boot_ver;
- uint32_t PT_ver;
- uint32_t APP1_ver;
- uint32_t APP2_ver;
- uint32_t APP3_ver;
- } device_version_info_t;
- extern device_version_info_t device_version_info;
- //升级状态
- typedef struct _updata_state
- {
- uint16_t updata_flag;
- uint16_t backoff_begin;
- uint16_t backoff_over;
- }updata_state_t;
- extern updata_state_t updata_state_info;
- extern uint32_t software_version_bootloader,reset_total_cnt,last_reset_flag;
- extern uint8_t Encrypt;
- void eeprom_init_handle(void);
- void device_info_init_handle(void);
- void device_fixed_info_init(void);
- void device_info_update(void);
- void device_info_get(void);
- void eeprom_write_data(uint32_t WriteAddr,uint8_t *pBuffer,uint16_t NumToWrite);
- void power_on_read(void);
- uint16_t set_updata_state(uint16_t data);
- #endif
|