fmc.h 793 B

12345678910111213141516171819202122232425262728293031
  1. #ifndef FMC_H
  2. #define FMC_H
  3. #include <stdint.h>
  4. #define FMC_PAGE_SIZE ((uint16_t)0x400U)
  5. #define FMC_WRITE_LAST_START_ADDR ((uint32_t)0x0800FC00U)
  6. #define STORAGE_INFO 0x1FFFF7E0
  7. #define UNIQUE_ID 0x1FFFF7AC
  8. #define UNIQUE_ID_0_31 0x1FFFF7AC
  9. #define UNIQUE_ID_32_63 0x1FFFF7B0
  10. #define UNIQUE_ID_64_95 0x1FFFF7B4
  11. #define FMC_DATA_VAILD_FLAG 0xFA
  12. typedef struct _fmc_data_t
  13. {
  14. uint8_t data_valid_flag;
  15. uint8_t cdata;
  16. } fmc_data_t;
  17. void fmc_erase_page(uint8_t page);
  18. void fmc_program(uint8_t page, uint32_t *data, uint32_t data_len);
  19. int8_t fmc_load(uint8_t page, uint8_t *data, uint32_t len);
  20. int8_t fmc_check(fmc_data_t *d, uint32_t len);
  21. uint8_t fmc_gen_cdata(uint8_t *d, uint32_t len);
  22. int8_t fmc_check_cdata(uint8_t *d, uint32_t len);
  23. #endif