Files
checker_slave/source/elec_det/elec_cmd.c
2023-10-08 18:27:10 +08:00

118 lines
2.9 KiB
C

#include "elec_det.h"
#include "commend.h"
#include "mystring.h"
#include "mystdlib.h"
#include "hardware/jw3425iic.h"
#include "interface/BaseChecker.h"
#include "base/define.h"
#include "base/utility.h"
#include "interface/EWChecker.h"
// 电子模块相关调试命令
// 运行检测方案
static int cmd_check(list_def *argv)
{
array_def *data=arr_creat();
cmd_print("start check.");
array_def *r=elec_check_with_scheme(data);
arr_delete(data);
cmd_print("check end,ret=%s.",str_temp(arr_string(r)));
return 0;
}
commend_export(check,cmd_check,"start check")
// 通过iic擦除芯片
static int cmd_iic_erase(list_def *argv)
{
if(list_length(argv)<3){
cmd_print("param num too less.");
return -1;
}
int mtp_addr=str_atoi(list_get_str(argv,1));
int erase_mode=str_atoi(list_get_str(argv,2));
int ret=0;
checker_runcfg.params[0]=(uint16_t)mtp_addr;
checker_runcfg.params[1]=(uint16_t)erase_mode;
checker_runcfg.param_count=2;
MC_EraseMTP();
ret=checker_runcfg.excue_rtv;
cmd_print("cmd end,ret=%d.",ret);
return 0;
}
commend_export(iic_erase,cmd_iic_erase,"erase mtp via iic,param:mtp_addr,erase_mode")
// 通过iic升级芯片
static int cmd_iic_updata(list_def *argv)
{
if(list_length(argv)<3){
cmd_print("param num too less.");
return -1;
}
int mtp_addr=str_atoi(list_get_str(argv,1));
int data_length=str_atoi(list_get_str(argv,2));
int ret=0;
uint32_t crc32=0;
checker_runcfg.params[0]=(uint16_t)mtp_addr;
checker_runcfg.params[1]=(uint16_t)data_length;
checker_runcfg.param_count=2;
crc32=Crc32Calu((uint32_t*)MC_CODE_ADDR,16*1024);
boardinfo_un.boardinfo.mc_ICodeCrc32=crc32;
cmd_print("crc32=0x%04x.",crc32);
MC_IICUpdateMTP();
ret=checker_runcfg.excue_rtv;
cmd_print("cmd end,ret=%d.",ret);
return 0;
}
commend_export(iic_updata,cmd_iic_updata,"updata mtp via iic,param:mtp_addr,data_length")
// 通过iic读取mtp
static int cmd_iic_read(list_def *argv)
{
if(list_length(argv)<3){
cmd_print("param num too less.");
return -1;
}
int mtp_addr=str_atoi(list_get_str(argv,1));
int data_length=str_atoi(list_get_str(argv,2));
int ret=0;
checker_runcfg.params[0]=(uint16_t)mtp_addr;
checker_runcfg.params[1]=(uint16_t)data_length;
checker_runcfg.param_count=2;
MC_IICReadMTP();
ret=checker_runcfg.excue_rtv;
cmd_print("cmd end,ret=%d.",ret);
return 0;
}
commend_export(iic_read,cmd_iic_read,"read mtp via iic,param:mtp_addr,data_length")
// 设置总线电压
static int cmd_set_bus_power(list_def *argv)
{
if(list_length(argv)<2){
cmd_print("param num too less.");
return -1;
}
int bus_v=str_atoi(list_get_str(argv,1));
int ret=0;
checker_runcfg.params[0]=(uint16_t)bus_v;
checker_runcfg.param_count=1;
EW_Test_SetBusV();
ret=checker_runcfg.excue_rtv;
cmd_print("cmd end,ret=%d.",ret);
}
commend_export(bus_power,cmd_set_bus_power,"set bus power,param:bus_power")