更新EW模块驱动

This commit is contained in:
ranchuan
2023-10-31 18:12:21 +08:00
parent 873029149d
commit a83444b3c8
17 changed files with 3483 additions and 355 deletions

View File

@@ -231,13 +231,13 @@ static void EWDriverTest(int argc, char**argv)
}else if(!rt_strcmp(argv[1], "SetAddr")){
puc_buf = (uint8_t*)us_array;
memcpy(argv[3],puc_buf,strlen(argv[3]));
us_temp = EW_SetAddrByUID(checker_runcfg.params[0],puc_buf,strlen(argv[3])-1,(uint8_t*)checker_runcfg.Test_Rtv);
us_temp = EW_SetAddrByUID(checker_runcfg.params[0],puc_buf,strlen(argv[3])-1);
printf("SetAddr Excute %d delay %d state %04X\n",us_temp,checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1]);
}else if(!rt_strcmp(argv[1], "FastSet")){
puc_buf = (uint8_t*)us_array;
memcpy(argv[5],puc_buf,strlen(argv[5]));
us_temp = EW_FastSetByUID(checker_runcfg.params[0],checker_runcfg.params[1],checker_runcfg.params[2],puc_buf,strlen(argv[5])-1,(uint8_t*)checker_runcfg.Test_Rtv);
printf("FastSet Excute %d delay %d state %04X\n",us_temp,checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1]);
us_temp = EW_FastSetByUID(checker_runcfg.params[0],checker_runcfg.params[1],puc_buf,strlen(argv[5])-1,(uint8_t*)checker_runcfg.Test_Rtv);
printf("FastSet Excute %d delay %d\n",us_temp,checker_runcfg.Test_Rtv[0]);
}else if(!rt_strcmp(argv[1], "SetDelay")){
us_temp = EW_SetDelay(checker_runcfg.params[0],checker_runcfg.params[1]);
printf("SetDelay Excute %d \n",us_temp);
@@ -377,3 +377,112 @@ static void EWDriverTest(int argc, char**argv)
}
}
MSH_CMD_EXPORT_ALIAS(EWDriverTest ,EW, EWPro Driver );
static void EWBDriverTest(int argc, char**argv)
{
uint16_t us_array[20];
uint8_t* puc_buf;
uint16_t us_temp;
uint32_t ul_temp;
rt_memset(&checker_runcfg.params,0,sizeof(checker_runcfg.params));
rt_memset(&checker_runcfg.Task_Result,0,sizeof(checker_runcfg.Task_Result));
checker_runcfg.excue_rtv = 0;
checker_runcfg.param_count = 0;
checker_runcfg.rtv_count = 0;
checker_runcfg.rtv_index = 0;
checker_runcfg.task_info.runindex = 0;
if(argc > 2)
{
checker_runcfg.param_count = argc-2;
us_temp = 0;
while(us_temp < checker_runcfg.param_count)
{
checker_runcfg.params[us_temp] = atoi(argv[us_temp+2]);
us_temp++;
}
}
if (argc < 2)
{
goto EW_help_label_;
}else if(!rt_strcmp(argv[1], "BUS_H")){
EW_DIFF_MOD_H
}else if(!rt_strcmp(argv[1], "BUS_L")){
EW_DIFF_MOD_L
}else if(!rt_strcmp(argv[1], "BUS_M")){
EW_DIFF_MOD_M
}else if(!rt_strcmp(argv[1], "BUS_OFF")){
HMOS_SWITCH_OFF
}else if(!rt_strcmp(argv[1], "BUS_ON")){
HMOS_SWITCH_ON
}
else if(!rt_strcmp(argv[1], "BUS_CUR")){
printf("BUS_CUR %d \r\n",Power_GetCurrent());
}
else if(!rt_strcmp(argv[1], "SetV")){
us_temp = PowerCalibration_set(checker_runcfg.params[0],checker_runcfg.params[1]);
printf("SetV Excute %d\n",us_temp);
}
else if(!rt_strcmp(argv[1], "ChgCtrl")){
us_temp = EWB_ChgCtrl(checker_runcfg.params[0]);
printf("ChgCtrl Excute %d \n",us_temp);
}else if(!rt_strcmp(argv[1], "EraseMTP")){
us_temp = EWB_EraseMTP(checker_runcfg.params[0],checker_runcfg.params[1]);
printf("EraseMTP Excute %d\n",us_temp);
}else if(!rt_strcmp(argv[1], "EraseCode")){
us_temp = EWB_EraseCode();
printf("EraseCode Excute %d\n",us_temp);
}else if(!rt_strcmp(argv[1], "ReadMTP")){
puc_buf = (uint8_t*)us_array;
memset(us_array,0,checker_runcfg.params[1]+1);
us_temp = EWB_ReadMTP(checker_runcfg.params[0],checker_runcfg.params[1],puc_buf);
printf("ReadMTP Excute %d \n",us_temp);
for(us_temp = 0; us_temp < checker_runcfg.params[1]; us_temp++)
{
printf("%02X ",puc_buf[us_temp]);
if((us_temp + 1) %8 == 0)
{
printf("\n");
}
}
if((us_temp + 1) %8 != 0)
{
printf("\n");
}
}else if(!rt_strcmp(argv[1], "CacluCrc32")){
us_temp = EWB_CacluCrc32(checker_runcfg.params[0],checker_runcfg.params[1],&ul_temp);
printf("CacluCrc32 Excute %d %08X\n",us_temp,ul_temp);
}else if(!rt_strcmp(argv[1], "RunApp")){
us_temp = EWB_RunApp();
printf("RunApp Excute %d\n",us_temp);
}else if(!rt_strcmp(argv[1], "WriteMTP")){
HexStrings2Byte(argv+4,argc-4,(uint8_t*)us_array,sizeof(us_array));
us_temp = EWB_WriteMTP(checker_runcfg.params[0],(const uint8_t*)us_array,checker_runcfg.params[1]);
printf("WriteMTP Excute %d\n",us_temp);
}
else{
EW_help_label_:
rt_kprintf("BUS_H Out High Voltage");
rt_kprintf("BUS_M Out Midle Voltage\n");
rt_kprintf("BUS_L Out High Voltage other side\n");
rt_kprintf("BUS_OFF Close Bus\n");
rt_kprintf("BUS_ON Open Bus\n");
rt_kprintf("BUS_CUR Get Bus Current\n");
rt_kprintf("SetV [Hight_V] [Midle_V]\n");
rt_kprintf("ChgCtrl [Chg_SW] \n");
rt_kprintf("EraseMTP [bgaddr][endaddr]\n");
rt_kprintf("EraseCode \n");
rt_kprintf("ReadMTP [bgaddr][read_len] \n");
rt_kprintf("CacluCrc32 [bgaddr][endaddr] \n");
rt_kprintf("RunApp \n");
rt_kprintf("WriteMTP [MTP Addr][w_len] [hex data]\n");
}
}
MSH_CMD_EXPORT_ALIAS(EWBDriverTest ,EWB, EW BootLoader Driver );