2026-03-20 21:16:58 +08:00
|
|
|
|
#ifndef __LHL_FLASH_H__
|
|
|
|
|
|
#define __LHL_FLASH_H__
|
|
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
//FLASH<53><48>ַ
|
|
|
|
|
|
#define FLASH_PAGE_SIZE_MAX FLASH_PAGE_SIZE //ÿҳ<C3BF><D2B3><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD> 4096
|
|
|
|
|
|
#define FLASH_PAGE_MAXZISE 30 //<2F><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3> 120K <20><>30ҳ(0-29ҳ)
|
|
|
|
|
|
#define FLASH_PAGE_BYTE_SIZE FLASH_PAGE_SIZE_MAX //<2F><>ǰ<EFBFBD><C7B0>Ҫһҳ<D2BB><D2B3>С,ʵ<>ʾ<EFBFBD><CABE><EFBFBD>һ<EFBFBD><D2BB>ҳbyte
|
|
|
|
|
|
|
|
|
|
|
|
#define CORRECT_PAGE_NUM 4 //У<D0A3><D7BC><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC>ҳ<EFBFBD><D2B3>
|
|
|
|
|
|
#define CORRECT_DATA_PAGE (FLASH_PAGE_MAXZISE - CORRECT_PAGE_NUM-1)//У<D0A3><D7BC><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>ʼҳ
|
|
|
|
|
|
//FLASH<53>洢ҳ<E6B4A2><D2B3>
|
|
|
|
|
|
#define APP_PAGE 0 //<2F><><EFBFBD><EFBFBD>ҳ Ĭ<><C4AC>ֵ,<2C><>0X8000000<30><30>ʼ
|
|
|
|
|
|
#define VENDER_PARAMS_PAGE 16 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ
|
|
|
|
|
|
#define USER_PARAMS_PAGE 17 //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>ҳ
|
|
|
|
|
|
#define USER_DCOEF_TAG_PAGE 18 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩҳ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//FLASHʵ<48>ʵ<EFBFBD>ַ0x08000000<30><30>ʼ
|
|
|
|
|
|
#define VENDER_PARAMS_ADDR (FLASH_START_ADDRESS + (FLASH_PAGE_SIZE*VENDER_PARAMS_PAGE))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢λ<E6B4A2><CEBB>
|
|
|
|
|
|
#define USER_PARAMS_ADDR (FLASH_START_ADDRESS + (FLASH_PAGE_SIZE*USER_PARAMS_PAGE)) //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洢λ<E6B4A2><CEBB>
|
|
|
|
|
|
#define USER_DCOEF_TAG_ADDR (FLASH_START_ADDRESS + (FLASH_PAGE_SIZE*USER_DCOEF_TAG_PAGE))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩҳ
|
|
|
|
|
|
#define CORRECT_DATA_ADDR (FLASH_START_ADDRESS + (FLASH_PAGE_SIZE*CORRECT_DATA_PAGE)) //У<D0A3><D7BC><EFBFBD><EFBFBD><EFBFBD>洢λ<E6B4A2><CEBB>
|
|
|
|
|
|
|
|
|
|
|
|
#define CORRECT_DATA_SIZE (CORRECT_PAGE_NUM* FLASH_PAGE_SIZE) //У<D0A3><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CORRECT_DATA_MID (CORRECT_DATA_SIZE / 2) //У<D0A3><D7BC><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
|
|
|
|
|
|
#define CALIB_INDEX_INTEERVAL (CALIB_REAL_SIZE / 3) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CALIB_MAX_INDEX (CALIB_SIZE / 3 - 2*CALIB_COMP_FAC) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CALIB_MIN_INDEX (CALIB_COMP_FAC*3) //3<><33>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
#define CALIB_REAL_SIZE (CORRECT_PAGE_NUM*FLASH_PAGE_SIZE) //ʵ<><CAB5><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>С
|
|
|
|
|
|
#define CALIB_SIZE CALIB_REAL_SIZE*CALIB_COMP_FAC //<2F><><EFBFBD><EFBFBD><EFBFBD>ܳ<EFBFBD>
|
|
|
|
|
|
#define CALIB_COMP_FAC 6 //ѹ<><D1B9><EFBFBD><EFBFBD>,֧<><D6A7>2,4,6,8<><38>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>8192,16384,24576,32768
|
|
|
|
|
|
#define CALIB_WIDTH 64 //<2F>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD>64<36>ֽ<EFBFBD> <20><><EFBFBD><EFBFBD>Flashÿ<68><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>4<EFBFBD>ֽڣ<D6BD><DAA3>Ը<EFBFBD>ֵӦ<D6B5><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CALIB_DEPTH (CALIB_SIZE/CALIB_WIDTH) //768 //֡<><D6A1>
|
|
|
|
|
|
#define CALIB_DATA_LEN (CALIB_DEPTH/CALIB_COMP_FAC) //128 //ѹ<><D1B9><EFBFBD><EFBFBD>֡<EFBFBD><D6A1>,ʵ<>ʴ<EFBFBD><CAB4><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define CORRECT2_PAGE_NUM 4 //У<D0A3><D7BC><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC>ҳ<EFBFBD><D2B3>
|
|
|
|
|
|
#define CORRECT2_DATA_ADDR CORRECT_DATA_ADDR-(5*FLASH_PAGE_SIZE)//У<D0A3><D7BC><EFBFBD><EFBFBD><EFBFBD>洢λ<E6B4A2><CEBB>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
extern u8 munWriteParams;//д<>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ <20><><EFBFBD>еIJ<D0B5><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>
|
|
|
|
|
|
//д<>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|
|
|
|
|
#define WP_NOT 0x00 //<2F><>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define WP_USER 0x01 //д<>û<EFBFBD><C3BB>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>־
|
|
|
|
|
|
#define WP_VENDER 0x02 //д<><D0B4><EFBFBD>ҼĴ<D2BC><C4B4><EFBFBD><EFBFBD><EFBFBD>־
|
|
|
|
|
|
#define WP_DEF 0x03 //<2F>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
|
|
|
|
|
|
#define WP_DCOEF_TAG 0x04 //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>tag
|
|
|
|
|
|
#define WP_CORRECT 0x05 //дУ<D0A3><D7BC>־
|
|
|
|
|
|
extern u8 mucSaveParams;//Flashд״̬<D7B4><CCAC>־λ <20><><EFBFBD>еIJ<D0B5><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>
|
|
|
|
|
|
//Flash״̬<D7B4><CCAC>־
|
|
|
|
|
|
#define PARAMS_COMPL 0x00 //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define PARAMS_READY 0xAA //<><D7BC>д<EFBFBD><D0B4>
|
|
|
|
|
|
#define PARAMS_READY_AX 0xBB //<><D7BC>д<EFBFBD><D0B4>
|
|
|
|
|
|
#define PARAMS_ING 0x55 //д<><D0B4><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
extern volatile u8 * const USER_PARAMS ;
|
|
|
|
|
|
extern volatile u8 * const VENDER_PARAMS ;
|
|
|
|
|
|
extern volatile u8 * const CORRECT_DATA ;
|
|
|
|
|
|
extern volatile u8 * const CORRECT2_DATA ;
|
|
|
|
|
|
|
|
|
|
|
|
void FLASH_Erase_Data_Page(u8 UserPage) ;//__attribute__((noinline));// <20><><EFBFBD>ӽ<EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void FLASH_Write_Data_Page(u8 UserPage, void *pBuffer, u32 byteSize) ;//__attribute__((noinline));// <20><><EFBFBD>ӽ<EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void ReadParameterFromFlash( void *value,u16 offset, u8 size ,u8 UserPage );
|
|
|
|
|
|
|
|
|
|
|
|
void FLASH_Write_Calib_Data_ToFlash(u16 FrameX, u8 *pBuffer);
|
|
|
|
|
|
void FLASH_Write_Calib2_Data_ToFlash(u16 FrameN, u8 *pBuffer );
|
|
|
|
|
|
void ReadCalibDataFromFlash(u32 frameN , u8 *data ,u16 size ) ;//__attribute__((noinline));// <20><><EFBFBD>ӽ<EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void ReadCalib2DataFromFlash(u32 frameN , u8 *data ,u16 size );
|
|
|
|
|
|
void ReadDataFromFlash(u32 offset , u8 *data ,u16 size );
|
|
|
|
|
|
|
|
|
|
|
|
void SaveSysParams(void);
|
2026-03-20 21:16:58 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|