soft_flash.h 824 B

123456789101112131415161718192021222324252627282930
  1. #ifndef _SOFT_FLASH_
  2. #define _SOFT_FLASH_
  3. #include "stm32f4xx_hal.h"
  4. #include "stdbool.h"
  5. #define IAP_FLAG ((uint16_t)0xABCD)
  6. #define ERASE_FAIL ((uint32_t)1)
  7. #define WRITE_FAIL ((uint32_t)2)
  8. #define WRITE_SUCCESS ((uint32_t)3)
  9. /*内存分配
  10. stm32f405rgt6 12个扇区 4个16kb,1个64kb,7个128kb 一页2kb
  11. bootloader: 0 - 32kb 0x8000000 - 0x80008000
  12. 升级标志位: 32kb 0x80008000
  13. 参数信息: 48kb - 64kb 0x800C0000 - 0x80100000
  14. APP: 64kb - 1024kb 0x80100000 - 0x81000000
  15. */
  16. //升级标志位
  17. #define FLASH_UPDATE_ADDR (uint32_t)0x8008000
  18. //APP
  19. #define FLASH_APP_ADDR (uint32_t)0x8020000
  20. uint32_t flash_read_updata_flag(void);
  21. uint32_t Flash_WriteData(uint32_t ,uint16_t *,uint16_t );
  22. uint16_t ReadFlashNBtye(uint32_t, uint16_t *, int32_t );
  23. bool wirte_update_flag(void);
  24. #endif