This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RTOS/IWR1443BOOST: How to add a CLI parameter

Part Number: IWR1443BOOST

Tool/software: TI-RTOS

Hi,

I want to add a parameter for the sensitivity to the high accuracy lab. How do i go about this? I couldn't find where the UART data gets received and processed.

cheers

  • Hi Jason,

    Are you going to modify the existing cli command or adding a new one?
    Under high accuracy lab 14xx folder, there's a file called mmw_high_accu_14xx_cli.c, you'll find where the cli command is defined.

    Let me know if you have any question.

    Thanks and Regards,
    Michelle
  • adding a new one. I can make the new function to process the new command, but where do i call this function? I want to add a parameter for the sensitivity to set a variable/flexible threshold for peak searching. i want the parameter to be db.


    cheers

  • The function of cli command can be called in the data_path.c file where I guess the peak search function is.

    Thanks and Regards,
    Michelle
  • Hi,

    I have added this to the file mmw_high_accu_14xx_cli.c :

     // my addition to handle threshold CLI parameter
        cliCfg.tableEntry[cnt].cmd            = "Threshold";
       cliCfg.tableEntry[cnt].helpString     = NULL; //"<threshold value, suggested 5>"; //"<enabled> <min_range> <max_range> ";
       cliCfg.tableEntry[cnt].cmdHandlerFxn  = CLI_Threshold;
       cnt++;
    

    but this function doesnt seem to be called at all. i put a System_printf statement in the function, but i do not see its output in the consol, i see from other functions in the same file however, and all my other System_printf statements are working fine. Can you help me out, i dont understand why its not working.

    function:

    static int32_t CLI_Threshold(int32_t argc, char* argv[])
    {
        int threshold = 0 ;
        char buff[100];
    
        threshold = (int) atoi(argv[1]);
        sprintf(buff, "threshold in CLI_Threshold: %i\t", threshold);
    
        if (argc != 2)
        {
            CLI_write ("Error: Invalid usage of the CLI command\n");
            return -1;
        }
    
        if (threshold < 0)
        {
            CLI_write ("Error: Invalid, negative threshold\n");
            return -1;
        }
    
        gMmwMCB.dataPathObj.CFAR_Threshold   = threshold; //(int) atoi (argv[1]);
        sprintf(buff + strlen(buff), "CFAR_Threshold: %i\t", gMmwMCB.dataPathObj.CFAR_Threshold);
        System_printf(buff);
        return 0;
    }

    cheers

  • Hi Jason,

    Where is this function being called?

    Thanks and Regards,
    Michelle
  • Hi Michelle,

    That is my question, given the other functions i couldn't figure out where they are called. is it not in:

    
    
    // my addition to handle threshold CLI parameter
       cliCfg.tableEntry[cnt].cmd            = "Threshold";
      cliCfg.tableEntry[cnt].helpString     = NULL; //"<threshold value, suggested 5>"; //"<enabled> <min_range> <max_range> ";
      cliCfg.tableEntry[cnt].cmdHandlerFxn  = CLI_Threshold;
      cnt++;

    Because that's what i thought. Where should i be calling this function upon receiving UART commands?

    cheers

  • Jason,

    You'll need to call the function where you use the input value of threshold for peak detection.

    Thanks and Regards,
    Michelle
  • I put the CLI parameter in a the obj via the function CLI_Threshold. When the calculations are done during peaksearch, the calculation function already has the value at hand via the obj. However i cannot find where the CLI handles the parameter. Thats what i'm looking for. I thought the above was how to do that, but my function is never called. When i compare to the other functions, they have the same strategy, and i copied them.

    What exactly am i doing wrong?

    cheers
  • Hi, i tried rebuilding the CLI libraries in utils folder. make clean command worked fine, but make all won't work

    now when building my project i get this error:

    error #10008-D: cannot find file "libosal_iwr14xx.aer4f"
    error #10008-D: cannot find file "libesm_iwr14xx.aer4f"
    error #10008-D: cannot find file "libgpio_iwr14xx.aer4f"
    error #10008-D: cannot find file "libsoc_iwr14xx.aer4f"
    error #10008-D: cannot find file "libpinmux_iwr14xx.aer4f"
    error #10008-D: cannot find file "libcrc_iwr14xx.aer4f"
    error #10008-D: cannot find file "libuart_iwr14xx.aer4f"
    error #10008-D: cannot find file "libmailbox_iwr14xx.aer4f"
    error #10008-D: cannot find file "libmmwavelink_iwr14xx.aer4f"
    error #10008-D: cannot find file "libmmwave_iwr14xx.aer4f"
    error #10008-D: cannot find file "libadcbuf_iwr14xx.aer4f"
    error #10008-D: cannot find file "libdma_iwr14xx.aer4f"
    error #10008-D: cannot find file "libedma_iwr14xx.aer4f"
    error #10008-D: cannot find file "libcli_iwr14xx.aer4f"
    error #10008-D: cannot find file "libhwa_iwr14xx.aer4f"
     
     undefined                        first referenced            
      symbol                              in file                 
     ---------                        ----------------            
     ADCBuf_Params_init               ./main.obj                  
     ADCBuf_control                   ./main.obj                  
     ADCBuf_init                      ./main.obj                  
     ADCBuf_open                      ./main.obj                  
     CLI_getMMWaveExtensionConfig     ./sensor_mgmt.obj           
     CLI_getMMWaveExtensionOpenConfig ./sensor_mgmt.obj           
     CLI_open                         ./mmw_high_accu_14xx_cli.obj
     CLI_write                        ./main.obj                  
     EDMA_getNumInstances             ./data_path.obj             
     EDMA_init                        ./data_path.obj             
     ESM_init                         ./main.obj                  
     GPIO_enableInt                   ./sensor_mgmt.obj           
     GPIO_init                        ./main.obj                  
     GPIO_setCallback                 ./sensor_mgmt.obj           
     GPIO_setConfig                   ./sensor_mgmt.obj           
     GPIO_write                       ./sensor_mgmt.obj           
     HWA_configCommon                 ./data_path.obj             
     HWA_configParamSet               ./data_path.obj             
     HWA_configRam                    ./data_path.obj             
     HWA_enable                       ./data_path.obj             
     HWA_enableDoneInterrupt          ./data_path.obj             
     HWA_init                         ./data_path.obj             
     HWA_open                         ./data_path.obj             
     HWA_reset                        ./data_path.obj             
     HWA_setDMA2ACCManualTrig         ./data_path.obj             
     MMWave_config                    ./sensor_mgmt.obj           
     MMWave_decodeError               ./sensor_mgmt.obj           
     MMWave_execute                   ./main.obj                  
     MMWave_getChirpCfg               ./main.obj                  
     MMWave_getChirpHandle            ./main.obj                  
     MMWave_getNumChirps              ./main.obj                  
     MMWave_getProfileCfg             ./main.obj                  
     MMWave_init                      ./main.obj                  
     MMWave_open                      ./sensor_mgmt.obj           
     MMWave_start                     ./main.obj                  
     MMWave_stop                      ./sensor_mgmt.obj           
     MMWave_sync                      ./main.obj                  
     Mailbox_init                     ./main.obj                  
     Pinmux_Set_FuncSel               ./main.obj                  
     Pinmux_Set_OverrideCtrl          ./main.obj                  
     SOC_init                         ./main.obj                  
     SOC_registerSysIntListener       ./main.obj                  
     UART_Params_init                 ./main.obj                  
     UART_init                        ./main.obj                  
     UART_open                        ./main.obj                  
     UART_writePolling                ./main.obj                  
     _DebugP_assert                   ./data_path.obj             
     
    error #10234-D: unresolved symbols remain
    error #10010: errors encountered during linking; "iwr14xx_high_accuracy_mss.xer4f" not built
     
    >> Compilation failure
    makefile:167: recipe for target 'iwr14xx_high_accuracy_mss.xer4f' failed
    makefile:163: recipe for target 'main-build' failed
    gmake[2]: *** [iwr14xx_high_accuracy_mss.xer4f] Error 1
    makefile:158: recipe for target 'all' failed
    gmake[1]: *** [main-build] Error 2
    gmake: *** [all] Error 2
    
    **** Build Finished ****
    

    how do i fix this? i haven't had these issues before. again, all because i ran make clean.

  • This is the output i get when running gmake all:

    how do i proceed?

    cheers

  • Jason,

    Did you setup the compiling environment first?

    Thanks and Regards
    Michelle
  • Yes i did, see the setenv.bat script output and contents: 

    thank you,

    Jason

  • Jason,

    You don't need to modify the cli under sdk. Only the cli in high accuracy lab. Follow what the cli command ranglimit, it is similar.

    Thanks and Regards,
    Michelle
  • Hi,

    I changed the hardcoded parameters, only added one line. Issue now is that i can't build the cli files. i changed the line back and i still can't compile, keep getting the same make output as above.

    according to this thread it may have something to do with a bad debugging session, i had just debugged as well. can you help me out?

    https://e2e.ti.com/support/sensors/f/1023/t/611827

    i have reinstalled the mmwave_toolbox and the mmwave_sdk_ version 1.02, same error on all projects, not just one.

    reinstalled them several times, same result.

    please help out

    cheers

  • Hi, i seem to have fixed it.
    upon reinstalling the sdk i found an empty folder of the sdk in my windows start menu. deleting these seemed to fix the issue.

    Thank you,
    Jason