| 123456789101112131415161718192021222324252627282930313233343536 |
- #ifndef _XSPOPT_FLASH_H_
- #define _XSPOPT_FLASH_H_
- #include "gd32f10x.h"
- #define START_FLASH_ADDR 0x08060000
- #define END_FLAH_ADDR 0x0807FFFF
- #define PAGE_SIZE 2048
- #define RECORD_FIFO 2048 // 记录的条数一共有2048个
- #define RECORD_SIZE 64 // 一条记录的大小为64个字节
- typedef struct _flash_opt_{
- uint16_t head; // 头地址
- uint16_t tail; // 尾地址
- bool flag; // 队列标志
- uint8_t totalPage; // 总的页数 64页
- uint8_t pageRecord; // 一页的总记录数
- // uint8_t curPage; // 当前页的索引 从0开始
- //uint8_t curRecord; // 当前页的记录数
- }__attribute__((packed)) FlahOpt;
- typedef struct _temp_read_{
- uint32_t recordId;
- uint16_t bSend;
- }__attribute__((packed))tempread;
- typedef union _temp_record_{
- tempread da;
- uint8_t data[6];
- }__attribute__((packed))tempRecord;
- extern void init_flash(void);
- extern uint8_t read_flash(uint8_t *outda, uint8_t bupdateSend);
- extern void write_flash(uint8_t *data);
- extern uint8_t Flash_RangeErase(uint32_t FlashAddress, uint32_t Size);
- extern void powerup_read_record_from_flash(uint8_t *recordDA);
- extern uint8_t xsp_check_point_record(uint32_t recordId,uint8_t *recordDa);
- #endif
|