| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #ifndef _SOFT_FLASH_
- #define _SOFT_FLASH_
- #include "stdbool.h"
- #include "stm32f4xx_hal.h"
- /*内存分配
- stm32f405rgt6 12个扇区 4个16kb,1个64kb,7个128kb 一页2kb
- bootloader: 0 - 32kb 0x8000000 - 0x80008000
- 升级标志位: 32kb 0x80008000
- 参数信息: 48kb - 64kb 0x800C0000 - 0x80100000
- APP: 64kb - 1024kb 0x80100000 - 0x81000000 128kb 地址 0x8020000 //给EFT测试 更改3处
- */
- //升级标志位
- #define FLASH_UPDATE_ADDR (uint32_t)0x8008000
- //参数信息
- #define FLASH_PAR_ADDR (uint32_t)0x800C000
- //APP
- #define FLASH_APP_ADDR (uint32_t)0x8020000
- //STM32F405 芯片ID地址
- #define FLASH_ID_ADDR (uint32_t)0x1FFF7A10
- #define PAR_FALG 0xABCD
- extern bool write_flash_flag;
- #pragma pack(1)
- typedef struct
- {
- uint16_t flash_flag;
- int pmu_serial; //PMU序列号
- int uavtype; //机型
- int abnormal_outage_flag; //异常断电标志
- int voltage; //电压校准
- int chip_passid; //芯片ID加密码
- }flash_data;
- #pragma pack()
- extern flash_data stor_par;
- extern flash_data cur_par;
- extern bool Check_Chip_Verified;
- void ReadFlashNBtye(uint32_t ReadAddress, uint8_t *pdata, uint16_t size);
- HAL_StatusTypeDef WriteFlashNBtye(uint32_t ReadAddress, uint8_t *pdata, uint16_t size);
- void write_flash_function(void);
- void flash_init(void);
- int GetSectorFromAddress(uint32_t address);
- #endif
|