diff --git a/si4/ps5ws.si4project/soft_ps5ws.sip_xm b/si4/ps5ws.si4project/soft_ps5ws.sip_xm index 3a6d71d..cbb8664 100644 Binary files a/si4/ps5ws.si4project/soft_ps5ws.sip_xm and b/si4/ps5ws.si4project/soft_ps5ws.sip_xm differ diff --git a/si4/ps5ws.si4project/soft_ps5ws.siwork b/si4/ps5ws.si4project/soft_ps5ws.siwork index c3b9118..8f830cd 100644 Binary files a/si4/ps5ws.si4project/soft_ps5ws.siwork and b/si4/ps5ws.si4project/soft_ps5ws.siwork differ diff --git a/source/app/common.c b/source/app/common.c index 762b98e..90e3991 100644 --- a/source/app/common.c +++ b/source/app/common.c @@ -4,44 +4,12 @@ #include "../msp/msp_id.h" struct global_param G; -struct ts_eeprom_param eep_param; +struct ts_eeprom_enc eep_enc; #define EEP_SECTOR_SIZE 0x200 -#define EEP_PARAM_ADDR (EEP_SECTOR_SIZE * 0) +#define EEP_ENC_ADDR (EEP_SECTOR_SIZE * 0) #define ENC_KEY 0x01010101 -#if 0 -void L3_eeprom_read(void) -{ - U8 dlen = 0; - L0_Iap_Read_array(EEP_PARAM_ADDR, (U8*)&eep_param, 2 + EEPROM_PARAM_DATA_MAX + 2); - if(eep_param.filter == EEPROM_PARAM_FILTER) - { - dlen = eep_param.len - 2; - crc16(eep_param.crc,(U8*)&eep_param,2+dlen); - if(eep_param.crc[0] == eep_param.buf[dlen] && eep_param.crc[1] == eep_param.buf[dlen+1]) - { - L0_uart0_uc('#'); - Lc_buf_copy_uc((U8*)&G.p,(U8*)eep_param.buf,dlen); - } - } -} -#endif - -void L3_eeprom_persist(void) -{ - U8 dlen = MCU_ID_KEY_LEN + MCU_ID_LEN; - eep_param.filter = EEPROM_PARAM_FILTER; - eep_param.len = dlen + 2; - Lc_buf_copy_uc((U8*)eep_param.enc_key,(U8*)&G.enc_key,MCU_ID_KEY_LEN); - Lc_buf_copy_uc((U8*)eep_param.enc_val,(U8*)&G.mcu_enc_id,MCU_ID_LEN); - crc16(eep_param.crc, &eep_param, 2+dlen); - - L0_Iap_Erase(EEP_PARAM_ADDR); - L0_Iap_Program_array(EEP_PARAM_ADDR, (U8*)&eep_param, 2 + dlen + 2); -} - - void L3_chip_encrypt_main(void) { U8 i = 0; @@ -57,8 +25,14 @@ void L3_chip_encrypt_main(void) //2.ID加密 Lc_encrypt_id(G.mcu_enc_id,G.mcu_id, ENC_KEY, MCU_ID_LEN); - //3.写入EEPROM - L3_eeprom_persist(); + //3.构造数据结构 + Lc_buf_copy_uc((U8*)eep_enc.enc_key,(U8*)&G.enc_key,MCU_ID_KEY_LEN); + Lc_buf_copy_uc((U8*)eep_enc.enc_val,(U8*)&G.mcu_enc_id,MCU_ID_LEN); + crc16(eep_enc.crc, &eep_enc, MCU_ID_KEY_LEN + MCU_ID_LEN); + + //4. 写入EEPROM + L0_Iap_Erase(EEP_ENC_ADDR); + L0_Iap_Program_array(EEP_ENC_ADDR, (U8*)&eep_enc, MCU_ID_KEY_LEN + MCU_ID_LEN + 2); L0_uart0_uc('Y'); } diff --git a/source/app/common.h b/source/app/common.h index ff89038..3766b49 100644 --- a/source/app/common.h +++ b/source/app/common.h @@ -27,14 +27,12 @@ enum tp_handle */ #define EEPROM_PARAM_DATA_MAX 64 #define EEPROM_PARAM_FILTER 0xAA -typedef struct ts_eeprom_param +typedef struct ts_eeprom_enc { - U8 filter; - U8 len; U8 enc_key[MCU_ID_KEY_LEN]; U8 enc_val[MCU_ID_LEN]; U8 crc[2]; -}EEPROM_PARAM; +}EEPROM_ENC; /** * 用户协议 diff --git a/source/app/main.c b/source/app/main.c index 88de581..f985771 100644 --- a/source/app/main.c +++ b/source/app/main.c @@ -127,9 +127,8 @@ void main(void) //----------------------------------------------- //系统主循环 //----------------------------------------------- - //L0_id_main(); L3_chip_encrypt_main(); - //L1_Iap_main(); + L1_Iap_main(); while(1) { if(1 == s_nos_tick.t1s_heatbeart)