| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- #include "TouchConfig.h"
- #include <string.h>
- #include "TouchCommon.h"
- #include "HidReport.h"
- #include "bsp_param.h"
- #include "api.h"
- #if USBCONFIG
- ST_CONFIG const_config ={
- 24,//sizeof(ST_CONFIG) - 13,//0x18 + 10,
- EN_USB_UART,
- 0,
- 0,
- 0,
- EN_MULTITOUCH_ONLY,
- EN_UART_PROTOCAL_10, //0x60
- 0x27,
- 0xC6,
- 0x09,
- 0x28,
- 0,
- 0,
- 0,
- 0x08,
- 0x79,
- 0x03,
- 0x8a,
- 0x40,
- 0x00, //16384
- 0x25,
- 0x80, //9600
- {0,0,0,0,0,0},
- {0,0},
- };
- __attribute__ ((aligned(4))) ST_CONFIG config;
- UINT16 GetCheckSum(PUINT8 cfg)
- {
- UINT8 i;
- UINT16 chk_sum = 0;
- for(i = 0; i< cfg[0] - 2; i++)
- {
- chk_sum += *(cfg + i);
- }
- return chk_sum;
- }
- BOOL CheckConfigValid(PUINT8 cfg)
- {
- UINT16 chk_sum;
- UINT16 tmp;
- if((cfg[0] == 0) || (cfg[0] > CONFIG_SIZE))
- {
- PRINT( "CONFIG NG\n" );
- return 0;
- }
- if(cfg[0] <= CONFIG_SIZE)
- {
- chk_sum = GetCheckSum(cfg);
- tmp = cfg[cfg[0] - 2];
- tmp = (tmp << 8) + cfg[cfg[0] - 1];
- if(chk_sum != tmp)
- {
- PRINT( "CONFIG CHKSUM ERROR\n" );
- return 0;
- }
- }
- return 1;
- }
- void ConfigInit()
- {
- UINT16 temp;
- PRINT("Load config\r\n");
- GetConfigFromFlash((PUINT8)&config);
- if(!CheckConfigValid((PUINT8)&config))
- {
- PRINT("Config invalid\r\n");
- {
- UINT16 chksum;
- PRINT("Reset config\r\n");
- config = const_config;
- config.len = CONFIG_SIZE;
- chksum = GetCheckSum((PUINT8)&config);
- //config.check_sum = chksum;
- ((PUINT8)&config)[CONFIG_SIZE-2] = chksum >> 8;
- ((PUINT8)&config)[CONFIG_SIZE-1] = chksum;
- }
- SaveConfig((PUINT8)&config);
- }
- temp = ((UINT16)config.resolution_x_h << 8) + config.resolution_x_l;
- if (0 == temp)
- {
- config.resolution_x_h = 0x40; //16384
- config.resolution_x_l = 0x00;
- }
- temp = ((UINT16)config.resolution_y_h << 8) + config.resolution_y_l;
- if (0 == temp)
- {
- config.resolution_y_h = 0x25; //9600
- config.resolution_y_l = 0x80;
- }
- }
- void GetConfigFromFlash(PUINT8 pBuf)
- {
- bsp_param_read(pBuf, TOUCH_CONFIG_ADDR, sizeof(ST_CONFIG));
- }
- void SaveConfig(PUINT8 cfg)
- {
- if(CheckConfigValid(cfg))
- {
- bsp_param_write(cfg, TOUCH_CONFIG_ADDR, sizeof(ST_CONFIG));
- bsp_param_sync();
- }
- }
- UINT32 GetHandsShakeValue(UINT8* buf)
- {
- UINT8 i;
- UINT32 HandsShakeValue = 0x0928;
- for(i = 0; i < 16; i++)
- {
- HandsShakeValue = (HandsShakeValue * 9897) + (buf[i]);
- }
- return HandsShakeValue;
- }
- void CheckFlag()
- {
- //ÓëAP³ÌÐòµÄÎÕÊÖ±ê¼Ç
- UINT32 uid[4];
- UINT32 hash_flag;
- bsp_param_read((UINT8*)&hash_flag, TOUCH_HASH_FLAG_ADDR, 4);
- os_spiflash_id_get((UINT8*)uid);
- uid[3] = GetHandsShakeValue((UINT8*)uid);
- if(hash_flag!=uid[3])
- {
- //SoftResetChip();
- }
- }
- CHIP_TYPE GetChipTypeFromFlash(void)
- {
- UINT8 ct;
- bsp_param_read((u8 *)&ct, TOUCH_CHIP_TYPE_ADDR, 1);
- return ct;
- }
- void SaveChipTypeToFlash(CHIP_TYPE chip_type)
- {
- UINT8 ct = chip_type;
- bsp_param_write((u8 *)&ct, TOUCH_CHIP_TYPE_ADDR, 1);
- bsp_param_sync();
- }
- #endif
|