#include "elec_det.h" #include "commend.h" #include "mystring.h" #include "mystdlib.h" #include "hardware/jw3425iic.h" #include "hardware/power.h" #include "interface/BaseChecker.h" #include "base/define.h" #include "base/utility.h" #include "interface/EWChecker.h" // 电子模块相关调试命令 #define UPDATA_CRC_ALL ((uint32_t *)(MC_CODE_ADDR+16*1024))[0] #define UPDATA_CRC_APP ((uint32_t *)(MC_CODE_ADDR+16*1024))[1] #define UPDATA_FILE_NAME ((const char *)(MC_CODE_ADDR+16*1024+8)) // 运行检测方案 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); crc32=UPDATA_CRC_ALL; cmd_print("rom name:%s.",UPDATA_FILE_NAME); boardinfo_un.boardinfo.mc_ICodeCrc32=crc32; cmd_print("crc32=0x%04x.",crc32); ret=PowerCalibration_set(85,55); if(ret==0){ MC_IICUpdateMTP(); ret=checker_runcfg.excue_rtv; } PowerCalibration_set(POWER_DEF_V,45); POWER_OFF; 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)<3){ cmd_print("param num too less."); return -1; } int bus_hv=str_atoi(list_get_str(argv,1)); int bus_mv=str_atoi(list_get_str(argv,2)); int ret=0; if(bus_hv>0){ ret=PowerCalibration_set(bus_hv,bus_mv); } else{ ret=PowerCalibration_set(POWER_DEF_V,45); POWER_OFF; } cmd_print("cmd end,ret=%d.",ret); return 0; } commend_export(bus_power,cmd_set_bus_power,"set bus power,param:bus_high_v,bus_mid_v")