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.

AWR1642: Add custom CLI commands to implement dynamic chirp configuration, but error is reported when calling the CLI command

Part Number: AWR1642
Other Parts Discussed in Thread: SYSBIOS

Hi team,

Here's an issue from the customer may need your help:

The code modification is based on SRR demo and only USRR mode is enabled. In the Mss_SRR_CLI.c file, the customer added a new CLI command and its callback function:

    cliCfg.tableEntry[4].cmd            = "reconfiguration";
    cliCfg.tableEntry[4].helpString     = "Idle time";
    cliCfg.tableEntry[4].cmdHandlerFxn  = SRR_MSS_CLIChirpReconfiguration;

static int32_t SRR_MSS_CLIChirpReconfiguration(int32_t argc, char* argv[])
{
    int32_t retVal;
    rlDynChirpCfg_t dynChirpCfg[1U];
    unsigned int cnt;
    dynChirpCfg[0].chirpRowSelect=0x30;    //Enables only chirp row 3 to be reconfigured
    dynChirpCfg[0].chirpSegSel=0;
    dynChirpCfg[0].programMode=0;
    for(cnt=0;cnt<2;cnt++)
    {
        dynChirpCfg[0].chirpRow[cnt].chirpNR3=(rlUInt32_t)atoi(argv[0]);
    }
    rlDynChirpCfg_t *dynChirpData[1]=&dynChirpCfg[0];

    retVal=rlSetDynChirpCfg(RL_DEVICE_MAP_INTERNAL_BSS,4U,&dynChirpData[0]);

    /* Check for mmWaveLink API call status */
    if (retVal != RL_RET_CODE_OK)
        {
            System_printf("Error: Unable to configure the dynamic chirp [Error %d]\n",retVal);
            return -1;
        }
    rlDynChirpEnCfg_t dynChirpEnCfg = {0};
    retVal = rlSetDynChirpEn(RL_DEVICE_MAP_INTERNAL_BSS, &dynChirpEnCfg);
    if(retVal != RL_RET_CODE_OK)
    {
        /* Error: Link reported an issue. */
        System_printf("Error: rlSetDynChirpEn retVal=%d\n", retVal);
        return -1;
    }
    return 0;
}

The CLI commands advFrameCfg and sensorStart perform well during debug, but after entering the custom reconfiguration command, the following error occurs: 

[Cortex_R4_0] Debug: Launched the Initialization Task
Debug: Initialized the mmWave module
Debug: Synchronized the mmWave module
Debug: CLI is operational
[C674X_0] Heap L1 : size 16384 (0x4000), free 1216 (0x4c0)
Heap L3 : size 786432 (0xc0000), free 229376 (0x38000)
Heap L2 : size 49152 (0xc000), free 27040 (0x69a0)
[Cortex_R4_0] Debug: MMWave has been configured for SRR.
Debug: Sensor will start momentarily.
Exception occurred in ThreadType_Task.
Task handle: 0x8005ce0.
Task stack base: 0x8005d40.
Task stack size: 0x1000.
R0 = 0x00000000 R8 = 0xffffffff
R1 = 0x00000000 R9 = 0x080099a0
R2 = 0x08006a28 R10 = 0x0800985c
R3 = 0x00000001 R11 = 0xffffffff
R4 = 0x00000000 R12 = 0x00000000
R5 = 0x00000000 SP(R13) = 0x08006b60
R6 = 0x00010000 LR(R14) = 0x00009919
R7 = 0x00000007 PC(R15) = 0x00080000
PSR = 0x400c019f
DFSR = 0x00000000 IFSR = 0x0000000d
DFAR = 0x00000000 IFAR = 0x00080000
ti.sysbios.family.arm.exc.Exception: line 201: E_prefetchAbort: pc = 0x00080000, lr = 0x00009919.
xdc.runtime.Error.raise: terminating execution

Could you help check it? Thanks.

Best Regards,

Cherry