You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.1 KiB

2 years ago
  1. #pragma once
  2. #include <stdbool.h>
  3. #include "main.h"
  4. /**
  5. * @brief
  6. * STM32F407VETx 512k
  7. *
  8. * index startAdd size
  9. * 0 0x08000000 16k
  10. * 1 0x08004000 16k
  11. * 2 0x08008000 16k
  12. * 3 0x0800C000 16k
  13. * 4 0x08010000 64k
  14. * 5 0x08020000 128k
  15. * 6 0x08040000 128k
  16. * 7 0x08060000 128k
  17. *
  18. *
  19. * @WARNING:
  20. * 1. ʹõ70x08060000~0x0807FFFF
  21. * 2. ܳ75%
  22. * 3. rawstartaddһλ0xABCD,һλУ
  23. */
  24. #define FLASH_MASK_VAL 0xABCD
  25. #define FLASH_START_ADD 0x08078000 //
  26. #define FLASH_EARSE_SECTOR FLASH_SECTOR_7
  27. /**
  28. * @brief ʼflash
  29. *
  30. * @param rawstartadd flashڴӳĵַ
  31. * @param defaultdata Ĭ
  32. * @param rawsize flashڴӳĵַС
  33. */
  34. void xs_flash_init(uint32_t* rawstartadd, uint32_t* defaultdata, uint32_t rawsize);
  35. /**
  36. * @brief жǷǵһγʼflash
  37. *
  38. * @return true
  39. * @return false
  40. */
  41. bool xs_flash_is_first_run(void);
  42. /**
  43. * @brief ˢڴflash
  44. *
  45. * @return true
  46. * @return false
  47. */
  48. bool xs_flash_flush(void);
  49. /**
  50. * @brief ָ
  51. *
  52. * @return true
  53. * @return false
  54. */
  55. bool xs_flash_factory_reset(void);