bsp.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. #ifndef __BSP_H__
  2. #define __BSP_H__
  3. #include "gd32f10x.h"
  4. #include "queue.h"
  5. ///////////////////////////////////////////////////////////
  6. extern sequeue_t *uart0_rx_sq;
  7. extern sequeue_t *uart3_rx_sq;
  8. #ifdef TY_0901
  9. #define DEV_TYPE 0x0901
  10. #define SOFTWARE_VERSION_PT 0X09012002
  11. #elif defined TY_0902
  12. #define DEV_TYPE 0x0902
  13. #define SOFTWARE_VERSION_PT 0X09022002
  14. #elif defined TY_0904
  15. #define DEV_TYPE 0x0904
  16. #define SOFTWARE_VERSION_PT 0X09042001
  17. #endif
  18. //读芯片内部信息地址
  19. #define GD32F10X_ID_ADDR 0x1FFFF7E8
  20. #define GD32F30X_ID_ADDR 0x1FFFF7E8
  21. #define GD32F10X_TYPE_ADDR 0xE0042000
  22. #define FRAM_FIRST_POWER_ON 0 // 是否是第一次上电 2个字节
  23. #define FRAM_VERSION (FRAM_FIRST_POWER_ON+sizeof(uint16_t)) // EEPROM 版本 1个字节
  24. #define DEVICE_PUBLIC_INFO_ADDR 0x00 //公共信息存储地址
  25. #define DEVICE_VERSION_INFO_ADDR 0x100 //版本信息存储地址
  26. #define FRAM_MQTT_MSG 0x4C0 //mqtt信息存储地址
  27. //#define IMEI_ADDR 0x40
  28. /* 网关固件信息存储 这个只有在产测时写入,要程序中不再写入*/
  29. typedef struct _GATEWAY_HARDWARE_MSG_{
  30. uint16_t firstPowerUp; // 是否为第一次上电 0x5A5A 说明已经上过电
  31. uint8_t eepromVer; // eeprom 的版本
  32. uint8_t bInit; // 是否初始化过
  33. uint32_t device_sn; // 网关的sn
  34. uint16_t devicType; // 类型
  35. uint16_t factoryMsg; // 厂家信息
  36. uint16_t seqNo ; // 生产批次号
  37. uint32_t data; // 生产日期
  38. uint8_t pcbVersion; // 硬件(PCB)版本
  39. // uint32_t sqare; //备用
  40. }__attribute__((packed)) GateHareWareMsg;
  41. /* 网关的版本信息*/
  42. typedef struct _GATEWAY_VERSION_MSG_{
  43. uint32_t bootloaderVr; //网关的bootloaderVr
  44. uint32_t pt_version; // 产测版本
  45. uint32_t appVr; // appt版本
  46. uint32_t appVr2; // app2的版本
  47. uint32_t appVr3; // app3的版本
  48. }__attribute__((packed)) GateVersionMsg;
  49. typedef struct _GATEWAY_MSG_{
  50. GateHareWareMsg hardwareMsg; //
  51. GateVersionMsg verMsg; // 版本信息
  52. uint32_t gate_resetnum; //复位次数
  53. uint8_t gate_resetType; //最后一次复位类型
  54. uint32_t gate_runTime; // 运行时长
  55. uint8_t Uuid[12];//UUID
  56. uint8_t Imei[15]; //IMEI
  57. uint8_t Iccid1[20];//ICCID1
  58. uint8_t Iccid2[20];//ICCID2
  59. uint8_t Iccid3[20];//ICCID3
  60. uint16_t devicTypeID; // 103 303 这个是读取上来的
  61. }__attribute__((packed)) GateWayMsg;
  62. /* mqtt IP地址 端口号*/
  63. typedef struct _MQTT_IP_PORT_{
  64. uint8_t flag;
  65. char port[6]; // 端口号
  66. char ip[32]; //IP地址
  67. char admin[8]; // 用户名
  68. char password[16]; // 密码
  69. }__attribute__((packed)) MqttIdPort;
  70. typedef struct _FIRMWARE_MSG_{ // 固件信息存储
  71. GateWayMsg gatewayMsg; // 网关的信息
  72. MqttIdPort mqttidport; // mqtt的IP地址和端口
  73. }__attribute__((packed)) FirmwareMsg;
  74. extern FirmwareMsg g_firmwareMsg; // 网关 采集器固件信息存储
  75. void creat_uart_queue(void);
  76. void get_mcu_uuid(void);
  77. void get_mcu_TypeIdcode(void);
  78. void fram_init(void);
  79. void fram_write_eeprom_powerUpFlag(void);
  80. uint16_t fram_read_eeprom_powerUpFlag(void);
  81. void fram_write_eeprom_version(void);
  82. uint8_t fram_read_eeprom_version(void);
  83. void fram_init_mqtt_msg(void);
  84. void fram_write_mqtt_msg(void);
  85. void fram_read_mqtt_msg(void);
  86. void fram_read_hardware_msg(void);
  87. void fram_write_hardware_msg(void);
  88. void fram_init_version(void);
  89. void fram_write_version(void);
  90. void fram_read_version(void);
  91. ///////////////////////////////////////////////////////////
  92. #endif