#ifndef _AT24C128OPT_H_ #define _AT24C128OPT_H_ #include "../../User/includes.h" #include "../../User/stm32f10x_it.h" #include "AT24C128.h" #include "../globalDef.h" #define GATEWAY_DEVICE_TYPE 0x0101 #define GATEWAY_APP_TYPE 0x03 #define GATEWAY_APP_VERSION 0x01C // #define GATEWAY_UPDATE_FLAG 0x55 #define FRAM_FIRST_PWERUP 0x55AA #define FRAM_TOTAL_SIZE (256*64) /*分配ATC128的空间使用*/ /* 共有16K, 每页64个字节 共有256页 */ #define FRAM_ALLOC_START (0) /*第一页 基本信息 占用1页*/ #define FRAM_FIRST_POWER_ON (FRAM_ALLOC_START) // 是否是第一次上电 2个字节 #define FRAM_VERSION (FRAM_FIRST_POWER_ON+sizeof(uint16_t)) // EEPROM 版本 1个字节 #define FRAM_GATWAY_RESETNUM (FRAM_VERSION+sizeof(uint8_t)) // 复位次数 4个字节 #define FRAM_UPDATE_FLAG (FRAM_GATWAY_RESETNUM+sizeof(uint32_t)) // 升级标志 1个字节 #define FRAM_UPDATE_STATUS (FRAM_UPDATE_FLAG+sizeof(uint8_t)) // 升级状态 1个字节 #define FRAM_UPDATE_1_REVER (FRAM_UPDATE_STATUS+sizeof(uint8_t)) // 预留4个字节 #define FRAM_GATWAY_HARDWARE_MSG (FRAM_UPDATE_1_REVER+sizeof(uint32_t)) // 网关硬件信息 GateHareWareMsg #define FRAM_GATWAY_VER_MSG (FRAM_GATWAY_HARDWARE_MSG+sizeof(GateHareWareMsg)) // 网关的软件版本信息 #define FRAM_NEXT_1_PRE (FRAM_GATWAY_VER_MSG+sizeof(GateVersionMsg)) // 下一个的地址 /*第二页 LORA 的信息*/ #define FRAM_SECOND_PAGE_ADDR (1*64) #define FRAM_LORA_INDEX (FRAM_SECOND_PAGE_ADDR+0) // 2个字节 /*第三页 网关要存储的MQTT的信息 */ #define FRAM_THIRD_PAGE_ADDR (2*64) #define FRAM_MQTT_MSG (FRAM_THIRD_PAGE_ADDR+0) //大小为 MqttIdPort的大小 #define FRAM_NEXT_3_PRE (FRAM_MQTT_MSG + sizeof(MqttIdPort)) // 下一个要写入的地址 /*第四页 网关要存储的采集器的信息 */ /* 第四页 采集器的信息 共16个采集器 每个采集器68个字节 共16*68= 1088个字节, 点用17页 */ /* 对应的结构体为 collect_conf_t*/ #define FRAM_FOUR_PAGE_ADDR (3*64) #define FRAM_CONFIG_MSG (FRAM_FOUR_PAGE_ADDR+0) // 网关的有关采集器的配置信息 GateConfigMsg #define FRAM_COLLECT_MSG (FRAM_CONFIG_MSG+sizeof(GateConfigMsg)) // 采集器的信息 /* 显示屏的信息 从第22页开始存储 */ #define FRAM_TWENTYTWO_PAGE_ADDR (22*64) #define FRAM_COLLECT_XSPINIT (FRAM_TWENTYTWO_PAGE_ADDR+0) // 显示屏的基本信息 #define FRAM_COLLECT_XSPMSG (FRAM_COLLECT_XSPINIT+64) // 显示屏的配置信息 /* 编码器的信息 从第57页开始存储 */ #define FRAM_FIFTYSEVEN_PAGE_ADDR (57*64) #define FRAM_ENCODEINIT (FRAM_FIFTYSEVEN_PAGE_ADDR+0) // 显示屏的基本信息 #define FRAM_ENCODEMSG (FRAM_ENCODEINIT+8) // 显示屏的配置信息 extern void fram_init(void); extern void fram_write_eeprom_powerUpFlag(void); extern uint16_t fram_read_eeprom_powerUpFlag(void); extern void fram_write_eeprom_version(void); extern uint8_t fram_read_eeprom_version(void); extern void fram_write_update_flag(void); extern void fram_init_config_msg(void); extern void fram_write_config_msg(uint16_t flag); extern uint8_t fram_read_config_msg(void); extern void fram_init_gateway_msg(void); extern void fram_init_collect_msg(void); extern void fram_write_collect_msg(void); extern void fram_read_collect_msg(void); extern void fram_init_gateway_resetnum(void); extern void fram_wirte_gateway_resetnum(void); extern void fram_read_gateway_resetnum(void); extern void fram_init_gateway_version(void); extern void fram_read_gateway_version(void); extern void fram_write_gateway_version(void); extern void fram_read_gateway_hardware_msg(void); extern void fram_write_gateway_hardware_msg(void); extern void fram_init_mqtt_msg(void); extern void fram_write_mqtt_msg(void); extern void fram_read_mqtt_msg(void); extern void fram_write_lora_index(uint8_t index); extern uint8_t fram_read_lora_index(void); extern void fram_init_encoder_configMsg(void); extern void fram_write_encoder_configMsg(void); extern void fram_read_encoder_configMsg(void); extern void fram_init_encoder_msg(void); extern void fram_write_encoder_msg(void); extern void fram_read_encoder_msg(void); #endif