good restore to factory default--- keep this

This commit is contained in:
Yunhorn 2025-04-10 21:20:22 +08:00
parent 7ba0f9954d
commit 044c307ba7
5 changed files with 163 additions and 26 deletions

View File

@ -765,6 +765,9 @@ void STS_SENSOR_Distance_Test_Process(void);
void STS_PRESENCE_SENSOR_Function_Test_Process(uint8_t *self_test_result, uint8_t count); void STS_PRESENCE_SENSOR_Function_Test_Process(uint8_t *self_test_result, uint8_t count);
void STS_PRESENCE_SENSOR_Distance_Measure_Process(void); void STS_PRESENCE_SENSOR_Distance_Measure_Process(void);
void STS_Sensor_Init(void);
void STS_Sensor_Prepare(void);
float KalmanFilter(float inData); float KalmanFilter(float inData);
uint8_t STS_RSS_Filter(uint8_t pre_sts_rss_result); uint8_t STS_RSS_Filter(uint8_t pre_sts_rss_result);
/* USER CODE BEGIN Private defines */ /* USER CODE BEGIN Private defines */

View File

@ -31,7 +31,7 @@
#include "tim.h" #include "tim.h"
#include "sys_app.h" #include "sys_app.h"
/* USER CODE END Includes */ /* USER CODE END Includes */
#include "yunhorn_sts_sensors.h"
/* Private typedef -----------------------------------------------------------*/ /* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */ /* USER CODE BEGIN PTD */
@ -97,9 +97,9 @@ int main(void)
MX_LoRaWAN_Init(); MX_LoRaWAN_Init();
/* USER CODE BEGIN 2 */ /* USER CODE BEGIN 2 */
STS_Sensor_Init();
/* USER CODE END 2 */ /* USER CODE END 2 */
STS_Sensor_Prepare();
/* Infinite loop */ /* Infinite loop */
/* USER CODE BEGIN WHILE */ /* USER CODE BEGIN WHILE */

View File

@ -185,7 +185,52 @@ char sts_presence_fall_detection_message[10][20]={
/* USER CODE END PFP */ /* USER CODE END PFP */
/* Exported functions --------------------------------------------------------*/ /* Exported functions --------------------------------------------------------*/
#if 0
void STS_Sensor_Init(void)
{
/// **************************************************************************** TO-DO LIST
STS_REBOOT_CONFIG_Init();
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventRFAC), UTIL_SEQ_RFU, STS_YunhornSTSEventRFAC_Process);
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), UTIL_SEQ_RFU, STS_YunhornSTSEventP1_Process);
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP2), UTIL_SEQ_RFU, STS_YunhornSTSEventP2_Process);
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP3), UTIL_SEQ_RFU, STS_YunhornSTSEventP3_Process);
#if 0
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP4), UTIL_SEQ_RFU, STS_YunhornSTSEventP4_Process);
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP5), UTIL_SEQ_RFU, STS_YunhornSTSEventP5_Process);
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP6), UTIL_SEQ_RFU, STS_YunhornSTSEventP6_Process);
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP7), UTIL_SEQ_RFU, STS_YunhornSTSEventP7_Process);
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP8), UTIL_SEQ_RFU, STS_YunhornSTSEventP8_Process);
#endif
#if defined(STS_O7)||defined(STS_O6)
UTIL_TIMER_Create(&YunhornSTSRSSWakeUpTimer, YUNHORN_STS_RSS_WAKEUP_CHECK_TIME, UTIL_TIMER_ONESHOT, OnYunhornSTSOORSSWakeUpTimerEvent, NULL);
UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer);
UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer, YUNHORN_STS_HEART_BEAT_CHECK_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSHeartBeatTimerEvent, NULL);
UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
UTIL_TIMER_Start(&STSLampBarColorTimer);
//UTIL_TIMER_Start(&STSDurationCheckTimer);
#else
UTIL_TIMER_Create(&YunhornSTSSamplingCheckTimer, YUNHORN_STS_SAMPLING_CHECK_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSSamplingCheckTimerEvent, NULL);
UTIL_TIMER_Start(&YunhornSTSSamplingCheckTimer);
#endif
}
#endif
void STS_Sensor_Prepare(void)
{
}
void STS_YunhornAuthenticationCode_Process(void) void STS_YunhornAuthenticationCode_Process(void)
{ {
if ((sts_ac_code[0] == 0x00) && (sts_ac_code[19]== 0x0)) { if ((sts_ac_code[0] == 0x00) && (sts_ac_code[19]== 0x0)) {

View File

@ -86,8 +86,10 @@ volatile bool p2_work_finished=true;
extern volatile uint8_t luminance_level; extern volatile uint8_t luminance_level;
uint8_t outbuf[255]={0x0}; uint8_t outbuf[255]={0x0};
volatile static bool r_b=true; volatile static bool r_b=true;
volatile uint8_t sts_cfg_nvm_factory_default[64]={0xF0}; static uint8_t nvm_stored_value[2*YUNHORN_STS_MAX_NVM_CFG_SIZE]={0x0};
static void STS_Show_STS_CFG_NVM(uint8_t * nvm_store_value); static uint8_t sts_cfg_nvm_factory_default[YUNHORN_STS_MAX_NVM_CFG_SIZE];
static void STS_Show_STS_CFG_NVM(uint8_t * store_value, uint16_t store_size);
volatile sts_cfg_nvm_t sts_cfg_nvm = { volatile sts_cfg_nvm_t sts_cfg_nvm = {
sts_mtmcode1, sts_mtmcode1,
sts_mtmcode2, sts_mtmcode2,
@ -669,6 +671,9 @@ void LoRaWAN_Init(void)
} }
/* USER CODE BEGIN LoRaWAN_Init_Last */ /* USER CODE BEGIN LoRaWAN_Init_Last */
/* VVVVVV migrated to yunhorn_sts_process.c */
#if 0
/// **************************************************************************** TO-DO LIST /// **************************************************************************** TO-DO LIST
STS_REBOOT_CONFIG_Init(); STS_REBOOT_CONFIG_Init();
@ -700,9 +705,55 @@ void LoRaWAN_Init(void)
UTIL_TIMER_Create(&YunhornSTSSamplingCheckTimer, YUNHORN_STS_SAMPLING_CHECK_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSSamplingCheckTimerEvent, NULL); UTIL_TIMER_Create(&YunhornSTSSamplingCheckTimer, YUNHORN_STS_SAMPLING_CHECK_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSSamplingCheckTimerEvent, NULL);
UTIL_TIMER_Start(&YunhornSTSSamplingCheckTimer); UTIL_TIMER_Start(&YunhornSTSSamplingCheckTimer);
#endif #endif
#endif
/* VVVVVV migrated to yunhorn_sts_process.c */
/* USER CODE END LoRaWAN_Init_Last */ /* USER CODE END LoRaWAN_Init_Last */
} }
void STS_Sensor_Init(void)
{
/* VVVVVV migrated to yunhorn_sts_process.c */
// #if 0
/// **************************************************************************** TO-DO LIST
STS_REBOOT_CONFIG_Init();
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventRFAC), UTIL_SEQ_RFU, STS_YunhornSTSEventRFAC_Process);
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), UTIL_SEQ_RFU, STS_YunhornSTSEventP1_Process);
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP2), UTIL_SEQ_RFU, STS_YunhornSTSEventP2_Process);
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP3), UTIL_SEQ_RFU, STS_YunhornSTSEventP3_Process);
#if 0
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP4), UTIL_SEQ_RFU, STS_YunhornSTSEventP4_Process);
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP5), UTIL_SEQ_RFU, STS_YunhornSTSEventP5_Process);
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP6), UTIL_SEQ_RFU, STS_YunhornSTSEventP6_Process);
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP7), UTIL_SEQ_RFU, STS_YunhornSTSEventP7_Process);
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP8), UTIL_SEQ_RFU, STS_YunhornSTSEventP8_Process);
#endif
#if defined(STS_O7)||defined(STS_O6)
UTIL_TIMER_Create(&YunhornSTSRSSWakeUpTimer, YUNHORN_STS_RSS_WAKEUP_CHECK_TIME, UTIL_TIMER_ONESHOT, OnYunhornSTSOORSSWakeUpTimerEvent, NULL);
UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer);
UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer, YUNHORN_STS_HEART_BEAT_CHECK_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSHeartBeatTimerEvent, NULL);
UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
UTIL_TIMER_Start(&STSLampBarColorTimer);
//UTIL_TIMER_Start(&STSDurationCheckTimer);
#else
UTIL_TIMER_Create(&YunhornSTSSamplingCheckTimer, YUNHORN_STS_SAMPLING_CHECK_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSSamplingCheckTimerEvent, NULL);
UTIL_TIMER_Start(&YunhornSTSSamplingCheckTimer);
#endif
// #endif
/* VVVVVV migrated to yunhorn_sts_process.c */
}
/* USER CODE BEGIN PB_Callbacks */ /* USER CODE BEGIN PB_Callbacks */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
@ -2665,6 +2716,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, uint8_t tlv_buf_size)
for (uint8_t j=0; j < YUNHORN_STS_AC_CODE_SIZE; j++) for (uint8_t j=0; j < YUNHORN_STS_AC_CODE_SIZE; j++)
{ {
sts_cfg_nvm.ac[j] = sts_ac_code[j]; sts_cfg_nvm.ac[j] = sts_ac_code[j];
sts_cfg_nvm_factory_default[NVM_AC_CODE_START+j] = sts_ac_code[j];
} }
sts_service_mask = STS_SERVICE_MASK_L0; sts_service_mask = STS_SERVICE_MASK_L0;
@ -2678,11 +2730,13 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, uint8_t tlv_buf_size)
} }
i=0;
UTIL_MEM_set_8((void*)outbuf, 0x0, sizeof(outbuf)); UTIL_MEM_set_8((void*)outbuf, 0x0, sizeof(outbuf));
UTIL_MEM_cpy_8((void*)outbuf,(void*)tlv_buf, tlv_buf_size); UTIL_MEM_cpy_8((void*)outbuf,(void*)tlv_buf, tlv_buf_size);
i = tlv_buf_size;
STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf);
} }
} // END OF USER_APP_AUTO_RESPONDER_Parse } // END OF USER_APP_AUTO_RESPONDER_Parse
@ -2753,8 +2807,8 @@ void STS_SENSOR_Upload_Message(uint8_t appDataPort, uint8_t appBufferSize, uint8
void OnStoreSTSCFGContextRequest(void) void OnStoreSTSCFGContextRequest(void)
{ {
/* USER CODE BEGIN OnStoreContextRequest_1 */ /* USER CODE BEGIN OnStoreContextRequest_1 */
uint8_t i=0,j=0,nvm_store_value[2*YUNHORN_STS_MAX_NVM_CFG_SIZE]={0x0}; uint8_t i=0,j=0;
#if 0
//#if (defined(STS_O7)||defined(STS_O5) || defined(STS_O6) || defined(STS_R0) || defined(STS_R5)|| defined(STS_R4)|| defined(STS_R1D)) //#if (defined(STS_O7)||defined(STS_O5) || defined(STS_O6) || defined(STS_R0) || defined(STS_R5)|| defined(STS_R4)|| defined(STS_R1D))
sts_cfg_nvm.length = STS_O7_NVM_CFG_SIZE; sts_cfg_nvm.length = STS_O7_NVM_CFG_SIZE;
nvm_store_value[i++] = sts_cfg_nvm.mtmcode1; nvm_store_value[i++] = sts_cfg_nvm.mtmcode1;
@ -2792,17 +2846,40 @@ void OnStoreSTSCFGContextRequest(void)
} }
} }
//#endif //#endif
#endif
UTIL_MEM_cpy_8(nvm_stored_value, &sts_cfg_nvm, sizeof(sts_cfg_nvm));
UTIL_MEM_cpy_8(nvm_stored_value + YUNHORN_STS_MAX_NVM_CFG_SIZE, (const void*)sts_cfg_nvm_factory_default, sizeof(sts_cfg_nvm_factory_default));
/* USER CODE END OnStoreContextRequest_1 */ /* USER CODE END OnStoreContextRequest_1 */
/* store nvm in flash */ /* store nvm in flash */
if (FLASH_IF_Erase(STS_CONFIG_NVM_BASE_ADDRESS, FLASH_PAGE_SIZE) == FLASH_IF_OK) if (FLASH_IF_Erase(STS_CONFIG_NVM_BASE_ADDRESS, FLASH_PAGE_SIZE) == FLASH_IF_OK)
{ {
APP_LOG(TS_OFF, VLEVEL_M, "\r\n %%%%% write CFG to normal NVM \r\n"); #if 0
APP_LOG(TS_OFF, VLEVEL_M, "\r\n %%%%% transfer CFG to normal NVM section \r\n");
FLASH_IF_Write(STS_CONFIG_NVM_BASE_ADDRESS, (const void *)nvm_store_value, YUNHORN_STS_MAX_NVM_CFG_SIZE); // FLASH_IF_Write(STS_CONFIG_NVM_BASE_ADDRESS, (const void *)nvm_store_value, YUNHORN_STS_MAX_NVM_CFG_SIZE);
FLASH_IF_Write(FLASH_MFG_DEFAULT_START_ADDR, (const void *)nvm_store_value, YUNHORN_STS_MAX_NVM_CFG_SIZE); // FLASH_IF_Write(FLASH_MFG_DEFAULT_START_ADDR, (const void *)nvm_store_value, YUNHORN_STS_MAX_NVM_CFG_SIZE);
//uint8_t nvm_state=(uint8_t *)FLASH_MFG_DEFAULT_START_ADDR;
switch (nvm_state)
{
case 0xF0: // Initial state
break;
case 0xF2:
break;
case 0xF3:
break;
default:
break;
}
if (sts_cfg_nvm_factory_default[0] == 0xF0) if (sts_cfg_nvm_factory_default[0] == 0xF0)
{ {
APP_LOG(TS_OFF, VLEVEL_M, "\r\n %%%%% write CFG to MFG DEFAULT SECTOR NVM \r\n"); APP_LOG(TS_OFF, VLEVEL_M, "\r\n %%%%% write CFG to MFG DEFAULT SECTOR NVM \r\n");
@ -2814,7 +2891,7 @@ void OnStoreSTSCFGContextRequest(void)
} else { } else {
sts_cfg_nvm_factory_default[0] = 0xF2; // no good ac code yet sts_cfg_nvm_factory_default[0] = 0xF2; // no good ac code yet
} }
FLASH_IF_Write(FLASH_MFG_DEFAULT_START_ADDR, (const void *)sts_cfg_nvm_factory_default, YUNHORN_STS_MAX_NVM_CFG_SIZE); // FLASH_IF_Write(FLASH_MFG_DEFAULT_START_ADDR, (const void *)sts_cfg_nvm_factory_default, YUNHORN_STS_MAX_NVM_CFG_SIZE);
APP_LOG(TS_OFF, VLEVEL_M, "\r\n $$$$$$$$$ FINISHED write CFG to MFG DEFAULT SECTOR NVM \r\n"); APP_LOG(TS_OFF, VLEVEL_M, "\r\n $$$$$$$$$ FINISHED write CFG to MFG DEFAULT SECTOR NVM \r\n");
@ -2828,9 +2905,13 @@ void OnStoreSTSCFGContextRequest(void)
APP_LOG(TS_OFF, VLEVEL_M, "\r\n %%%%% write CFG to Factory Default NVM with good AC code\r\n"); APP_LOG(TS_OFF, VLEVEL_M, "\r\n %%%%% write CFG to Factory Default NVM with good AC code\r\n");
sts_cfg_nvm_factory_default[0] = 0xF3; // with valid ac code sts_cfg_nvm_factory_default[0] = 0xF3; // with valid ac code
FLASH_IF_Write(FLASH_MFG_DEFAULT_START_ADDR, (const void *)sts_cfg_nvm_factory_default, YUNHORN_STS_MAX_NVM_CFG_SIZE); // FLASH_IF_Write(FLASH_MFG_DEFAULT_START_ADDR, (const void *)sts_cfg_nvm_factory_default, YUNHORN_STS_MAX_NVM_CFG_SIZE);
} }
#endif
// final write once only
FLASH_IF_Write(STS_CONFIG_NVM_BASE_ADDRESS, (const void *)nvm_stored_value, sizeof(sts_cfg_nvm)+sizeof(sts_cfg_nvm_factory_default));
} }
/* USER CODE BEGIN OnStoreContextRequest_Last */ /* USER CODE BEGIN OnStoreContextRequest_Last */
@ -2841,25 +2922,27 @@ void OnStoreSTSCFGContextRequest(void)
void OnRestoreSTSCFG_FactoryDefault_ContextRequest(void) void OnRestoreSTSCFG_FactoryDefault_ContextRequest(void)
{ {
//uint8_t nvm_store_value[2*YUNHORN_STS_MAX_NVM_CFG_SIZE]={0x0};
APP_LOG(TS_OFF, VLEVEL_M, "Restore Defatory Default NVM ********************** \r\n"); APP_LOG(TS_OFF, VLEVEL_M, "Restore Factory Default NVM ********************** \r\n");
/* USER CODE END OnRestoreSTSCFGContextRequest_1 */ /* USER CODE END OnRestoreSTSCFGContextRequest_1 */
FLASH_IF_Read((void*)sts_cfg_nvm_factory_default, (void*)FLASH_MFG_DEFAULT_START_ADDR, YUNHORN_STS_MAX_NVM_CFG_SIZE); FLASH_IF_Read((void*)sts_cfg_nvm_factory_default, (void*)STS_CONFIG_NVM_BASE_ADDRESS+YUNHORN_STS_MAX_NVM_CFG_SIZE, YUNHORN_STS_MAX_NVM_CFG_SIZE);
STS_Show_STS_CFG_NVM((uint8_t*)sts_cfg_nvm_factory_default); UTIL_MEM_cpy_8(nvm_stored_value, sts_cfg_nvm_factory_default, YUNHORN_STS_MAX_NVM_CFG_SIZE);
UTIL_MEM_cpy_8(&nvm_stored_value+YUNHORN_STS_MAX_NVM_CFG_SIZE, sts_cfg_nvm_factory_default, YUNHORN_STS_MAX_NVM_CFG_SIZE);
STS_Show_STS_CFG_NVM((uint8_t*)nvm_stored_value, sizeof(nvm_stored_value));
if (FLASH_IF_Erase(STS_CONFIG_NVM_BASE_ADDRESS, FLASH_PAGE_SIZE) == FLASH_IF_OK) if (FLASH_IF_Erase(STS_CONFIG_NVM_BASE_ADDRESS, FLASH_PAGE_SIZE) == FLASH_IF_OK)
{ {
APP_LOG(TS_OFF, VLEVEL_M, "\r\n %%%%% write CFG to normal NVM \r\n"); APP_LOG(TS_OFF, VLEVEL_M, "\r\n %%%%% write CFG to normal NVM \r\n");
FLASH_IF_Write(STS_CONFIG_NVM_BASE_ADDRESS, (const void *)sts_cfg_nvm_factory_default, YUNHORN_STS_MAX_NVM_CFG_SIZE); FLASH_IF_Write(STS_CONFIG_NVM_BASE_ADDRESS, (const void *)nvm_stored_value, 2*YUNHORN_STS_MAX_NVM_CFG_SIZE);
FLASH_IF_Write(FLASH_MFG_DEFAULT_START_ADDR, (const void *)sts_cfg_nvm_factory_default, YUNHORN_STS_MAX_NVM_CFG_SIZE); //FLASH_IF_Write(FLASH_MFG_DEFAULT_START_ADDR, (const void *)sts_cfg_nvm_factory_default, YUNHORN_STS_MAX_NVM_CFG_SIZE);
sts_cfg_nvm_factory_default[0] = 0xF3; // with valid ac code
//sts_cfg_nvm_factory_default[0] = 0xF3; // with valid ac code
} }
} }
@ -2886,11 +2969,11 @@ void OnRestoreSTSCFGContextRequest(void *cfg_in_nvm)
void STS_REBOOT_CONFIG_Init(void) void STS_REBOOT_CONFIG_Init(void)
{ {
/* USER CODE BEGIN OnRestoreContextRequest_1 */ /* USER CODE BEGIN OnRestoreContextRequest_1 */
uint8_t nvm_stored_value[YUNHORN_STS_MAX_NVM_CFG_SIZE]={0x0}; //uint8_t nvm_stored_value[2*YUNHORN_STS_MAX_NVM_CFG_SIZE]={0x0};
/* USER CODE END OnRestoreContextRequest_1 */ /* USER CODE END OnRestoreContextRequest_1 */
//UTIL_MEM_cpy_8(nvm_stored_value, (void *)STS_CONFIG_NVM_BASE_ADDRESS, YUNHORN_STS_MAX_NVM_CFG_SIZE); //UTIL_MEM_cpy_8(nvm_stored_value, (void *)STS_CONFIG_NVM_BASE_ADDRESS, YUNHORN_STS_MAX_NVM_CFG_SIZE);
FLASH_IF_Read(nvm_stored_value, STS_CONFIG_NVM_BASE_ADDRESS, YUNHORN_STS_MAX_NVM_CFG_SIZE); FLASH_IF_Read(nvm_stored_value, STS_CONFIG_NVM_BASE_ADDRESS, 2*YUNHORN_STS_MAX_NVM_CFG_SIZE);
#if 0 #if 0
if (sts_cfg_nvm_factory_default[0] != 0x46) // for normal boot process if (sts_cfg_nvm_factory_default[0] != 0x46) // for normal boot process
{ {
@ -2903,7 +2986,7 @@ void STS_REBOOT_CONFIG_Init(void)
APP_LOG(TS_OFF, VLEVEL_M, "\r\n %%%%% read config from Factory Default nvm \r\n"); APP_LOG(TS_OFF, VLEVEL_M, "\r\n %%%%% read config from Factory Default nvm \r\n");
} }
#endif #endif
STS_Show_STS_CFG_NVM((uint8_t*)nvm_stored_value); STS_Show_STS_CFG_NVM((uint8_t*)nvm_stored_value, sizeof(nvm_stored_value));
/* USER CODE BEGIN OnRestoreContextRequest_Last */ /* USER CODE BEGIN OnRestoreContextRequest_Last */
@ -2911,11 +2994,14 @@ void STS_REBOOT_CONFIG_Init(void)
if ((nvm_stored_value[NVM_MTM1] != sts_mtmcode1) || (nvm_stored_value[NVM_MTM2] != sts_mtmcode2) || (nvm_stored_value[NVM_VER] != sts_version)) if ((nvm_stored_value[NVM_MTM1] != sts_mtmcode1) || (nvm_stored_value[NVM_MTM2] != sts_mtmcode2) || (nvm_stored_value[NVM_VER] != sts_version))
{ {
APP_LOG(TS_OFF, VLEVEL_M, "Initial Boot with Empty Config, Flash with default config....\r\n"); APP_LOG(TS_OFF, VLEVEL_M, "Initial Boot with Empty Config, Flash with default config....\r\n");
UTIL_MEM_cpy_8(sts_cfg_nvm_factory_default, &sts_cfg_nvm, (sizeof(sts_cfg_nvm)));
OnStoreSTSCFGContextRequest(); OnStoreSTSCFGContextRequest();
//UTIL_MEM_set_8((void *)sts_ac_code, 0x00, YUNHORN_STS_AC_CODE_SIZE); //UTIL_MEM_set_8((void *)sts_ac_code, 0x00, YUNHORN_STS_AC_CODE_SIZE);
HAL_Delay(1000); HAL_Delay(1000);
} else } else
{ {
UTIL_MEM_cpy_8(sts_cfg_nvm_factory_default, nvm_stored_value+YUNHORN_STS_MAX_NVM_CFG_SIZE, YUNHORN_STS_MAX_NVM_CFG_SIZE);
sts_cfg_nvm.mtmcode1 = (uint8_t)nvm_stored_value[NVM_MTM1]; sts_cfg_nvm.mtmcode1 = (uint8_t)nvm_stored_value[NVM_MTM1];
sts_cfg_nvm.mtmcode2 = (uint8_t)nvm_stored_value[NVM_MTM2]; sts_cfg_nvm.mtmcode2 = (uint8_t)nvm_stored_value[NVM_MTM2];
sts_cfg_nvm.version = (uint8_t)nvm_stored_value[NVM_VER]; sts_cfg_nvm.version = (uint8_t)nvm_stored_value[NVM_VER];
@ -2951,11 +3037,14 @@ void STS_REBOOT_CONFIG_Init(void)
for (uint8_t j=0; j< YUNHORN_STS_AC_CODE_SIZE; j++) { for (uint8_t j=0; j< YUNHORN_STS_AC_CODE_SIZE; j++) {
sts_cfg_nvm.ac[j] = (uint8_t)nvm_stored_value[NVM_AC_CODE_START +j]; sts_cfg_nvm.ac[j] = (uint8_t)nvm_stored_value[NVM_AC_CODE_START +j];
} }
#if 0
if ((sts_cfg_nvm.ac[0] != 0x0) && (sts_cfg_nvm.ac[19] != 0x0)) { if ((sts_cfg_nvm.ac[0] != 0x0) && (sts_cfg_nvm.ac[19] != 0x0)) {
sts_cfg_nvm_factory_default[0] = 0xF3; // with good ac code already sts_cfg_nvm_factory_default[0] = 0xF3; // with good ac code already
} else { } else {
sts_cfg_nvm_factory_default[0] = 0xF2; // no good ac code yet sts_cfg_nvm_factory_default[0] = 0xF2; // no good ac code yet
} }
#endif
} }
//#endif //#endif
@ -3144,11 +3233,11 @@ uint32_t STS_Get_Date_Time_Stamp(void)
return (uint32_t)UnixEpoch.Seconds; return (uint32_t)UnixEpoch.Seconds;
} }
static void STS_Show_STS_CFG_NVM(uint8_t * store_value) static void STS_Show_STS_CFG_NVM(uint8_t * store_value, uint16_t store_size)
{ {
APP_LOG(TS_OFF, VLEVEL_M, "\n-----------------------------------------------\n"); APP_LOG(TS_OFF, VLEVEL_M, "\n-----------------------------------------------\n");
APP_LOG(TS_OFF, VLEVEL_M, "\n00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15\n"); APP_LOG(TS_OFF, VLEVEL_M, "\n00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15\n");
for (uint8_t i=0; i<YUNHORN_STS_MAX_NVM_CFG_SIZE; i++) for (uint16_t i=0; i< store_size; i++)
{ {
if (i%16==0) APP_LOG(TS_OFF, VLEVEL_M, "\n"); if (i%16==0) APP_LOG(TS_OFF, VLEVEL_M, "\n");
APP_LOG(TS_OFF, VLEVEL_M, "%02X ", store_value[i]); APP_LOG(TS_OFF, VLEVEL_M, "%02X ", store_value[i]);

Binary file not shown.