1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #ifndef _CHIPFLASH_H_
- #define _CHIPFLASH_H_
- #include "stdint.h"
- //#include "drv_ec800k.h"
- #include "stm32f1xx_hal.h"
- //芯片大小 128kb
- #define CHIPFLASH_SIZE 128
- //#define FLASH_BASE ((uint32_t)0x08000000)
- #if CHIPFLASH_SIZE < 256
- #define SECTOR_SIZE 1024 //byte
- #else
- #define SECTOR_SIZE 2048 //byte
- #endif
- extern uint32_t cur_address;
- //应用程序起始地址
- #define APPLICATION_ADDRESS (uint32_t)0x08008000
- //固件标志位信息地址
- #define SET_ADDRESS (APPLICATION_ADDRESS - SECTOR_SIZE)
- #define SET_RESET_ADDRESS (APPLICATION_ADDRESS - 2*SECTOR_SIZE)
- //设备CONFIG地址
- #define BASE_CONFIG_ADDR (0x0801FC00 - SECTOR_SIZE)
- //CLIENT 信息地址
- #define CLIENT_INFO_ADDR 0x0801FC00
- #define USER_FLASH_END_ADDR 0x0801FFFF
- //有效验证位
- #define AVAILABLE_FLAG (unsigned int)0xA88A
- #pragma pack(push,1) //取消内存对齐
- // typedef struct
- // {
- // unsigned int available_flag;
- // unsigned char _name[10];
- // int _serial_id;
- // int _firmwareVersion;
- // int _setLon;
- // int _setLat;
- // int _setAlt;
- // unsigned char _config_status;
- // unsigned char _base_mode ;
- // } BASE_CONFIG;
- typedef struct
- {
- char mode[4];
- char ip[16];
- char port[16];
- int _init_flag;
- }Cclient_info;
- #pragma pack(pop) //恢复内存对齐
- //extern BASE_CONFIG base_config;
- extern Cclient_info client_info;
- //extern unsigned short ipaFlag;
- uint16_t FLASH_ReadHalfWord(uint32_t address);
- int FLASH_ReadMoreData(uint32_t startAddress, uint32_t *readData, uint32_t countToRead);
- int FLASH_WriteMoreData(uint32_t startAddress, uint32_t *writeData, uint32_t countToWrite);
- int FLASH_INFO_SetFlag(void);
- int FLASH_ErasePage(uint32_t ErasePageAddr, uint32_t PageNumber);
- void erasure_bin_flash(void);
- int FLASH_Write(volatile uint32_t FlashAddress, uint32_t *WriteData, uint32_t DataLength);
- int FLASH_Write_HalfWord(volatile uint32_t FlashAddress, uint16_t *WriteData, uint16_t DataLength);
- #endif
|