新增软件加密校验部分,协议添加读ID写密文,加密是否有效待验证
This commit is contained in:
parent
8dd40691af
commit
b3d26b0969
|
@ -0,0 +1,9 @@
|
||||||
|
#ifndef _ENCRYPT_H_
|
||||||
|
#define _ENCRYPT_H_
|
||||||
|
#include "comm_types.h"
|
||||||
|
#include "stm32l4xx_hal.h"
|
||||||
|
#include "inflash.h"
|
||||||
|
|
||||||
|
uint8_t JudgeEncrypt();
|
||||||
|
|
||||||
|
#endif //_ENCRYPT_H_
|
|
@ -75,6 +75,14 @@ typedef enum
|
||||||
FRT_REGISTER_MAX_WAVE_2 = 52, /* 换能器最大波形 */
|
FRT_REGISTER_MAX_WAVE_2 = 52, /* 换能器最大波形 */
|
||||||
FRT_REGISTER_MAX_WAVE_3 = 53, /* 换能器最大波形 */
|
FRT_REGISTER_MAX_WAVE_3 = 53, /* 换能器最大波形 */
|
||||||
FRT_REGISTER_MAX_WAVE_4 = 54, /* 换能器最大波形 */
|
FRT_REGISTER_MAX_WAVE_4 = 54, /* 换能器最大波形 */
|
||||||
|
FRT_REGISTER_ID_1 = 55, /* ID16 */
|
||||||
|
FRT_REGISTER_ID_2 = 56, /* ID32 */
|
||||||
|
FRT_REGISTER_ID_3 = 57, /* ID48 */
|
||||||
|
FRT_REGISTER_ID_4 = 58, /* ID64 */
|
||||||
|
FRT_REGISTER_ENCRYPT_1 = 59, /* ÃÜÎÄ16 */
|
||||||
|
FRT_REGISTER_ENCRYPT_2 = 60, /* ÃÜÎÄ32 */
|
||||||
|
FRT_REGISTER_ENCRYPT_3 = 61, /* ÃÜÎÄ48 */
|
||||||
|
FRT_REGISTER_ENCRYPT_4 = 62, /* ÃÜÎÄ64 */
|
||||||
}FRT_MsgRegister;
|
}FRT_MsgRegister;
|
||||||
|
|
||||||
#pragma pack(push,1)
|
#pragma pack(push,1)
|
||||||
|
|
|
@ -37,6 +37,7 @@ typedef struct _usr_config_info{
|
||||||
//出厂配置参数
|
//出厂配置参数
|
||||||
typedef struct _factory_config_info{
|
typedef struct _factory_config_info{
|
||||||
u_int8_t flag_head;
|
u_int8_t flag_head;
|
||||||
|
u_int32_t encrypt_0; /* 前32位密文 */
|
||||||
u_int16_t transducer_cfg_1R5; /* 换能器参数 */
|
u_int16_t transducer_cfg_1R5; /* 换能器参数 */
|
||||||
u_int16_t transducer_cfg_4R5; /* 换能器参数 */
|
u_int16_t transducer_cfg_4R5; /* 换能器参数 */
|
||||||
u_int16_t transducer_cfg_8R0; /* 换能器参数 */
|
u_int16_t transducer_cfg_8R0; /* 换能器参数 */
|
||||||
|
@ -55,6 +56,7 @@ typedef struct _factory_config_info{
|
||||||
u_int16_t linear_point_5_x; /* 线性插值点5X */
|
u_int16_t linear_point_5_x; /* 线性插值点5X */
|
||||||
u_int16_t linear_point_5_y; /* 线性插值点5Y */
|
u_int16_t linear_point_5_y; /* 线性插值点5Y */
|
||||||
u_int16_t linear_enable; /* 线性插值使能 */
|
u_int16_t linear_enable; /* 线性插值使能 */
|
||||||
|
u_int32_t encrypt_1; /* 后32位密文 */
|
||||||
u_int8_t flag_end;
|
u_int8_t flag_end;
|
||||||
}factory_config_info;
|
}factory_config_info;
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
#include "encrypt.h"
|
||||||
|
|
||||||
|
/* TEA加密算法的加密过程 */
|
||||||
|
void tea_encrypt(uint32_t *en, uint32_t *k)
|
||||||
|
{
|
||||||
|
uint32_t v[2];
|
||||||
|
v[0] = *(uint32_t*)(0x1FFF7590);
|
||||||
|
v[1] = *(uint32_t*)(0x1FFF7590 + 4);
|
||||||
|
uint32_t v0 = v[0], v1 = v[1], sum = 0, i; // 初始化v0, v1, sum
|
||||||
|
uint32_t delta = 0x9e3779b9; // 初始化delta
|
||||||
|
uint32_t k0 = k[0], k1 = k[1], k2 = k[2], k3 = k[3]; // 初始化密钥k
|
||||||
|
for (i = 0; i < 32; i++) { // 执行32轮加密
|
||||||
|
sum += delta;
|
||||||
|
v0 += ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1);
|
||||||
|
v1 += ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3);
|
||||||
|
}
|
||||||
|
en[0] = v0; // 返回加密结果
|
||||||
|
en[1] = v1;
|
||||||
|
|
||||||
|
// term_printf("%x %x", v[0], v[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TEA加密算法的解密过程 */
|
||||||
|
void tea_decrypt(uint32_t *v, uint32_t *k)
|
||||||
|
{
|
||||||
|
uint32_t delta = 0x9e3779b9; // 初始化delta
|
||||||
|
// uint32_t v0 = 0x93ae5ba8, v1 = 0xc5ba4e82, sum = delta << 5, i; // 初始化v0, v1, sum
|
||||||
|
uint32_t v0 = g_stConfigInfo.encrypt_0, v1 = g_stConfigInfo.encrypt_1, sum = delta << 5, i; // 初始化v0, v1, sum
|
||||||
|
uint32_t k0 = k[0], k1 = k[1], k2 = k[2], k3 = k[3]; // 初始化密钥k
|
||||||
|
for(i = 0; i < 32; i++) { // 执行32轮解密
|
||||||
|
v1 -= ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3);
|
||||||
|
v0 -= ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1);
|
||||||
|
sum -= delta;
|
||||||
|
}
|
||||||
|
v[0] = v0; // 返回解密结果
|
||||||
|
v[1] = v1;
|
||||||
|
|
||||||
|
// term_printf("%x %x", v[0], v[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 判断密文是否正确
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
uint8_t JudgeEncrypt()
|
||||||
|
{
|
||||||
|
uint32_t encryptCode[2] = {0};
|
||||||
|
uint32_t key[] = {0x509770ff, 0x29c6b369, 0x4da2c125, 0x7d729015}; //密钥可能要打散位置,不在这里定死
|
||||||
|
tea_decrypt(encryptCode, key);
|
||||||
|
return ((*(uint32_t*)(0x1FFF7590)) == encryptCode[0] && (*(uint32_t*)(0x1FFF7590 + 4)) == encryptCode[1]);
|
||||||
|
}
|
|
@ -71,6 +71,11 @@ static u_int16_t FRT_ReadReg_MaxWave_1(void *pMsg);
|
||||||
static u_int16_t FRT_ReadReg_MaxWave_2(void *pMsg);
|
static u_int16_t FRT_ReadReg_MaxWave_2(void *pMsg);
|
||||||
static u_int16_t FRT_ReadReg_MaxWave_3(void *pMsg);
|
static u_int16_t FRT_ReadReg_MaxWave_3(void *pMsg);
|
||||||
static u_int16_t FRT_ReadReg_MaxWave_4(void *pMsg);
|
static u_int16_t FRT_ReadReg_MaxWave_4(void *pMsg);
|
||||||
|
/* 读ID */
|
||||||
|
static u_int16_t FRT_ReadReg_ID_1(void *pMsg);
|
||||||
|
static u_int16_t FRT_ReadReg_ID_2(void *pMsg);
|
||||||
|
static u_int16_t FRT_ReadReg_ID_3(void *pMsg);
|
||||||
|
static u_int16_t FRT_ReadReg_ID_4(void *pMsg);
|
||||||
/* 写配置 */
|
/* 写配置 */
|
||||||
static u_int16_t FRT_WriteRegTransducerCFG1R5(void *pMsg);
|
static u_int16_t FRT_WriteRegTransducerCFG1R5(void *pMsg);
|
||||||
static u_int16_t FRT_WriteRegTransducerCFG4R5(void *pMsg);
|
static u_int16_t FRT_WriteRegTransducerCFG4R5(void *pMsg);
|
||||||
|
@ -86,6 +91,12 @@ static u_int16_t FRT_WriteRegPoint_4Y(void *pMsg);
|
||||||
static u_int16_t FRT_WriteRegPoint_5Y(void *pMsg);
|
static u_int16_t FRT_WriteRegPoint_5Y(void *pMsg);
|
||||||
static u_int16_t FRT_WriteRegLinearEnable(void *pMsg);
|
static u_int16_t FRT_WriteRegLinearEnable(void *pMsg);
|
||||||
|
|
||||||
|
/* 写密文 */
|
||||||
|
static u_int16_t FRT_WriteRegEncrypt1(void *pMsg);
|
||||||
|
static u_int16_t FRT_WriteRegEncrypt2(void *pMsg);
|
||||||
|
static u_int16_t FRT_WriteRegEncrypt3(void *pMsg);
|
||||||
|
static u_int16_t FRT_WriteRegEncrypt4(void *pMsg);
|
||||||
|
|
||||||
static void pdebug_mcs_info();
|
static void pdebug_mcs_info();
|
||||||
|
|
||||||
/* 功能码处理表 */
|
/* 功能码处理表 */
|
||||||
|
@ -145,6 +156,10 @@ FRT_RegProcTable_s g_RegTbl[] =
|
||||||
{ FRT_REGISTER_MAX_WAVE_2, FRT_ReadReg_MaxWave_2 }, /* 波形最大幅值 */
|
{ FRT_REGISTER_MAX_WAVE_2, FRT_ReadReg_MaxWave_2 }, /* 波形最大幅值 */
|
||||||
{ FRT_REGISTER_MAX_WAVE_3, FRT_ReadReg_MaxWave_3 }, /* 波形最大幅值 */
|
{ FRT_REGISTER_MAX_WAVE_3, FRT_ReadReg_MaxWave_3 }, /* 波形最大幅值 */
|
||||||
{ FRT_REGISTER_MAX_WAVE_4, FRT_ReadReg_MaxWave_4 }, /* 波形最大幅值 */
|
{ FRT_REGISTER_MAX_WAVE_4, FRT_ReadReg_MaxWave_4 }, /* 波形最大幅值 */
|
||||||
|
{ FRT_REGISTER_ID_1, FRT_ReadReg_ID_1 }, /* ID */
|
||||||
|
{ FRT_REGISTER_ID_2, FRT_ReadReg_ID_2 }, /* ID */
|
||||||
|
{ FRT_REGISTER_ID_3, FRT_ReadReg_ID_3 }, /* ID */
|
||||||
|
{ FRT_REGISTER_ID_4, FRT_ReadReg_ID_4 }, /* ID */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* 写寄存器处理表 */
|
/* 写寄存器处理表 */
|
||||||
|
@ -169,6 +184,10 @@ FRT_RegProcTable_s g_Write_RegTbl[] =
|
||||||
{ FRT_REGISTER_LINEAR_POINT_Y_4, FRT_WriteRegPoint_4Y }, /* 线性插值校准点4 */
|
{ FRT_REGISTER_LINEAR_POINT_Y_4, FRT_WriteRegPoint_4Y }, /* 线性插值校准点4 */
|
||||||
{ FRT_REGISTER_LINEAR_POINT_Y_5, FRT_WriteRegPoint_5Y }, /* 线性插值校准点5 */
|
{ FRT_REGISTER_LINEAR_POINT_Y_5, FRT_WriteRegPoint_5Y }, /* 线性插值校准点5 */
|
||||||
{ FRT_REGISTER_LINEAR_ENABLE, FRT_WriteRegLinearEnable }, /* 线性插值使能 */
|
{ FRT_REGISTER_LINEAR_ENABLE, FRT_WriteRegLinearEnable }, /* 线性插值使能 */
|
||||||
|
{ FRT_REGISTER_ENCRYPT_1, FRT_WriteRegEncrypt1 }, /* 密文1 */
|
||||||
|
{ FRT_REGISTER_ENCRYPT_2, FRT_WriteRegEncrypt2 }, /* 密文2 */
|
||||||
|
{ FRT_REGISTER_ENCRYPT_3, FRT_WriteRegEncrypt3 }, /* 密文3 */
|
||||||
|
{ FRT_REGISTER_ENCRYPT_4, FRT_WriteRegEncrypt4 }, /* 密文4 */
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -864,6 +883,50 @@ static u_int16_t FRT_ReadReg_MaxWave_4(void *pMsg)
|
||||||
return FRT_swap_endian_16(value);
|
return FRT_swap_endian_16(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief ID16
|
||||||
|
* @param
|
||||||
|
* @retval
|
||||||
|
*/
|
||||||
|
static u_int16_t FRT_ReadReg_ID_1(void *pMsg)
|
||||||
|
{
|
||||||
|
u_int16_t value = ((*(uint32_t*)(0x1FFF7590)) >> 16) & 0x0000FFFF;
|
||||||
|
return FRT_swap_endian_16(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief ID32
|
||||||
|
* @param
|
||||||
|
* @retval
|
||||||
|
*/
|
||||||
|
static u_int16_t FRT_ReadReg_ID_2(void *pMsg)
|
||||||
|
{
|
||||||
|
u_int16_t value = (*(uint32_t*)(0x1FFF7590)) & 0x0000FFFF;
|
||||||
|
return FRT_swap_endian_16(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief ID48
|
||||||
|
* @param
|
||||||
|
* @retval
|
||||||
|
*/
|
||||||
|
static u_int16_t FRT_ReadReg_ID_3(void *pMsg)
|
||||||
|
{
|
||||||
|
u_int16_t value = ((*(uint32_t*)(0x1FFF7590 + 4)) >> 16) & 0x0000FFFF;
|
||||||
|
return FRT_swap_endian_16(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief ID64
|
||||||
|
* @param
|
||||||
|
* @retval
|
||||||
|
*/
|
||||||
|
static u_int16_t FRT_ReadReg_ID_4(void *pMsg)
|
||||||
|
{
|
||||||
|
u_int16_t value = (*(uint32_t*)(0x1FFF7590 + 4)) & 0x0000FFFF;
|
||||||
|
return FRT_swap_endian_16(value);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 写换能器参数寄存器值1R5
|
* @brief 写换能器参数寄存器值1R5
|
||||||
* @param
|
* @param
|
||||||
|
@ -1092,6 +1155,70 @@ static u_int16_t FRT_WriteRegLinearEnable(void *pMsg)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 写左1-16位
|
||||||
|
* @param
|
||||||
|
* @retval
|
||||||
|
*/
|
||||||
|
static u_int16_t FRT_WriteRegEncrypt1(void *pMsg)
|
||||||
|
{
|
||||||
|
uint16_t *pMsgData = (uint16_t *)pMsg;
|
||||||
|
uint16_t data = *pMsgData;
|
||||||
|
|
||||||
|
g_stConfigInfo.encrypt_0 = (g_stConfigInfo.encrypt_0 & 0x0000FFFF) | ((data << 16) & 0xFFFF0000);
|
||||||
|
save_factory_config_info(g_stConfigInfo);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 写左17-32位
|
||||||
|
* @param
|
||||||
|
* @retval
|
||||||
|
*/
|
||||||
|
static u_int16_t FRT_WriteRegEncrypt2(void *pMsg)
|
||||||
|
{
|
||||||
|
uint16_t *pMsgData = (uint16_t *)pMsg;
|
||||||
|
uint16_t data = *pMsgData;
|
||||||
|
|
||||||
|
g_stConfigInfo.encrypt_0 = (g_stConfigInfo.encrypt_0 & 0xFFFF0000) | (data & 0x0000FFFF);
|
||||||
|
save_factory_config_info(g_stConfigInfo);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 写左33-47位
|
||||||
|
* @param
|
||||||
|
* @retval
|
||||||
|
*/
|
||||||
|
static u_int16_t FRT_WriteRegEncrypt3(void *pMsg)
|
||||||
|
{
|
||||||
|
uint16_t *pMsgData = (uint16_t *)pMsg;
|
||||||
|
uint16_t data = *pMsgData;
|
||||||
|
|
||||||
|
g_stConfigInfo.encrypt_1 = (g_stConfigInfo.encrypt_1 & 0x0000FFFF) | ((data << 16) & 0xFFFF0000);
|
||||||
|
save_factory_config_info(g_stConfigInfo);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 写左48-64位
|
||||||
|
* @param
|
||||||
|
* @retval
|
||||||
|
*/
|
||||||
|
static u_int16_t FRT_WriteRegEncrypt4(void *pMsg)
|
||||||
|
{
|
||||||
|
uint16_t *pMsgData = (uint16_t *)pMsg;
|
||||||
|
uint16_t data = *pMsgData;
|
||||||
|
|
||||||
|
g_stConfigInfo.encrypt_1 = (g_stConfigInfo.encrypt_1 & 0xFFFF0000) | (data & 0x0000FFFF);
|
||||||
|
save_factory_config_info(g_stConfigInfo);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 封装协议发送
|
* @brief 封装协议发送
|
||||||
|
|
||||||
|
@ -1173,7 +1300,7 @@ void FRT_MsgProc_ReadRegister(device_handle device, void *pMsg)
|
||||||
start_reg_addr < 0x00 ||\
|
start_reg_addr < 0x00 ||\
|
||||||
(start_reg_addr > FRT_REGISTER_PRESSURE && start_reg_addr < FRT_REGISTER_DEVICE_ADDR) ||\
|
(start_reg_addr > FRT_REGISTER_PRESSURE && start_reg_addr < FRT_REGISTER_DEVICE_ADDR) ||\
|
||||||
(start_reg_addr > FRT_REGISTER_TEMPHUM_UPDATE_TIME && start_reg_addr < FRT_REGISTER_TRANSDUCER_CFG_1R5) ||\
|
(start_reg_addr > FRT_REGISTER_TEMPHUM_UPDATE_TIME && start_reg_addr < FRT_REGISTER_TRANSDUCER_CFG_1R5) ||\
|
||||||
start_reg_addr > FRT_REGISTER_MAX_WAVE_4 \
|
start_reg_addr > FRT_REGISTER_ID_4 \
|
||||||
)
|
)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -1185,7 +1312,7 @@ void FRT_MsgProc_ReadRegister(device_handle device, void *pMsg)
|
||||||
reg_num < 0x01 ||\
|
reg_num < 0x01 ||\
|
||||||
(((reg_num + start_reg_addr - 1) > FRT_REGISTER_PRESSURE) && ((reg_num + start_reg_addr - 1) < FRT_REGISTER_DEVICE_ADDR)) ||\
|
(((reg_num + start_reg_addr - 1) > FRT_REGISTER_PRESSURE) && ((reg_num + start_reg_addr - 1) < FRT_REGISTER_DEVICE_ADDR)) ||\
|
||||||
(((reg_num + start_reg_addr -1) > FRT_REGISTER_TEMPHUM_UPDATE_TIME) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_TRANSDUCER_CFG_1R5)) ||\
|
(((reg_num + start_reg_addr -1) > FRT_REGISTER_TEMPHUM_UPDATE_TIME) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_TRANSDUCER_CFG_1R5)) ||\
|
||||||
((reg_num + start_reg_addr -1) > FRT_REGISTER_MAX_WAVE_4) \
|
((reg_num + start_reg_addr -1) > FRT_REGISTER_ID_4) \
|
||||||
)
|
)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -1237,8 +1364,9 @@ void FRT_MsgProc_WriteRegister(device_handle device, void *pMsg)
|
||||||
if (start_reg_addr < FRT_REGISTER_DEVICE_ADDR ||\
|
if (start_reg_addr < FRT_REGISTER_DEVICE_ADDR ||\
|
||||||
(start_reg_addr > FRT_REGISTER_REST_DEFAULT_SETTING && start_reg_addr < FRT_REGISTER_TRANSDUCER_CFG_1R5) ||\
|
(start_reg_addr > FRT_REGISTER_REST_DEFAULT_SETTING && start_reg_addr < FRT_REGISTER_TRANSDUCER_CFG_1R5) ||\
|
||||||
(start_reg_addr > FRT_REGISTER_DISTANCE_WE && start_reg_addr < FRT_REGISTER_LINEAR_POINT_Y_1) ||\
|
(start_reg_addr > FRT_REGISTER_DISTANCE_WE && start_reg_addr < FRT_REGISTER_LINEAR_POINT_Y_1) ||\
|
||||||
(start_reg_addr > FRT_REGISTER_LINEAR_POINT_Y_5) \
|
(start_reg_addr > FRT_REGISTER_LINEAR_POINT_Y_5) && (start_reg_addr < FRT_REGISTER_ENCRYPT_1) ||\
|
||||||
)
|
(start_reg_addr > FRT_REGISTER_ENCRYPT_4)
|
||||||
|
)
|
||||||
{
|
{
|
||||||
term_printf("start_reg_addr error:%d", start_reg_addr);
|
term_printf("start_reg_addr error:%d", start_reg_addr);
|
||||||
return;
|
return;
|
||||||
|
@ -1246,8 +1374,9 @@ void FRT_MsgProc_WriteRegister(device_handle device, void *pMsg)
|
||||||
if (reg_num < 0x01 ||\
|
if (reg_num < 0x01 ||\
|
||||||
((reg_num + start_reg_addr - 1) < FRT_REGISTER_DEVICE_ADDR) ||\
|
((reg_num + start_reg_addr - 1) < FRT_REGISTER_DEVICE_ADDR) ||\
|
||||||
(((reg_num + start_reg_addr -1) > FRT_REGISTER_REST_DEFAULT_SETTING) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_TRANSDUCER_CFG_1R5)) ||\
|
(((reg_num + start_reg_addr -1) > FRT_REGISTER_REST_DEFAULT_SETTING) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_TRANSDUCER_CFG_1R5)) ||\
|
||||||
(((reg_num + start_reg_addr -1) > FRT_REGISTER_DISTANCE_WE) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_LINEAR_POINT_Y_1)) ||\
|
(((reg_num + start_reg_addr -1) > FRT_REGISTER_DISTANCE_WE) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_LINEAR_POINT_Y_1)) ||\
|
||||||
((reg_num + start_reg_addr -1) > FRT_REGISTER_LINEAR_POINT_Y_5) \
|
(((reg_num + start_reg_addr -1) > FRT_REGISTER_LINEAR_POINT_Y_5) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_ENCRYPT_1)) ||\
|
||||||
|
((reg_num + start_reg_addr -1) > FRT_REGISTER_ENCRYPT_4)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
term_printf("reg_num error:%d", reg_num);
|
term_printf("reg_num error:%d", reg_num);
|
||||||
|
|
|
@ -41,6 +41,8 @@ factory_config_info g_stConfigInfo={
|
||||||
.linear_point_5_x = 0, /* 线性插值点5 */
|
.linear_point_5_x = 0, /* 线性插值点5 */
|
||||||
.linear_point_5_y = 0, /* 线性插值点5 */
|
.linear_point_5_y = 0, /* 线性插值点5 */
|
||||||
.linear_enable = 0, /* 线性插值使能 */
|
.linear_enable = 0, /* 线性插值使能 */
|
||||||
|
.encrypt_0 = 0, /* 密文 */
|
||||||
|
.encrypt_1 = 0, /* 密文 */
|
||||||
.flag_end = FLAG_SAVE_INFLASH_END,
|
.flag_end = FLAG_SAVE_INFLASH_END,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ void task_shell_term_main_loop(void const * argument);
|
||||||
#include "frt_protocol.h"
|
#include "frt_protocol.h"
|
||||||
#include "inflash.h"
|
#include "inflash.h"
|
||||||
#include "hp203b.h"
|
#include "hp203b.h"
|
||||||
|
#include "encrypt.h"
|
||||||
/* USER CODE END Includes */
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
/* Private typedef -----------------------------------------------------------*/
|
/* Private typedef -----------------------------------------------------------*/
|
||||||
|
|
|
@ -125,10 +125,8 @@ void Flash_EnableReadProtection(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
/* USER CODE BEGIN 1 */
|
/* USER CODE BEGIN 1 */
|
||||||
//远程升级时读保护
|
///远程升级时读保护
|
||||||
#ifdef REMOTE_UPDATE
|
///Flash_EnableReadProtection();//读保护
|
||||||
Flash_EnableReadProtection();//读保护
|
|
||||||
#endif
|
|
||||||
/* USER CODE END 1 */
|
/* USER CODE END 1 */
|
||||||
|
|
||||||
/* MCU Configuration--------------------------------------------------------*/
|
/* MCU Configuration--------------------------------------------------------*/
|
||||||
|
@ -174,7 +172,6 @@ void Flash_EnableReadProtection(void)
|
||||||
term_printf("Version 1.0.0 Build: %s %s\r\n",__DATE__,__TIME__);
|
term_printf("Version 1.0.0 Build: %s %s\r\n",__DATE__,__TIME__);
|
||||||
HAL_ADCEx_Calibration_Start(&hadc1,ADC_SINGLE_ENDED);
|
HAL_ADCEx_Calibration_Start(&hadc1,ADC_SINGLE_ENDED);
|
||||||
sht30_init();
|
sht30_init();
|
||||||
|
|
||||||
/* USER CODE END 2 */
|
/* USER CODE END 2 */
|
||||||
|
|
||||||
/* Call init function for freertos objects (in cmsis_os2.c) */
|
/* Call init function for freertos objects (in cmsis_os2.c) */
|
||||||
|
|
|
@ -701,7 +701,7 @@
|
||||||
<data>
|
<data>
|
||||||
<extensions></extensions>
|
<extensions></extensions>
|
||||||
<cmdline></cmdline>
|
<cmdline></cmdline>
|
||||||
<hasPrio>88</hasPrio>
|
<hasPrio>1</hasPrio>
|
||||||
<buildSequence>inputOutputBased</buildSequence>
|
<buildSequence>inputOutputBased</buildSequence>
|
||||||
</data>
|
</data>
|
||||||
</settings>
|
</settings>
|
||||||
|
@ -2245,6 +2245,9 @@
|
||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\..\App\Inc\comm_types.h</name>
|
<name>$PROJ_DIR$\..\App\Inc\comm_types.h</name>
|
||||||
</file>
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\App\Inc\encrypt.h</name>
|
||||||
|
</file>
|
||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\..\App\Inc\frt_protocol.h</name>
|
<name>$PROJ_DIR$\..\App\Inc\frt_protocol.h</name>
|
||||||
</file>
|
</file>
|
||||||
|
@ -2266,6 +2269,9 @@
|
||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\..\App\Src\anemometer_dev.c</name>
|
<name>$PROJ_DIR$\..\App\Src\anemometer_dev.c</name>
|
||||||
</file>
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\App\Src\encrypt.c</name>
|
||||||
|
</file>
|
||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\..\App\Src\frt_protocol.c</name>
|
<name>$PROJ_DIR$\..\App\Src\frt_protocol.c</name>
|
||||||
</file>
|
</file>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue