You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.1 KiB

5 years ago
#include "common.h"
//#include "../tpc/tpc_uart.h"
#include "../msp/msp_eeprom.h"
#include "../msp/msp_id.h"
struct global_param G;
5 years ago
struct ts_eeprom_enc eep_enc;
5 years ago
#define EEP_SECTOR_SIZE 0x200
5 years ago
#define EEP_ENC_ADDR (EEP_SECTOR_SIZE * 0)
5 years ago
#define ENC_KEY 0x01010101
void L3_chip_encrypt_main(void)
{
U8 i = 0;
//1.获取MCU_ID
L0_id_get_rom(G.mcu_id);
for(i=0;i<MCU_ID_LEN;i++)
{
L0_uart0_uchex(G.mcu_id[i]);
}
//2.ID加密
Lc_encrypt_id(G.mcu_enc_id,G.mcu_id, ENC_KEY, MCU_ID_LEN);
5 years ago
//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);
5 years ago
L0_uart0_uc('Y');
}
void L3_reg_init(void)
{
G.enc_key[0] = ENC_KEY >> 24 & 0xFF;
G.enc_key[1] = ENC_KEY >> 16 & 0xFF;
G.enc_key[2] = ENC_KEY >> 8 & 0xFF;
G.enc_key[3] = ENC_KEY >> 0 & 0xFF;
//eeprom中读取持久化的值
//L3_eeprom_read();
}