main.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef MAIN_H
  2. #define MAIN_H
  3. #include "stdint.h"
  4. /*
  5. flash分区设计:
  6. 0x08000000~0x08004FFF bootleader;20KB=10页
  7. 0x08005000~0x08036FFF app;200KB=100页
  8. 0x08037000~0x08068FFF download;200KB=100页
  9. 0x08069000~0x080707FF OTA_EVENT_BLOCK;2KB=1页
  10. 0x08070800~0x0807FFFF 剩余内存;62KB=31页
  11. 0x08080000~0x082FFFFF 剩余内存;2.5MB=640页
  12. */
  13. #define GD32_FLASH_SADDR 0x08000000 //FLASH起始地址
  14. #define GD32_PAGE_SIZE 2048 //FLASH扇区大小
  15. #define GD32_PAGE_NUM 256 //FLASH总扇区个数
  16. #define GD32_B_PAGE_NUM 10 //B区扇区个数
  17. #define GD32_A_PAGE_NUM 100 //A区扇区个数
  18. #define GD32_D_PAGE_NUM 100 //D区扇区个数
  19. #define GD32_A_START_PAGE GD32_B_PAGE_NUM //APP区起始扇区编号
  20. #define GD32_A_SADDR GD32_FLASH_SADDR + GD32_A_START_PAGE * GD32_PAGE_SIZE //A区起始地址
  21. #define GD32_D_SADDR GD32_FLASH_SADDR + (GD32_A_START_PAGE + GD32_A_PAGE_NUM) * GD32_PAGE_SIZE //D区起始地址
  22. #define OTA_INFOCB_SIZE sizeof(OTA_InfoCB) //OTA相关的信息结构体占用的字节长度
  23. //注意4字节对齐
  24. typedef struct{
  25. uint32_t otaflag; //用于记录是否要从w25q32中读取
  26. uint32_t XmodemByte; //用于记录一共写入了多少字节的数据
  27. }OTA_STRUCT;
  28. extern OTA_STRUCT UpDataA;
  29. void task_fwdgt_reload();
  30. #endif