Files
checker_slave/source/elec_det/test/Test.c
ranchuan 17b4ebf188 移植Test命令,验证成功
EJ EX 写工厂信息验证成功
2023-10-12 18:43:17 +08:00

598 lines
18 KiB
C

#include "base/define.h"
#include "stdlib.h"
#include "hardware/gpio_cfg.h"
#include "base/delay.h"
#include "hardware/adc_cfg.h"
#include "hardware/power.h"
#include "base/utility.h"
//#include "usartapp.h"
#include "driver/jqdriver.h"
#include "interface/jqchecker.h"
//#include "database.h"
#include "driver/XTDriver.h"
#include "interface/Basechecker.h"
#include "elec_io.h"
volatile uint16_t jq_adc_test_buf[2048];
static void OutGroup1(uint32_t count,uint32_t delay,uint32_t cycle)
{
__disable_irq();
while(count > 0)
{
PCout(OUTBH_Pin_Nu) = 1;
PBout(OUTAH_Pin_Nu) = 1;
delay_us(delay);
PBout(OUTBL_Pin_Nu) = 0;
PBout(OUTAL_Pin_Nu) = 0;
delay_us(cycle);
PCout(OUTBH_Pin_Nu) = 0;
PBout(OUTAH_Pin_Nu) = 0;
delay_us(delay);
PBout(OUTBL_Pin_Nu) = 1;
PBout(OUTAL_Pin_Nu) = 1;
delay_us(cycle);
count--;
}
__enable_irq();
}
static void GpioTest(int argc, char**argv)
{
uint32_t io_value = 0;
uint32_t count = 0,delay,cycle;
if (argc < 3)
{
goto IO_help_label_;
}
if(argc == 3)
{
io_value = atoi(argv[2]);
}
if (!rt_strcmp(argv[1], "LAVC_M"))
{
PAout(LAVC_M_Pin_Nu) = io_value;
}else if(!rt_strcmp(argv[1], "SEG0"))
{
rt_kprintf("Read SEG4 value = %d \n",PCin(SEG0_Pin_Nu));
}else if(!rt_strcmp(argv[1], "R10_ON"))
{
PBout(R10_ON_Pin_Nu) = io_value;
}else if(!rt_strcmp(argv[1], "R510_ON")){
PBout(R510_ON_Pin_Nu) = io_value;
}else if(!rt_strcmp(argv[1], "LED1")){
PBout(LED1_Pin_Nu) = io_value;
}else if(!rt_strcmp(argv[1], "IO_APD12")){
PBout(IO_APD12_Pin_Nu) = io_value;
}else if(!rt_strcmp(argv[1], "LED2")){
PBout(LED2_Pin_Nu) = io_value;
}else if(!rt_strcmp(argv[1], "OUTAL"))
{
PBout(OUTAL_Pin_Nu) = io_value;
}else if(!rt_strcmp(argv[1], "OUTBL"))
{
PBout(OUTBL_Pin_Nu) = io_value;
}else if(!rt_strcmp(argv[1], "OUTAH"))
{
PBout(OUTAH_Pin_Nu) = io_value;
}else if(!rt_strcmp(argv[1], "R100_ON"))
{
PCout(R100_ON_Pin_Nu) = io_value;
}else if(!rt_strcmp(argv[1], "OUTBH"))
{
PCout(OUTBH_Pin_Nu) = io_value;
}
else if(!rt_strcmp(argv[1], "Power_ON"))
{
PCout(POWER_ON_Pin_Nu) = io_value;
}else if(!rt_strcmp(argv[1], "SEG4"))
{
rt_kprintf("Read SEG4 value = %d \n",PCin(SEG4_Pin_Nu));
}else if(!rt_strcmp(argv[1], "SEG3"))
{
rt_kprintf("Read SEG4 value = %d \n",PCin(SEG3_Pin_Nu));
}else if(!rt_strcmp(argv[1], "SEG1"))
{
rt_kprintf("Read SEG4 value = %d \n",PCin(SEG1_Pin_Nu));
}else if(!rt_strcmp(argv[1], "SEG2"))
{
rt_kprintf("Read SEG4 value = %d \n",PCin(SEG2_Pin_Nu));
}else if(!rt_strcmp(argv[1], "IO_APD22"))
{
PCout(IO_APD22_Pin_Nu) = io_value;
}else if(!rt_strcmp(argv[1], "IO_APD21"))
{
PCout(IO_APD21_Pin_Nu) = io_value;
}else if(!rt_strcmp(argv[1], "IO_APD11"))
{
PCout(IO_APD11_Pin_Nu) = io_value;
}
else if(!rt_strcmp(argv[1], "Group1"))
{
count = atoi(argv[2]);
delay = atoi(argv[3]);
cycle = atoi(argv[4]);
OutGroup1(count,delay,cycle);
}
else
{
IO_help_label_:
rt_kprintf("IO [IO_name] 0/1/R \n");
rt_kprintf("IO Group[number] count delay cycle \n");
}
}
MSH_CMD_EXPORT_ALIAS(GpioTest,IO,I/O Input Output test);
static void DACTest(int argc, char**argv)
{
uint32_t da_value = 0;
if (argc < 3)
{
goto DAC_help_label_;
}
if(argc == 3)
{
da_value = atoi(argv[2]);
}
if(!rt_strcmp(argv[1], "C_H_DAC"))
{
if(da_value < 125)
{
rt_kprintf("C_H_DAC Min value 1400");
}else{
C_H_DAC_Set(da_value);
}
}else if(!rt_strcmp(argv[1], "C_M_DAC"))
{
C_M_DAC_Set(da_value);
}else{
DAC_help_label_:
rt_kprintf("DA [C_H_DAC/C_M_DAC] Value(0~4096) \n");
}
}
MSH_CMD_EXPORT_ALIAS(DACTest,DA,Out DA Voltage);
static void ADCTest(int argc, char**argv)
{
uint16_t adv;
uint16_t ul_count = 0;
if (argc < 2)
{
goto ADC_help_label_;
}else if(!rt_strcmp(argv[1], "V_LA_M"))
{
GetADC1_Value(V_LA_M_CH,&adv,1);
rt_kprintf("V_LA_M = %d \n",adv);
}else if(!rt_strcmp(argv[1], "V_LA_H"))
{
GetADC1_Value(V_LA_H_CH,&adv,1);
rt_kprintf("V_LA_H = %d \n",adv);
}else if(!rt_strcmp(argv[1], "VCC_2V5"))
{
GetADC1_Value(VCC_2V5_CH,&adv,1);
rt_kprintf("VCC_2V5 = %d \n",adv);
}else if(!rt_strcmp(argv[1], "VCC_1V25"))
{
GetADC1_Value(VCC_1V25_CH,&adv,1);
rt_kprintf("VCC_1V25 = %d \n",adv);
}else if(!rt_strcmp(argv[1], "RAD_01"))
{
GetADC1_Value(RAD_01_CH,&adv,1);
rt_kprintf("RAD_01 = %d \n",adv);
}else if(!rt_strcmp(argv[1], "AD_OUTA"))
{
GetADC1_Value(AD_OUTA_CH,&adv,1);
rt_kprintf("AD_OUTA = %d \n",adv);
}
else if(!rt_strcmp(argv[1], "AD_OUTB"))
{
GetADC1_Value(AD_OUTB_CH,&adv,1);
rt_kprintf("AD_OUTB = %d \n",adv);
}
else if(!rt_strcmp(argv[1], "V_BASE"))
{
GetADC1_Value(ADC_Channel_17,&adv,1);
rt_kprintf("V_BASE = %d \n",adv);
}else if(!rt_strcmp(argv[1], "TEMP"))
{
GetADC1_Value(ADC_Channel_16,&adv,1);
rt_kprintf("TEMP = %d \n",adv);
}
else if(!rt_strcmp(argv[1], "AN_UA"))
{
StartADC2Channel(AN_UA_CH,ADC_SPEED_MIDLE);
rt_kprintf("AN_UA = %d \n",GetADC1_Fast());
}else if(!rt_strcmp(argv[1], "AN_MAL"))
{
StartADC2Channel(AN_MAL_CH,ADC_SPEED_MIDLE);
rt_kprintf("AN_MAL = %d \n",GetADC1_Fast());
}
else if(!rt_strcmp(argv[1], "FMA"))
{
JQBUS_OFF;
rt_kprintf("Close Bus \n");
delay_ms(1000);
rt_kprintf("Open Bus \n");
POWER_ON;
StartADC2Channel(AN_MAL_CH,ADC_SPEED_HIGH);
Power_SetSampleCurrentRange(R100_0p2mA_3mA_MC);
JQBUS_ON;
delay_ms(1);
ul_count = 0;
while(ul_count < 2048)
{
jq_adc_test_buf[ul_count++] = GetADC1_Fast();
}
ul_count = 0;
rt_kprintf("Sample data \n");
while(ul_count < 2048)
{
rt_kprintf("%d\t%d\t%d\t%d\n",jq_adc_test_buf[ul_count],jq_adc_test_buf[ul_count+1],jq_adc_test_buf[ul_count+2],jq_adc_test_buf[ul_count+3]);
ul_count +=4;
}
}
else if(!rt_strcmp(argv[1], "FUA"))
{
JQBUS_OFF;
rt_kprintf("Close Bus \n");
delay_ms(1000);
rt_kprintf("Open Bus \n");
StartADC2Channel(AN_UA_CH,ADC_SPEED_HIGH);
POWER_ON;
Power_SetSampleCurrentRange(R10_0p1mA_1p6mA_UC);
JQBUS_ON;
delay_ms(1);
ul_count = 0;
while(ul_count < 2048)
{
jq_adc_test_buf[ul_count++] = GetADC1_Fast();
}
ul_count = 0;
rt_kprintf("Sample data \n");
while(ul_count < 2048)
{
rt_kprintf("%d\t%d\t%d\t%d\n",jq_adc_test_buf[ul_count],jq_adc_test_buf[ul_count+1],jq_adc_test_buf[ul_count+2],jq_adc_test_buf[ul_count+3]);
ul_count +=4;
}
}
else{
ADC_help_label_:
rt_kprintf("AD [ChannelName] \n");
rt_kprintf("AD FUA / FMA \n");
}
}
MSH_CMD_EXPORT_ALIAS(ADCTest,AD,Get AD Value);
static void PowerTest(int argc, char**argv)
{
PowerInfo_st infos_st;
if (argc < 2)
{
goto FB_help_label_;
}else if(!rt_strcmp(argv[1], "ON"))
{
POWER_ON
}else if(!rt_strcmp(argv[1], "OFF"))
{
POWER_OFF
}
else if(!rt_strcmp(argv[1], "HV"))
{
rt_kprintf("POWER HV(10) %d \n" , Power_GetHPowerV());
}else if(!rt_strcmp(argv[1], "MV"))
{
rt_kprintf("POWER MV(10) %d \n" , Power_GetMPowerV());
}else if(!rt_strcmp(argv[1], "CURRENT")){
rt_kprintf("CURRENT 0.1uA %d \n" , Power_GetCurrent());
}else if(!rt_strcmp(argv[1], "SET"))
{
infos_st.V_LAH = atoi(argv[2]);
infos_st.V_LAM = atoi(argv[3]);
infos_st.V_LAH_DAC = 0;
infos_st.V_LAM_DAC = 0;
PowerCalibration(&infos_st);
if( infos_st.V_LAH_DAC > 0)
PowerSetVoltage(&infos_st);
}
else{
FB_help_label_:
rt_kprintf("POWER [ ON |HV | MV | CURRENT] \n");
rt_kprintf("POWER [SET] [HV max 260] [MV ] \n");
}
}
MSH_CMD_EXPORT_ALIAS(PowerTest ,POWER, BUS POWER );
extern Checker_RunCfg_st checker_runcfg;
static void CheckerTest(int argc, char**argv)
{
uint32_t h_power,m_power;
uint16_t us_array[20];
uint8_t* puc_buf;
uint16_t us_temp;
rt_memset(&checker_runcfg,0,sizeof(Checker_RunCfg_st));
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 CH_help_label_;
}else if(!rt_strcmp(argv[1], "ON")){
JQBUS_ON
}else if(!rt_strcmp(argv[1], "OFF")){
JQBUS_OFF
}
else if(!rt_strcmp(argv[1], "H")){
JQBUS_W_1
}else if(!rt_strcmp(argv[1], "L")){
JQBUS_W_0
}else if(!rt_strcmp(argv[1], "CURRENT")){
}else if(!rt_strcmp(argv[1], "PowerPrapare")){
Checker_PowerPrapare();
rt_kprintf("PowerPrapare Excute %d \n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "PowerOn")){
checker_runcfg.rtv_count = 2;
JQ_Test_PowerOn();
rt_kprintf("PowerOn Excute %d BusV %d Energy %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1] );
}else if(!rt_strcmp(argv[1], "SetBusV")){
checker_runcfg.rtv_count = 1;
JQ_Test_SetBusV();
rt_kprintf("SetBusV Excute %d BusV %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0] );
}else if(!rt_strcmp(argv[1], "BaseCur")){
checker_runcfg.rtv_count = 2;
JQ_Test_BaseCur();
rt_kprintf("BaseCur Excute %d BusCur1 %d BusCur2 %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1] );
}
else if(!rt_strcmp(argv[1], "ScanUID")){
checker_runcfg.rtv_count = 8;
JQ_Test_ScanUID();
rt_kprintf("ScanUID excute %d, max_cur %d, max_time %d, min_cur %d, min_time %d UID\t",\
checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1],checker_runcfg.Test_Rtv[2],checker_runcfg.Test_Rtv[3]);
us_temp = 0;
while(us_temp < 4)
{
printf("%02x ",(checker_runcfg.Test_Rtv[us_temp+4]) & 0x0FF);
printf("%02x ",(checker_runcfg.Test_Rtv[us_temp+4]>>8) & 0x0FF);
us_temp++;
}
printf("\n");
}else if(!rt_strcmp(argv[1], "ReadChipID")){
checker_runcfg.rtv_count = 1;
JQ_Test_ReadChipID();
printf("ReadChipID Excute %d ChipID %04x \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
}else if(!rt_strcmp(argv[1], "PWCheck")){
JQ_Test_PWCheck();
printf("PWCheck Excute %d \n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "OTPCheck")){
JQ_Test_OTPCheck();
printf("OTPCheck Excute %d \n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "FTCheck")){
JQ_Test_FTCheck();
printf("FTCheck Excute %d \n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "ReadState")){
checker_runcfg.rtv_count = 1;
JQ_Test_ReadState();
printf("ReadState Excute %d State %02x\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
}else if(!rt_strcmp(argv[1], "WriteUserInfo")){
JQ_Test_WriteUserInfo();
printf("WriteUserInfo Excute %d \n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "ChgEnergy")){
checker_runcfg.rtv_count = 4;
JQ_Test_ChgEnergy();
printf("ReadState Excute %d Energy_0.1ms %d ",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
printf("EndCur_0.1uA %d ",checker_runcfg.Test_Rtv[1]);
printf("MaxCur_0.1mA %d ",checker_runcfg.Test_Rtv[2]);
printf("ShakeADV %d \n",checker_runcfg.Test_Rtv[3]);
}else if(!rt_strcmp(argv[1], "CheckDAC")){
checker_runcfg.rtv_count = 1;
JQ_Test_CheckDAC();
printf("CheckDAC Excute %d End_DAC %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
}else if(!rt_strcmp(argv[1], "WaitDelay")){
checker_runcfg.rtv_count = 1;
Checker_WaitDelay();
printf("CheckDAC Excute %d End_DAC %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
}else if(!rt_strcmp(argv[1], "SetDelay")){
JQ_Test_SetDelay();
printf("SetDelay Excute %d \n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "ReadDelay")){
checker_runcfg.rtv_count = 1;
JQ_Test_ReadDelay();
printf("ReadDelay Excute %d Delay %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
}else if(!rt_strcmp(argv[1], "ClkTrim")){
JQ_Test_ClkTrim();
printf("ClkTrim Excute %d\n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "Discharge")){
JQ_Test_Discharge();
printf("Discharge Excute %d\n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "Reset")){
JQ_Test_Reset();
printf("Reset Excute %d\n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "BootEn")){
JQ_Test_BootEn();
printf("BootEn Excute %d\n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "ClearBoom")){
JQ_Test_ClearBoom();
printf("ClearBoom Excute %d\n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "BoomEnergy")){
checker_runcfg.rtv_count = 4;
JQ_Test_BoomEnergy();
printf("BoomEnergy Excute %d Energy_0.1ms %d ",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
printf("PlusShakeADV %d ",checker_runcfg.Test_Rtv[1]);
printf("MaxChgCur_0.1mA %d ",checker_runcfg.Test_Rtv[2]);
printf("ChgShakeADV %d \n",checker_runcfg.Test_Rtv[3]);
}else if(!rt_strcmp(argv[1], "EnCommEndCur")){
JQ_Test_EnCommEndCur();
printf("BootEn Excute %d\n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "GetCommEndCur")){
checker_runcfg.rtv_count = 1;
JQ_Test_GetCommEndCur();
printf("GetCommEndCur Excute %d CommCur %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
}else if(!rt_strcmp(argv[1], "PowerOff")){
JQ_Test_PowerOff();
printf("PowerOff Excute %d\n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "WriteOTP")){
HexStrings2Byte(argv+4,argc-4,(uint8_t*)(&checker_runcfg.params[2]),8);
JQ_Test_WriteOTP();
printf("WriteOTP Excute %d\n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "ReadOTP")){
us_temp = checker_runcfg.params[1];
checker_runcfg.rtv_count = (us_temp + 1)/2;
JQ_Test_ReadOTP();
printf("ReadOTP Excute %d ReadDatas ",checker_runcfg.Task_Result[0]);
puc_buf = (uint8_t*)checker_runcfg.Test_Rtv;
while(us_temp > 0)
{
printf("%02x ",*puc_buf++);
us_temp--;
}
printf("\n");
}else if(!rt_strcmp(argv[1], "WriteBuf2OTP")){
JQ_Test_WriteBuf2OTP();
printf("WriteBuf2OTP Excute %d \n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "BindUIDPWD")){
memcpy(us_array,argv[2],strlen(argv[2]));
UidCode_YM2JQ(checker_runcfg.writeuid,(uint8_t*)us_array);
m_power = GetPasswordByUidCode((uint8_t*)us_array);
memcpy(checker_runcfg.writepwd,(uint8_t*)&m_power ,4);
checker_runcfg.pwd_len = 4;
checker_runcfg.uid_len = 8;
JQ_UID_PWD_Bind();
printf("BindUIDPWD Excute %d \n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "VerifyUIDPWD")){
JQ_Verify_UID_PWD();
printf("VerifyUIDPWD Excute %d \n",checker_runcfg.Task_Result[0]);
}
else if(!rt_strcmp(argv[1], "SetHardVer")){
HexStrings2Byte(argv+2,argc-2,(uint8_t*)(&boardinfo_un.boardinfo.hard_v),2);
SaveBoardInfo();
printf("SetHardVer %04x\n",boardinfo_un.boardinfo.hard_v);
}else if(!rt_strcmp(argv[1], "SetRsisDiff")){
boardinfo_un.boardinfo.resistor_diff = checker_runcfg.params[0];
SaveBoardInfo();
printf("SetRsisDiff %d\n",boardinfo_un.boardinfo.resistor_diff);
}else if(!rt_strcmp(argv[1], "ReadBoard")){
LoadBoardInfo();
printf("BootFlag %08x HardVersion %02x RsistorDiff %d\n",\
boardinfo_un.boardinfo.bootflag,boardinfo_un.boardinfo.hard_v,boardinfo_un.boardinfo.resistor_diff);
}else if(!rt_strcmp(argv[1], "ExcuePlan")){
Ye_RunPlanCheckTest();
}
else if(!rt_strcmp(argv[1], "SetWriteBuf")){
HexStrings2Byte(argv+2,argc-2,Checker_FacBuf+2,CHECKER_FAC_BUF_LEN-2);
if(argc > CHECKER_FAC_BUF_LEN)
{
Checker_FacBuf[0] = CHECKER_FAC_BUF_LEN-2;
}else{
Checker_FacBuf[0] = argc-2;
}
Checker_FacBuf[1] = CheckCRC_8(Checker_FacBuf+2,Checker_FacBuf[0]);
printf("SetWriteBuf Excute 0 \n");
}else if(!rt_strcmp(argv[1], "ResistorSample")){
checker_runcfg.rtv_count = 1;
Checker_ResistorSample();
printf("CheckPWD Excute %d Res(0.01) %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
}else if(!rt_strcmp(argv[1], "CapVoltage")){
checker_runcfg.rtv_count = 1;
JQ_Test_CapVoltage();
printf("CheckPWD Excute %d Res(0.01) %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
}else if(!rt_strcmp(argv[1], "EnOTPW")){
JQ_Test_EnOTPW();
printf("EnOTPW Excute %d\n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "WriteVersion")){
JQ_Test_WriteVersion();
printf("WriteVersion Excute %d\n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "ReadVersion")){
checker_runcfg.rtv_count = 1;
JQ_Test_ReadVersion();
printf("ReadVersion Excute %d Ver %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
}else if(!rt_strcmp(argv[1], "WriteFacBuff")){
JQ_Test_WriteFacBuff();
printf("WriteFacBuff Excute %d\n",checker_runcfg.Task_Result[0]);
}else if(!rt_strcmp(argv[1], "VerifyFacBuff")){
JQ_Test_VerifyFacBuff();
printf("VerifyFacBuff Excute %d ",checker_runcfg.Task_Result[0]);
}
else{
CH_help_label_:
rt_kprintf("CH [ON | OFF | H | L ] \n");
rt_kprintf("PowerPrapare [V1,V2,V3...V10] \n");
rt_kprintf("PowerOn [Voltage] [TimeOut] [End_ADC_V] \n");
rt_kprintf("SetBusV [Voltage] \n");
rt_kprintf("BaseCur \n");
rt_kprintf("ScanUID [EN_CommCur] [E_UID_Equal_0] \n");
rt_kprintf("PWCheck [EN_PW_0] \n");
rt_kprintf("ReadChipID \n");
rt_kprintf("OTPCheck [EN_UID_PWD_0] [EN_Delay_Re_0] [EN_Factory_0]\n");
rt_kprintf("FTCheck \n");
rt_kprintf("ReadState [State_Mask] \n");
rt_kprintf("WriteUserInfo [2bytes] [2bytes]\n");
rt_kprintf("ChgEnergy [End_ADV] [Sample_timeout] [End_Cur_0.1] [Wait_Timeout] [Chg_Hold]\n");
rt_kprintf("CheckDAC [Bg_DAC] [End_DAC]\n");
rt_kprintf("WaitDelay [Delay_0.1S] [En_Monitor] \n");
rt_kprintf("SetDelay [Delay] \n");
rt_kprintf("ReadDelay \n");
rt_kprintf("ClkTrim [Cycle_us] [Pluse_count] \n");
rt_kprintf("Discharge \n");
rt_kprintf("Reset \n");
rt_kprintf("BoomEnergy [End_ADV] [Plus_Count] [DelaySample_ms]\n");
rt_kprintf("BootEn \n");
rt_kprintf("ClearBoom \n");
rt_kprintf("EnCommEndCur \n");
rt_kprintf("GetCommEndCur \n");
rt_kprintf("PowerOff \n");
rt_kprintf("WriteOTP [OTP_Addr] [Write_Len] [DATA ...]\n");
rt_kprintf("ReadOTP [OTP_Addr] [Read_Len] \n");
rt_kprintf("WriteBuf2OTP [OTP_Addr] [Buffer_Addr] [WriteLen] \n");
rt_kprintf("BindUIDPWD [uid_str] \n");
rt_kprintf("VerifyUIDPWD \n");
rt_kprintf("SetHardVer [HardVersion 2Bytes] \n");
rt_kprintf("SetRsisDiff [RsistorDiff *100] \n");
rt_kprintf("ReadBoardInfo \n");
rt_kprintf("ExcuePlan \n");
rt_kprintf("SetWriteBuf [HexData...]\n");
rt_kprintf("ResistorSample [Test_Modle]\n");
rt_kprintf("CapVoltage [WaitTime 0.1S]\n");
rt_kprintf("EnOTPW \n");
rt_kprintf("WriteVersion [Product Ver] \n");
rt_kprintf("ReadVersion \n");
rt_kprintf("WriteFacBuff [otp_addr][buf_bg][w_len] \n");
rt_kprintf("VerifyFacBuff [otp_addr][buf_bg][r_len] \n");
}
}
MSH_CMD_EXPORT_ALIAS(CheckerTest ,JCH, BUS POWER );