#pragma once #ifdef __cplusplus extern "C" { #endif /*4表示16KB(小容量ld), 6表示32KB(小容量ld), 8表示64KB(中容量md), B表示128KB(中容量md), C表示256 KB(大容量hd), E表示512 KB(大容量hd), F表示768KB(超大容量xl), G表示1024KB(超大容量xl), */ /* Includes ------------------------------------------------------------------ */ #include #include "bsp/bsp.h" /* Exported constants -------------------------------------------------------- */ /* Exported macro ------------------------------------------------------------ */ #define STM32F103x8 #ifdef STM32F103x8 /* 页0 0x0800 0000-0x0800 07FF 页1 0x0800 0800-0x0800 0FFF 页2 0x0800 1000-0x0800 17FF 页3 0x0800 1800-0x0800 1FFF 页255 0x0807 F800-0x0807 FFFF 系统存储器 0x1FFF F000 -0x1FFF F7FF */ #define ADDR_FLASH_SECTOR(x) ((uint32_t)0x08000000) + ((x) * 0x800) //每个扇区2KB #endif /* Base address of the Flash sectors */ #define ADDR_FLASH_SECTOR_0 ((uint32_t)0x08000000) /* Base address of Sector 0, 16 Kbytes */ #define ADDR_FLASH_SECTOR_1 ((uint32_t)0x08004000) /* Base address of Sector 1, 16 Kbytes */ #define ADDR_FLASH_SECTOR_2 ((uint32_t)0x08008000) /* Base address of Sector 2, 16 Kbytes */ #define ADDR_FLASH_SECTOR_3 ((uint32_t)0x0800C000) /* Base address of Sector 3, 16 Kbytes */ #define ADDR_FLASH_SECTOR_4 ((uint32_t)0x08010000) /* Base address of Sector 4, 64 Kbytes */ #define ADDR_FLASH_SECTOR_5 ((uint32_t)0x08020000) /* Base address of Sector 5, 128 Kbytes */ #define ADDR_FLASH_SECTOR_6 ((uint32_t)0x08040000) /* Base address of Sector 6, 128 Kbytes */ #define ADDR_FLASH_SECTOR_7 ((uint32_t)0x08060000) /* Base address of Sector 7, 128 Kbytes */ #define ADDR_FLASH_SECTOR_8 ((uint32_t)0x08080000) /* Base address of Sector 8, 128 Kbytes */ #define ADDR_FLASH_SECTOR_9 ((uint32_t)0x080A0000) /* Base address of Sector 9, 128 Kbytes */ #define ADDR_FLASH_SECTOR_10 ((uint32_t)0x080C0000) /* Base address of Sector 10, 128 Kbytes */ #define ADDR_FLASH_SECTOR_11 ((uint32_t)0x080E0000) /* Base address of Sector 11, 128 Kbytes */ /* Exported types ------------------------------------------------------------ */ /* Exported functions prototypes --------------------------------------------- */ void BSP_Flash_EraseSector(uint32_t sector); void BSP_Flash_WriteBytes(uint32_t address, const uint8_t *buf, size_t len); void BSP_Flash_ReadBytes(uint32_t address, void *buf, size_t len); #ifdef __cplusplus } #endif