NULL
This commit is contained in:
192
user/MCU/lhl_flash.h
Executable file → Normal file
192
user/MCU/lhl_flash.h
Executable file → Normal file
@@ -1,152 +1,86 @@
|
||||
#ifndef __LHL_FLASH_H__
|
||||
#define __LHL_FLASH_H__
|
||||
|
||||
//ϵͳ<EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD>
|
||||
#define FLASH_PAGE_SIZE_MAX FLASH_PAGE_SIZE //0x1000 ÿҳ<C3BF><D2B3><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD> 4k 4096byte
|
||||
//FLASH<EFBFBD><EFBFBD>ַ
|
||||
#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>ǩҳ
|
||||
|
||||
|
||||
//ϵͳ<EFBFBD>궨<EFBFBD><EFBFBD>
|
||||
#define FLASH_PAGE_MAXZISE 30 //<2F><><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD> 120K <20><>30ҳ(0-29ҳ)
|
||||
//FLASHʵ<EFBFBD>ʵ<EFBFBD>ַ0x08000000<EFBFBD><EFBFBD>ʼ
|
||||
#define VENDER_PARAMS_ADDR (FLASH_START_ADDRESS + (FLASH_PAGE_SIZE*VENDER_PARAMS_PAGE))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢λ<EFBFBD><EFBFBD>
|
||||
#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 APP_PAGE 4 //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳҳ<EFBFBD><EFBFBD> Ĭ<><C4AC>ֵ,<2C><>0X8000000<30><30>ʼ <20><><EFBFBD><EFBFBD>bootLoader<65><72>ռ0x4000 <20><>4ҳ,<2C><>0X8004000<30><30>ʼ
|
||||
#define CORRECT_DATA_SIZE (CORRECT_PAGE_NUM* FLASH_PAGE_SIZE) //У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define CORRECT_DATA_MID (CORRECT_DATA_SIZE / 2) //У<D0A3><D7BC><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>λ<EFBFBD><CEBB>
|
||||
|
||||
#define USER_PARAMS_PAGE 19 //<2F>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳҳ<EFBFBD><EFBFBD>
|
||||
#define USER_PARAMS_ADDR (FLASH_START_ADDRESS + (FLASH_PAGE_SIZE_MAX*USER_PARAMS_PAGE)) //FLASHʵ<48>ʵ<EFBFBD>ַ <20>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洢λ<EFBFBD><EFBFBD>
|
||||
#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) //<EFBFBD><EFBFBD><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 USER_DCOEF_TAG_PAGE 20 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩҳҳ<D2B3><D2B3>
|
||||
#define USER_DCOEF_TAG_ADDR (FLASH_START_ADDRESS + (FLASH_PAGE_SIZE_MAX*USER_DCOEF_TAG_PAGE))//FLASHʵ<48>ʵ<EFBFBD>ַ <20><><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 CORRECT_PAGE_NUM (CALIB_STORED_SIZE / FLASH_PAGE_SIZE_MAX) //<2F><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>У<D0A3><D7BC><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC>ҳ<EFBFBD><D2B3> У<D0A3><D7BC><EFBFBD>ݴ洢<DDB4><E6B4A2>С/ÿҳ<C3BF><D2B3>С
|
||||
#define CORRECT_DATA_PAGE (FLASH_PAGE_MAXZISE - CORRECT_PAGE_NUM) //У<D0A3><D7BC><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD>ʼҳҳ<EFBFBD><EFBFBD>
|
||||
#define CORRECT_DATA_ADDR (FLASH_START_ADDRESS + (FLASH_PAGE_SIZE_MAX*CORRECT_DATA_PAGE)) //У<D0A3><D7BC><EFBFBD><EFBFBD><EFBFBD>洢λ<E6B4A2><CEBB>
|
||||
|
||||
#define CORRECT2_PAGE_NUM 4 //У<D0A3><D7BC><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD>
|
||||
#define CORRECT2_DATA_ADDR CORRECT_DATA_ADDR-(5*FLASH_PAGE_SIZE)//У<D0A3><D7BC><EFBFBD><EFBFBD><EFBFBD>洢λ<E6B4A2><CEBB>
|
||||
|
||||
|
||||
|
||||
|
||||
#define CALIB_STORED_SIZE CALIB_REAL_SIZE
|
||||
|
||||
#define USER_REG_COUNT USER_INX_MAX //<2F>û<EFBFBD><C3BB>Ĵ<EFBFBD><C4B4><EFBFBD>(˫<>ֽ<EFBFBD>)<29><><EFBFBD><EFBFBD> 336
|
||||
#define USER_REG_SIZE (USER_REG_COUNT * REG_WORD_WIDTH) //USER<45><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD>С 1008 bytes
|
||||
#define WORD_REG_COUNT WORD_INX_MAX //˫<>ֽڼĴ<DABC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 128
|
||||
#define WORD_REG_SIZE (WORD_REG_COUNT * REG_WORD_WIDTH) //WORD<52><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD>С 384 bytes
|
||||
#define DWORD_REG_COUNT DWORD_INX_MAX// <20><><EFBFBD>ֽڼĴ<DABC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //64
|
||||
#define DWORD_REG_SIZE (DWORD_REG_COUNT * REG_DWORD_WIDTH) //DWORD<52><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD>С 320 bytes
|
||||
|
||||
#define TOTAL_PARAM_SIZE (WORD_REG_SIZE + DWORD_REG_SIZE + USER_REG_SIZE) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD>С 1712bytes <20><>Ӧ<EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>С
|
||||
|
||||
|
||||
|
||||
///**********************************************************************************************************************/
|
||||
////Ĭ<><C4AC>У<D0A3><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//// ====== <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>======
|
||||
//#define CALIB_COMP_FAC 3 // ѹ<><D1B9><EFBFBD><EFBFBD> <09><><EFBFBD><EFBFBD>>0 ֵԽ<D6B5><D4BD>,ѹ<><D1B9>Խǿ,Flashռ<68><D5BC>Խ<EFBFBD><D4BD>,<2C><>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD>
|
||||
//#define CALIB_WIDTH 64 // ÿ֡<C3BF><D6A1><EFBFBD><EFBFBD><EFBFBD>ֽڿ<D6BD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD>32/64/128<32><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CALIB_SIZE
|
||||
//#define CALIB_MAX_INDEX_REQ 5800 // 24000 // <20>㷨Ҫ<E3B7A8><D2AA><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//// ====== <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>===================
|
||||
//// Ԥ<><D4A4> 2*CALIB_COMP_FAC <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ䣨Э<E4A3A8><D0AD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
||||
//#define CALIB_SIZE_MIN_RAW ((CALIB_MAX_INDEX_REQ + 2 * CALIB_COMP_FAC) * 3)//#define BYTES_PER_INDEX 3 // ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ3<D5BC>ֽڣ<D6BD><DAA3><EFBFBD><EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD><C9B8>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>[H,M,L])
|
||||
//// <20><><EFBFBD>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>
|
||||
//// ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>洢<EFBFBD>ռ䣨<D5BC><E4A3A8><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
//#define CALIB_STORED_MIN (((CALIB_SIZE_MIN_RAW) + CALIB_COMP_FAC - 1) / CALIB_COMP_FAC)
|
||||
//// <20><><EFBFBD>϶<EFBFBD><CFB6>뵽Flashҳ
|
||||
//#define CALIB_STORED_SIZE (((CALIB_STORED_MIN + FLASH_PAGE_SIZE_MAX - 1) / FLASH_PAGE_SIZE_MAX) * FLASH_PAGE_SIZE_MAX) //ʵ<>ʴ洢<CAB4><E6B4A2>С
|
||||
////EEPROM<4F><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>
|
||||
////#define CALIB_STORED_SIZE (((CALIB_SIZE_MIN_RAW) + CALIB_COMP_FAC - 1) / CALIB_COMP_FAC)
|
||||
//// ====== <20>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>======================
|
||||
//// CALIB_STORED_SIZE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>EEPROM<4F><4D><EFBFBD><EFBFBD>Flash<73><68><EFBFBD>ø<EFBFBD>ֵ<EFBFBD><D6B5>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ռ䣬<D5BC><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CEA2><EFBFBD><EFBFBD>һ<EFBFBD>¿ռ<C2BF><D5BC>Ƿ<EFBFBD><C7B7>㹻
|
||||
//#define CALIB_SIZE (CALIB_STORED_SIZE * CALIB_COMP_FAC)// ʵ<><CAB5>ԭʼ<D4AD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڣ<D6BD>= <20>洢<EFBFBD>ռ<EFBFBD>*ѹ<><D1B9><EFBFBD><EFBFBD>
|
||||
//#define CALIB_DEPTH (CALIB_SIZE / CALIB_WIDTH) // ԭʼ<D4AD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1>
|
||||
//#define CALIB_MAX_INDEX ((CALIB_SIZE / 3) - (2 * CALIB_COMP_FAC)) // ʵ<><CAB5>֧<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>루Flash<73>»<EFBFBD><C2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
||||
|
||||
//#if ((CALIB_DEPTH) % (CALIB_COMP_FAC)) != 0
|
||||
// #error "CALIB_DEPTH must be divisible by CALIB_COMP_FAC!"
|
||||
//#endif
|
||||
//#if (CALIB_SIZE % CALIB_WIDTH) != 0
|
||||
// #error "CALIB_SIZE must be divisible by CALIB_WIDTH! Adjust page count or width."
|
||||
//#endif
|
||||
///**********************************************************************************************************************/
|
||||
//#ifndef ENABLE_2ND_CURVE
|
||||
//#pragma message("[undefined] ENABLE_2ND_CURVE")
|
||||
//#elif(ENABLE_2ND_CURVE)
|
||||
////У<D0A3><D7BC><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD>
|
||||
//// ====== <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>======
|
||||
//#define CALIB_COMP_FAC2 3 // ѹ<><D1B9><EFBFBD><EFBFBD> ֵԽ<D6B5><D4BD>,ѹ<><D1B9>Խǿ,Flashռ<68><D5BC>Խ<EFBFBD><D4BD>,<2C><>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD>
|
||||
//#define CALIB_WIDTH2 64 // ÿ֡<C3BF><D6A1><EFBFBD><EFBFBD><EFBFBD>ֽڿ<D6BD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD>32/64/<2F>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CALIB_SIZE
|
||||
//#define CALIB_MAX_INDEX_REQ2 24000 // <20>㷨Ҫ<E3B7A8><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//// ====== <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>===================
|
||||
//// Ԥ<><D4A4> 2*CALIB_COMP_FAC <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ䣨Э<E4A3A8><D0AD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
||||
//#define CALIB_SIZE_MIN_RAW2 ((CALIB_MAX_INDEX_REQ2 + 2 * CALIB_COMP_FAC2) * 3)//Э<><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>[H,M,L])
|
||||
//// <20><><EFBFBD>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>
|
||||
//// ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>洢<EFBFBD>ռ䣨<D5BC><E4A3A8><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
//#define CALIB_STORED_MIN2 (((CALIB_SIZE_MIN_RAW2) + CALIB_COMP_FAC2 - 1) / CALIB_COMP_FAC2)
|
||||
//// <20><><EFBFBD>϶<EFBFBD><CFB6>뵽Flashҳ
|
||||
//#define CALIB_STORED_SIZE2 (((CALIB_STORED_MIN2 + FLASH_PAGE_SIZE_MAX - 1) / FLASH_PAGE_SIZE_MAX) * FLASH_PAGE_SIZE_MAX) //ʵ<>ʴ洢<CAB4><E6B4A2>С
|
||||
//#define CORRECT_PAGE_NUM2 (CALIB_STORED_SIZE2 / FLASH_PAGE_SIZE_MAX) //<2F><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>У<D0A3><D7BC><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC>ҳ<EFBFBD><D2B3> У<D0A3><D7BC><EFBFBD>ݴ洢<DDB4><E6B4A2>С/ÿҳ<C3BF><D2B3>С
|
||||
|
||||
//// ====== <20>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>======================
|
||||
//// CALIB_STORED_SIZE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>EEPROM<4F><4D><EFBFBD><EFBFBD>Flash<73><68><EFBFBD>ø<EFBFBD>ֵ<EFBFBD><D6B5>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ռ䣬<D5BC><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CEA2><EFBFBD><EFBFBD>һ<EFBFBD>¿ռ<C2BF><D5BC>Ƿ<EFBFBD><C7B7>㹻
|
||||
//#define CALIB_SIZE2 (CALIB_STORED_SIZE2 * CALIB_COMP_FAC2)// ʵ<><CAB5>ԭʼ<D4AD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڣ<D6BD>= <20>洢<EFBFBD>ռ<EFBFBD>*ѹ<><D1B9><EFBFBD><EFBFBD>
|
||||
//#define CALIB_DEPTH2 (CALIB_SIZE2 / CALIB_WIDTH2) // ԭʼ<D4AD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1>
|
||||
//#define CALIB_MAX_INDEX2 ((CALIB_SIZE2 / 3) - (2 * CALIB_COMP_FAC2)) // ʵ<><CAB5>֧<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>루Flash<73>»<EFBFBD><C2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
||||
//#if (CALIB_DEPTH2 % CALIB_COMP_FAC2) != 0
|
||||
// #error "CALIB_DEPTH must be divisible by CALIB_COMP_FAC!"
|
||||
//#endif
|
||||
//#if (CALIB_SIZE2 % CALIB_WIDTH2) != 0
|
||||
// #error "CALIB_SIZE must be divisible by CALIB_WIDTH! Adjust page count or width."
|
||||
//#endif
|
||||
//#endif
|
||||
|
||||
///**********************************************************************************************************************/
|
||||
// #ifndef ENABLE_3RD_CURVE
|
||||
//#pragma message("[undefined] ENABLE_2ND_CURVE")
|
||||
//#elif(ENABLE_3RD_CURVE)
|
||||
////У<D0A3><D7BC><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD>
|
||||
//// ====== <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>======
|
||||
//#define CALIB_COMP_FAC3 3 // ѹ<><D1B9><EFBFBD><EFBFBD> ֵԽ<D6B5><D4BD>,ѹ<><D1B9>Խǿ,Flashռ<68><D5BC>Խ<EFBFBD><D4BD>,<2C><>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD>
|
||||
//#define CALIB_WIDTH3 64 // ÿ֡<C3BF><D6A1><EFBFBD><EFBFBD><EFBFBD>ֽڿ<D6BD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD>32/64/<2F>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CALIB_SIZE
|
||||
//#define CALIB_MAX_INDEX_REQ3 24000 // <20>㷨Ҫ<E3B7A8><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//// ====== <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>===================
|
||||
//// Ԥ<><D4A4> 2*CALIB_COMP_FAC <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ䣨Э<E4A3A8><D0AD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
||||
//#define CALIB_SIZE_MIN_RAW3 ((CALIB_MAX_INDEX_REQ3 + 2 * CALIB_COMP_FAC3) * 3)//Э<><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>[H,M,L])
|
||||
//// <20><><EFBFBD>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>
|
||||
//// ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>洢<EFBFBD>ռ䣨<D5BC><E4A3A8><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
//#define CALIB_STORED_MIN3 (((CALIB_SIZE_MIN_RAW3) + CALIB_COMP_FAC3 - 1) / CALIB_COMP_FAC3)
|
||||
//// <20><><EFBFBD>϶<EFBFBD><CFB6>뵽Flashҳ
|
||||
//#define CALIB_STORED_SIZE3 (((CALIB_STORED_MIN3 + FLASH_PAGE_SIZE_MAX - 1) / FLASH_PAGE_SIZE_MAX) * FLASH_PAGE_SIZE_MAX) //ʵ<>ʴ洢<CAB4><E6B4A2>С
|
||||
//#define CORRECT_PAGE_NUM3 (CALIB_STORED_SIZE3 / FLASH_PAGE_SIZE_MAX) //<2F><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>У<D0A3><D7BC><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC>ҳ<EFBFBD><D2B3> У<D0A3><D7BC><EFBFBD>ݴ洢<DDB4><E6B4A2>С/ÿҳ<C3BF><D2B3>С
|
||||
|
||||
//// ====== <20>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>======================
|
||||
//// CALIB_STORED_SIZE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>EEPROM<4F><4D><EFBFBD><EFBFBD>Flash<73><68><EFBFBD>ø<EFBFBD>ֵ<EFBFBD><D6B5>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ռ䣬<D5BC><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CEA2><EFBFBD><EFBFBD>һ<EFBFBD>¿ռ<C2BF><D5BC>Ƿ<EFBFBD><C7B7>㹻
|
||||
//#define CALIB_SIZE3 (CALIB_STORED_SIZE3 * CALIB_COMP_FAC3)// ʵ<><CAB5>ԭʼ<D4AD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڣ<D6BD>= <20>洢<EFBFBD>ռ<EFBFBD>*ѹ<><D1B9><EFBFBD><EFBFBD>
|
||||
//#define CALIB_DEPTH3 (CALIB_SIZE3 / CALIB_WIDTH3) // ԭʼ<D4AD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1>
|
||||
//#define CALIB_MAX_INDEX3 ((CALIB_SIZE3 / 3) - (2 * CALIB_COMP_FAC3)) // ʵ<><CAB5>֧<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>루Flash<73>»<EFBFBD><C2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
||||
//#if (CALIB_DEPTH3 % CALIB_COMP_FAC3) != 0
|
||||
// #error "CALIB_DEPTH must be divisible by CALIB_COMP_FAC!"
|
||||
//#endif
|
||||
//#if (CALIB_SIZE3 % CALIB_WIDTH3) != 0
|
||||
// #error "CALIB_SIZE must be divisible by CALIB_WIDTH! Adjust page count or width."
|
||||
//#endif
|
||||
//#endif
|
||||
|
||||
///**********************************************************************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
void update_param_bufferFromFlash(void);//<2F><>Ҫ
|
||||
u16 ReadShortParameterFromFlash(u16 parameterAdr , u16 parameterDefault);
|
||||
u32 ReadLongParameterFromFlash(u16 parameterAdr , u16 parameterDefault);
|
||||
void ReadMultiByteFromFlash(u16 address,u8 *wrtData, u16 dataLenth, u8 flashAdr);
|
||||
|
||||
u16 WriteShortParameterToFlash(u16 parameterAdr);
|
||||
u32 WriteLongParameterToFlash(u16 parameterAdr);
|
||||
void WriteMultiByteToFlash(u16 address, u8 *wrtData, u16 dataLenth, u8 flashAdr);
|
||||
|
||||
|
||||
|
||||
|
||||
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);
|
||||
|
||||
|
||||
/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|
||||
|
||||
Reference in New Issue
Block a user