xspOptFlash.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #ifndef _XSPOPT_FLASH_H_
  2. #define _XSPOPT_FLASH_H_
  3. #include "gd32f10x.h"
  4. #define START_FLASH_ADDR 0x08060000
  5. #define END_FLAH_ADDR 0x0807FFFF
  6. #define PAGE_SIZE 2048
  7. #define RECORD_FIFO 2048 // 记录的条数一共有2048个
  8. #define RECORD_SIZE 64 // 一条记录的大小为64个字节
  9. typedef struct _flash_opt_{
  10. uint16_t head; // 头地址
  11. uint16_t tail; // 尾地址
  12. bool flag; // 队列标志
  13. uint8_t totalPage; // 总的页数 64页
  14. uint8_t pageRecord; // 一页的总记录数
  15. // uint8_t curPage; // 当前页的索引 从0开始
  16. //uint8_t curRecord; // 当前页的记录数
  17. }__attribute__((packed)) FlahOpt;
  18. typedef struct _temp_read_{
  19. uint32_t recordId;
  20. uint16_t bSend;
  21. }__attribute__((packed))tempread;
  22. typedef union _temp_record_{
  23. tempread da;
  24. uint8_t data[6];
  25. }__attribute__((packed))tempRecord;
  26. extern void init_flash(void);
  27. extern uint8_t read_flash(uint8_t *outda, uint8_t bupdateSend);
  28. extern void write_flash(uint8_t *data);
  29. extern uint8_t Flash_RangeErase(uint32_t FlashAddress, uint32_t Size);
  30. extern void powerup_read_record_from_flash(uint8_t *recordDA);
  31. extern uint8_t xsp_check_point_record(uint32_t recordId,uint8_t *recordDa);
  32. #endif