我将CLI初始化部分注释掉 并采用out of box文档中的方法 跳过CLI命令配置
我已在out of box工程中将跳过CLI的方法实现 使其能够自动进行配置并调用start Sensor函数
但在3D人员计数工程中 我采用了相同的方式进行 最后也是调用了start Sensor函数
结果程序调试后一直跑飞不报错
下图中 输出“CLI Remix Set”的部分是完成CLI配置 在这之后就是调用start Sensor函数
经过调试发现 每次程序跑飞都是在下图所示的函数中 也就是在执行函数Pcount3DDemo_DPM_ioctl_blocking中的DPM_ioctl语句时跑飞
下面附上我的CLI初始化重写代码:
void MmwDemo_sensorConfig_task(void) { int32_t errCode; /* Sanity Check: We need the mmWave handle to work. */ if (gMmwMssMCB.ctrlHandle == NULL) { return; } /* Initialize the mmWave control configuration: */ memset ((void *)&gMmwMssMCB.cfg.ctrlCfg, 0, sizeof(MMWave_CtrlCfg)); mmwave_freq_scale_factor = SOC_getDeviceRFFreqScaleFactor(gMmwMssMCB.socHandle, &errCode); if(errCode < 0) { return; } CLI_Remix_sensorStop(); CLI_Remix_flushCfg(); CLI_Remix_dfeDataOutputMode(1); CLI_Remix_channelCfg(15,7,0); CLI_Remix_adcCfg(2,1); CLI_Remix_adcbufCfg(-1,0,1,1,1); CLI_Remix_lowPower(0,0); CLI_Remix_profileCfg(0,60.75,30.00,25.00,59.10,394758,0,54.71,1,96,2950.00,2,1,36); CLI_Remix_chirpCfg(0,0,0,0,0,0,0,1); CLI_Remix_chirpCfg(1,1,0,0,0,0,0,2); CLI_Remix_chirpCfg(2,2,0,0,0,0,0,4); CLI_Remix_frameCfg(0,2,96,0,55.00,1,0); CLI_Remix_dynamicRACfarCfg(-1,4,4,2,2,8,12,4,12,5.00,8.00,0.40,1,1); CLI_Remix_staticRACfarCfg(-1,6,2,2,2,8,8,6,4,8.00,15.00,0.30,0,0); CLI_Remix_dynamicRangeAngleCfg(-1,0.75,0.0010,1,0); CLI_Remix_dynamic2DAngleCfg(-1,3.0,0.0300,1,0,1,0.30,0.85,8.00); CLI_Remix_staticRangeAngleCfg(-1,0,8,8); CLI_Remix_antGeometry0(-1,-1,0,0,-3,-3,-2,-2,-1,-1,0,0); CLI_Remix_antGeometry1(-1,0,-1,0,-3,-2,-3,-2,-3,-2,-3,-2); CLI_Remix_antPhaseRot(1,-1,1,-1,1,-1,1,-1,1,-1,1,-1); CLI_Remix_fovCfg(-1,70.0,70.0); CLI_Remix_compRangeBiasAndRxChanPhase(0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0); CLI_Remix_staticBoundaryBox(-3,3,0.5,7.5,0,3); CLI_Remix_boundaryBox(-4,4,0,8,0,3); CLI_Remix_sensorPosition(2,0,15); CLI_Remix_gatingParam(3,2,2,3,4); CLI_Remix_stateParam(3,3,12,500,5,6000); CLI_Remix_allocationParam(20,100,0.1,20,0.5,20); CLI_Remix_maxAcceleration(0.1,0.1,0.1); CLI_Remix_trackingCfg(1,2,800,30,46,96,55); CLI_Remix_presenceBoundaryBox(-3,3,0.5,7.5,0,3); System_printf("CLI Remix Set\n"); CLI_Remix_sensorStart(); return; }
该函数在Pcount3DDemo_CLIInit中进行调用:
void Pcount3DDemo_CLIInit (uint8_t taskPriority) { if(Remix_Flag) { MmwDemo_sensorConfig_task(); } else { CLI_Cfg cliCfg; char demoBanner[110]; uint32_t cnt; .......
当Remix_Flag为1时 只跑我的函数 为0时 跑原本的CLI初始化函数