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.

AWR1243: AM2732是否支持AWR1243

Part Number: AWR1243
Other Parts Discussed in Thread: AWR2243, AM2732,

您好,

请问当前AM2732是否支持单片的AWR1243呢,我们有个AWR1243的射频板想结合AM2732做下调试,我修改了编译环境里面对应的AWR2243的DFP包为支持1243的,如下:

然后编译运行,同样按照AWR2243+AM2732的方法编译固件,刷录,这些都是成功的,如下,刷录完成之后,在visualizer里面串口连接也是成功的,但是通过plots 里面LOAD CONFIG FROM PC AND SEND,下载如profile_2d_am273x.cfg参数配置时,好像没有成功,如下第二图第三图,请问此处AWR2243的参数配置命令和AWR1243有差异吗,有1243的相对应配置命令说明吗(是否跟DFP里面的命令有些差异),除了参数配置外,其他的地方软件是否还需要做修改调整,以使参数配置下载完成,visualizer中目标能实时显示?

谢谢。

  • 你好,

    请问是量产版本的AWR1243么?硬件上应该是支持的。能否连上仿真器,看看CCS console里的具体错误是什么?

  • 您好,

    CCS Console里面看着没啥错误啊,这个是在visualizer上单独下载的.cfg配置文件,是不是CCS里面没有运行这个参数下载,需要固化配置后才能在CCS Console里面看到参数下载的相关信息呢?

    当前在visualizer上能看到参数下发的log但是sensor start之后参数配置运行没有成功,硬件上应该是可以的,是不是软件哪里配置还需要修改调整呢?

    谢谢。

  • Kun,

    能否跟踪一下MmwDemo_CLISensorStart这个函数(C:\ti\mmwave_mcuplus_sdk_04_02_00_02\ti\demo\am273x\mmw\mss\mmw_cli.c),看具体挂在了哪里?

  • 不好意思,请问下这个需要新建CCS工程不,有新建说明吗,因为现在mss文件夹里几个文件是独立的,在CCS中没有链接起来,函数的调用没有完全关联起来,或者有其他方式能看到函数运行到哪里吗?

    谢谢。

  • 你好,

    如果你是在CCS下载可执行文件运行的话,代码一般会把相关文件关联起来的,如果找不到文件会出现locate file的提示,你手动选择相关文件。

  • 不好意思,因为之前在CCS里面Debug啥的是有一个完整工程的,但是这个地方在CCS中运行R5核(am273x_mmw_demo_mssTDM.xer5f)之后mss(mmwave_mcuplus_sdk_04_02_00_02\ti\demo\am273x\mmw\mss)文件里面各函数好像不能像之前那样查到函数链接调用的地方,请问这个地方比如运行R5核之后会各函数文件会自动关联起来的吗,当前在CCS中mss_main.c好像没有关联上mmw_cli.c,请问下此处还需要设置工程吗,或者有没有其他的办法可以查看函数运行到哪个地方报错呢,谢谢。

          

  • 你好,

    mss程序下载后运行应该会自动到main函数,你那里也是这样对么?

    你是否有尝试在CCS里打开mmw_cli.c文件,然后在里面打断点?

    如果不行,请打开view->Dissassembly,在下面红色划线框处输入函数名,然后回车,汇编会跳到相关代码处,你可以在Dissassembly窗口里打断点。

  • 非常抱歉,这么晚回复,我尝试在mmw_cli.c和Dissassembly里面加断点运行,然后一直出现如下GEL Expression:Gel_Go的运行状态,不同地方加断点都是这样的状态,也看不到程序具体运行状态,请问这是何原因呢,有可能此处的函数跟主函数还是没有关联上吗?

    谢谢。

  • 请问这个AWR1243参数运行问题有可能和visualizer的版本(当前用的4.2)以及serial port里面CFG_Port的波特率设置有关系吗?看1843这个里面有提到波特率的设置:AWR1843BOOST: Setting cfg using Visualizer - Sensors forum - Sensors - TI E2E support forums

    谢谢。

  • 请问针对AWR1243+AM2732和AWR2243+AM2732此处Init Calibration Status状态有什么差异吗?正常按照AWR2243+AM2732软硬件在visualizer中下载.cfg配置参数后,在sensor start之后会出现如下Debug:Init Calibration Status=0x1ffe   Done,然后就会在plots下看到参数配置信息及目标信息,但是AWR1243在sensor start之后是没有这个状态的,看下面的说明不同的平台此处的状态也不同,可能和这个有关系吗,AWR1243需要修改此处的配置吗,该如何修改呢?

    谢谢。

  • Kun,

    我无法复现你的问题,请看我的尝试如下,你可以通过locat file来关联相关文件。

  • 谢谢。

    图里面dss没有连接?需要下载mss、dss的代码,然后设置断点,然后在visualizer里下载cfg,这时候代码就会停止断点处了。

  • 不好意思,之前没怎么做过这个Debug调试,我再试下,这个image需要刷录am273x_ccsdebug.appimage是吧?

  • 这样应该可以,但是当前只有第二图那样的提示:Received RL_DEV_AE_MSSPOWERUPDOWN_SB(mss_main.c),请问是此处MSSPOWERUPDOWN的问题吗,console里面没有其他具体的错误。

  • Kun,

    你应该可以跟踪到rlSensorStart函数,你再仔细跟踪一下,具体是在哪里挂起了。

  • 您好,

    MmwDemo_CLISensorStart函数没有发现具体的错误提示呢,如果有运行错误,断点打在函数末端理应会报错吧,现在在中间和末端打断点都没有具体的错误提示,在如下OpenCfg以前没有提示,在OpenCfg以后会出现Received RL_DEV_AE_MSSPOWERUPDOWN_SB(mss_main.c)的log提示,而且visualizer中参数命令看着是下载完了的,相较AWR2243+AM2732的参数log少了Debug:Init Calibration Status=0x1ffe  Done的命令,如下第三、四图所示(Debug: Init Calibration Status = 0xc是单独加的log,查看AWR1243运行的代码路径):

           

    从上述Debug: Init Calibration Status = 0xc以及Received RL_DEV_AE_MSSPOWERUPDOWN_SB的log可以查看到主函数mss_main.c运行如下的代码时存在差异(AWR2243和AWR1243),AWR2243是执行绿色标记部分,而当前AWR1243是执行红色标记部分,此处switch (msgId)执行条件针对两个硬件是不同的,而代码中看着跟硬件、射频的一些回馈接收信号是相关的,请问此处有可能还是硬件有些差异导致软件调用执行时存在问题吗,在visualizer上当前参数下载完后就是没有目标显示,怀疑还是硬件的一些接收信号跟AWR2243不一致导致的,请问有办法修改软件的调用适配AWR1243硬件吗?

    谢谢。

    static int32_t MmwDemo_eventCallbackFxn(uint8_t devIndex, uint16_t msgId, uint16_t sbId, uint16_t sbLen, uint8_t *payload)
    {
    uint16_t asyncSB = RL_GET_SBID_FROM_UNIQ_SBID(sbId);

    /* Process the received message: */
    switch (msgId)
    {
    case RL_RF_ASYNC_EVENT_MSG:
    {
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", 0x0001U); // test
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", RL_RF_ASYNC_EVENT_MSG); // test
    /* Received Asychronous Message: */
    switch (asyncSB)
    {
    case RL_RF_AE_CPUFAULT_SB:
    {
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", 0x0002U); // test
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", RL_RF_AE_CPUFAULT_SB); // test
    MmwDemo_debugAssert(0);
    break;
    }
    case RL_RF_AE_ESMFAULT_SB:
    {
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", 0x0003U); // test
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", RL_RF_AE_ESMFAULT_SB); // test
    MmwDemo_debugAssert(0);
    break;
    }
    case RL_RF_AE_ANALOG_FAULT_SB:
    {
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", 0x0004U); // test
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", RL_RF_AE_ANALOG_FAULT_SB); // test
    MmwDemo_debugAssert(0);
    break;
    }
    case RL_RF_AE_INITCALIBSTATUS_SB:
    {
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", 0x0005U); // test
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", RL_RF_AE_INITCALIBSTATUS_SB); // test
    rlRfInitComplete_t* ptrRFInitCompleteMessage;
    uint32_t calibrationStatus;

    /* Get the RF-Init completion message: */
    ptrRFInitCompleteMessage = (rlRfInitComplete_t*)payload;
    calibrationStatus = ptrRFInitCompleteMessage->calibStatus & 0x1FFFU;

    /* Display the calibration status: */
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", calibrationStatus);
    break;
    }
    case RL_RF_AE_FRAME_TRIGGER_RDY_SB:
    {
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", 0x0006U); // test
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", RL_RF_AE_FRAME_TRIGGER_RDY_SB); // test
    gMmwMssMCB.stats.frameTriggerReady++;
    break;
    }
    case RL_RF_AE_MON_TIMING_FAIL_REPORT_SB:
    {
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", 0x0007U); // test
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", RL_RF_AE_MON_TIMING_FAIL_REPORT_SB); // test
    gMmwMssMCB.stats.failedTimingReports++;
    break;
    }
    case RL_RF_AE_RUN_TIME_CALIB_REPORT_SB:
    {
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", 0x0008U); // test
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", RL_RF_AE_RUN_TIME_CALIB_REPORT_SB); // test
    gMmwMssMCB.stats.calibrationReports++;
    break;
    }
    case RL_RF_AE_FRAME_END_SB:
    {
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", 0x0009U); // test
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", RL_RF_AE_FRAME_END_SB); // test
    gMmwMssMCB.stats.sensorStopped++;
    DebugP_logInfo("App: BSS stop (frame end) received\n");

    MmwDemo_dataPathStop();
    break;
    }
    default:
    {
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", 0x000aU); // test
    test_print ("Error: Asynchronous Event SB Id %d not handled\n", asyncSB);
    break;
    }
    }
    break;
    }
    /* Async Event from MMWL */
    case RL_MMWL_ASYNC_EVENT_MSG:
    {
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", 0x000bU); // test
    switch (asyncSB)
    {
    case RL_MMWL_AE_MISMATCH_REPORT:
    {
    /* link reports protocol error in the async report from BSS */
    MmwDemo_debugAssert(0);
    break;
    }
    case RL_MMWL_AE_INTERNALERR_REPORT:
    {
    /* link reports internal error during BSS communication */
    MmwDemo_debugAssert(0);
    break;
    }
    }
    break;
    }
    /* Async Event from MSS */
    case RL_DEV_ASYNC_EVENT_MSG:
    {
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", 0x000cU); // test
    switch (asyncSB)
    {
    case RL_DEV_AE_MSSPOWERUPDONE_SB:
    {
    test_print("Received RL_DEV_AE_MSSPOWERUPDONE_SB\n");

    }
    break;
    default:
    {
    test_print("Unhandled Async Event msgId: 0x%x, asyncSB:0x%x \n\n", msgId, asyncSB);
    break;
    }
    }
    break;

    }
    default:
    {
    CLI_write ("Debug: Init Calibration Status = 0x%x\n", 0x000dU); // test
    test_print ("Error: Asynchronous message %d is NOT handled\n", msgId);
    break;
    }
    }
    return 0;
    }

  • Kun,

    你有debug过MMWave_startLink函数么?