| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #ifndef _SOFT_FLASH_
- #define _SOFT_FLASH_
- #include "stm32f3xx_hal.h"
- #include "stdbool.h"
- /*内存规划
- 0-24kb bootloader 0----0x8006000
- 24 - 26 flash标志位 0x8006000---- 0x8006400
- 26 -30kb flash 参数 0x8006800 ---- 0x8007800
- 30 - 256 APP 0x8007800 ---0x8040000
- */
- #define UPDATE_FLAG ((uint32_t)0x8006000)
- #define FLASH_PAR_INFO (uint32_t)0x8006800
- typedef enum
- {
- R_Default = 0,
- R_NRST = 1, // 引脚复位
- R_POWER = 2, // 上电掉电复位
- R_SOFT = 3, // 软件复位
- R_IWD = 4, // 独立看门狗复位
- R_WWD = 5, // 窗口看门狗复位
- R_LOPWER = 6, // 低功耗复位
- } Reset;
- typedef struct
- {
- short flag;
- short _cal_vol;
- short _uavtype; // 机型 用于管脚初始化
- short _abnormal_outage_flag; // 异常断电标志
- short _reset_reason; // 重启原因
- uint16_t _SN_L;
- uint16_t _SN_H;
- short _hardVersion_L;
- short _hardVersion_H;
- }_F_PMU_PAR;
- extern _F_PMU_PAR flash_pmu_par;
- typedef struct
- {
- short cal_vol;
- short uavtype; // 机型 用于管脚初始化
- short abnormal_outage_flag; // 异常断电标志
- short reset_reason; // 重启原因
- int SN;
- int hardVersion;
- }_C_PMU_PAR;
- extern _C_PMU_PAR current_pmu_par;
- extern bool write_flash_flag;
- void ReadFlashNBtye(uint32_t ReadAddress, uint8_t *pdata, uint16_t size);
- HAL_StatusTypeDef WriteFlashNBtye(uint32_t ReadAddress, uint8_t *pdata, uint16_t size);
- short check_flash_par_normal(short par, short min_par, short max_par, uint8_t par_or_zero);
- void flash_write_pmu_par(void);
- void flash_read_funcktion(void);
- void parameter_assignment_default(void);
- void parameter_copy(void);
- #endif
|