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.

72 lines
1.4 KiB

2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
  1. #pragma once
  2. #include <stdbool.h>
  3. #include "main.h"
  4. /**
  5. * @brief
  6. * STM32F407VETx 1024k
  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. * 8 0x08080000 128k
  18. * 9 0x080A0000 128k
  19. * 10 0x080C0000 128k
  20. * 11 0x080E0000 128k
  21. *
  22. *
  23. * @WARNING:
  24. * 1. ʹõ70x08060000~0x0807FFFF
  25. * 2. ܳ75%
  26. * 3. rawstartaddһλ0xABCD,һλУ
  27. */
  28. #define FLASH_MASK_VAL 0xDCBA
  29. #define FLASH_START_ADD 0x080C0000 //
  30. #define FLASH_EARSE_SECTOR FLASH_SECTOR_10
  31. /**
  32. * @brief ʼflash
  33. *
  34. * @param rawstartadd flashڴӳĵַ
  35. * @param defaultdata Ĭ
  36. * @param rawsize flashڴӳĵַС
  37. */
  38. void xs_flash_init(uint32_t* rawstartadd, uint32_t rawsize);
  39. /**
  40. * @brief жǷǵһγʼflash
  41. *
  42. * @return true
  43. * @return false
  44. */
  45. bool xs_flash_is_first_run(void);
  46. /**
  47. * @brief ˢڴflash
  48. *
  49. * @return true
  50. * @return false
  51. */
  52. bool xs_flash_flush(void);
  53. /**
  54. * @brief ָ
  55. *
  56. * @return true
  57. * @return false
  58. */
  59. bool xs_flash_factory_reset(void);
  60. /**
  61. * @brief
  62. *
  63. * @param defaultdata
  64. * @return true
  65. * @return false
  66. */
  67. bool xs_flash_set_default_data(uint32_t* defaultdata);
  68. bool xs_flash_check(void);