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.

[参考译文] AWR1642BOOST:软件修改入门

Guru**** 2589275 points
Other Parts Discussed in Thread: MMWAVE-SDK

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/653296/awr1642boost-getting-started-with-software-modifications

器件型号:AWR1642BOOST
Thread 中讨论的其他器件:MMWAVE-SDK

目标:获取毫米波演示软件并开始修改它以使其正常工作。

我有 CCS 并下载了 SDK 演示实验1.6.2、然后按照自述文件构建和刷写我的器件。 我已经使用 Web 可视化工具验证了它的功能。 我现在正处于开始调整软件的阶段、但开始时有点迷路。 该项目只是几个*。c 文件、每个文件有数千行、我找不到能够进一步解释演示软件结构的文档。

我想我希望有一些建议的方法来开始分解并了解实际软件、从而使毫米波运行一些基本功能。 或者、我是否需要在该项目中挖掘这些大的*。c 文件、并直接交叉引用 xygens、然后开始自行映射?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Eric、

    MMWAVE-SDK 为您提供有关演示软件和驱动程序的详细文档。

    您可以下载 MMWAVE-SDK 并参阅"$MMWAVE-SDK-INSTALL.packages/ti\demo\xwr16xx\MMW\docs\doxygen\html\index.html"中的文档。

    请告诉我们这是否有助于您理解。

    谢谢、
    Raghu
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想我正在寻找一个为客户开发而变得更加模块化的项目。 我已经研究过 SDK、并找到了分散式 doxygen API、这是一份讨论典型布局的用户指南、还有一个演示项目。 我是否忽略了这方面的任何其他关键要素?

    现在,我仍然对这项任务感到不安。 我想您可以认识到一项令人生畏的任务、那就是了解 SDK 演示项目、该项目的 main.c 为2500多行~38函数。 我只是想确保我遵循预期的流程、以便我不会挖错。

    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Eric、

    您能告诉我们您希望对演示代码进行何种修改吗? 例如:通过 CAN 接口而不是 UART 接口等发送对象数据

    如果您可以为我们提供有关所需修改类型的更多信息,我们可以为您提供文件上的指针,您需要将其作为修改的重点。

    谢谢、
    Raghu
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    下面是我为获得所需演示而注意到的事件顺序。

    1.测试构建脚本以确保其正常工作。

    我在假期休息前运行了演示、不记得我是否使用了编译工具、或者只是使用了提供的二进制文件。

    2.我需要更新实际雷达参数的配置。

    线性调频脉冲参数、帧参数和数据路径。

    不确定如何"硬编码"值。

    3.通过 UART 发送物体数据并接收启动和停止雷达的命令。

    物体数据可能需要具有相关的跟踪和确定性信息、具体取决于对我们环境中噪声的易感性。

    由任务系统驱动的中断、用于检查消息的发送和接收。

    4.最终有 CAN 发送对象数据和接收命令。

    和以前一样、但希望通过 CAN 数据库而不是手动生成。

    谢谢、

    Eric

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    除了上面的#1之外、我一直在研究构建和闪存软件。 SDK 用户指南说、

    "对于打包的 SDK xWR16xx 演示和 ccsdebug 实用程序、它们各自的文件夹中提供了一个 bin 文件:
    xwr16xx_ .bin、这是用于刷写的 metaImage。 metaImage 已具有 MSS、BSS
    (RADARSS)和 DSS 应用程序合并为一个文件。"

    我可以使用指定的文件对其进行刷写、但它不告诉我如何使用单独的 MSS/BSS 文件进行刷写、也不告诉我是否需要始终组合。 我尝试按照指南中的构建步骤操作、但无法处理批处理文件。 环境变量似乎不适用于 Windows、因此它不知道要查看的路径、但是、当我从 CCS 内部执行时、它确实起作用。 在这种情况下、编译成功、但会为每个工程 MSS 和 BSS 创建单独的二进制文件。 我不确定如何处理这些问题。

    此致、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Eric、

    测试构建脚本以确保它们正常工作。

    A1: 安装 SDK 时、如果在安装过程中选择了所有相关工具、则会安装它们。  安装后、您可以使用 setenv.bat ($mmwave_sdk_01_00_02\packages/scripts\windows\setenv.bat)设置环境变量来构建代码。

    设置构建环境后、您只需转到演示文件夹并构建要测试的演示。

    A2:演示依靠 CLI 接收雷达配置参数。 您可以 "绕过此 CLI"并通过在 $MMWAVE_SDK_01_00_02\packages/ti\utils\cli\src\cLI.c 中添加以下代码来对配置进行硬编码(仅获取可使用您自己的配置的示例)

    #define CLI_BYPASS 1.

    #define MAX_RADAR        22.

    uint8_t* radarCmdString[MAX_RADAR _CMD]=

    {"sensorStop \n"}、

    {"flushCfg \n"}、

    {"dfeDataOutputMode 1 \n"}、

    {"通道配置15 3 0 \n"}、

    {"adcCfg 2 1 \n"}、

    {"adcbufCfg -1 0 1 0 \n"}、

    {"profileCfg 0 77 287 7 200 0 20 1 384 2000 0 30 \n"}、

    {"啁 啾 Cfg 0 0 0 0 0 0 0 0 1 \n"\}、

    {"啁 啾 Cfg 1 0 0 0 0 0 2 \n"}、

    {"frameCfg 0 1 16 0 150 1 0 \n"}、

    {"lowPower 0 \n\r\n"}、

    {"guiMonitor -1 1 1 0 1 \n"}、

    {"cfarCfg -1 0 8 4 0 5120 \n"}、

    {"cfarCfg -1 1 0 4 2 3 0 5120 \n"\}、

    {"peakGrouping -1 1 1 1 511 \n"}、

    {"multiObjBeamForming -1 0 0.5 \n"}、

    {"离合器拆卸-1 0 \n"}、

    {"calibDcRangeSig -1 0 -5 8 256 \n"}、

    {"extendedMaxVelocity -1 0 \n"}、

    {"compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 \n"}、

    {"measureRangeBiasAndRxChanPhase 0 1.5 0.2 \n"}、

    {"sensorStart \n"}、

    };

    静态 Int32_t CLI_ByPassApi (CLI_Cfg* ptrCLICfg)

    //uint8_t cmdString[128];
    char* tokenizedArgs[cli_MAX_args];
    char* ptrCLICommand;
    字符定界符[]="\r\n";
    uint32_t argIndex;
    cli_CmdTableEntry* ptrCLICommandEntry;
    int32_t clipStatus;
    uint32_t index、idx;
    uint16_t numCLI 命令= 0U;

    /*健全性检查:验证参数*/
    if (ptrCLICfg = NULL)
    返回-1;

    /*循环执行并确定支持的 CLI 命令的数量:*/
    对于(索引= 0;索引< CLI_MAX_CMD;索引++)

    /*我们是否有有效的条目? *
    if (ptrCLICfg->tableEntry[index].cmd =NULL)

    /*否:这是最后一个条目*/
    中断;

    其他

    /*是:增加 CLI 命令的数量*/
    numCLICommands = numCLICommands + 1;

    /*执行所有雷达命令*/
    对于(idx = 0;idx < MAX_RADAR;idx++)

    /*重置所有标记化参数:*/
    memset ((void *)&tokenizedArgs、0、sizeof (tokenizedArgs));
    argIndex = 0;
    ptrCLICommand =(char*) radarCmdString[idx];

    /*设置 CLI 状态:*/
    客户端状态=-1;

    /*已输入命令,我们现在将命令消息标记为*/
    while (1)

    /*标记参数:*/
    tokenizedArgs[argIndex]= strtok (ptrCLICommand、定界符);
    if (tokenizedArgs[argIndex]=NULL)
    中断;

    /*递增参数索引:*/
    argIndex++;
    if (argIndex >= cli_MAX_args)
    中断;

    /*重置命令字符串*/
    ptrCLICommand =空;

    /*我们是否能够标记 CLI 命令? *
    如果(argIndex =0)
    继续;

    /*循环执行所有注册的 CLI 命令:*/
    对于(索引= 0;索引< numCLICommands;index++)

    ptrCLICommandEntry =&ptrCLICfg->tableEntry[index];

    /*我们是否有匹配? *
    if (strcmp (ptrCLICommandEntry->cmd、tokenizedArgs[0])=0)

    /*是:将其传递给 CLI 注册函数*/
    clientStatus = ptrCLICommandEntry->cmdHandlerFxn (argIndex、tokenizedArgs);
    if (clipStatus =0)

    cli_write ("done");

    其他

    cli_write ("Error %d\n"、clipStatus);

    中断;

    /*我们是否获得了匹配的 CLI 命令? *
    if (index == numCLICommands)

    /*未找到匹配命令。 是否启用了毫米波扩展? *
    if (ptrCLICfg->enableMMWaveExtension == 1U)

    /*是:将其传递给毫米波扩展处理程序*/
    clientStatus = cli_MMWaveExtensionHandler (argIndex、tokenizedArgs);

    /*是否找到 CLI 命令? *
    if (clipStatus ==-1)

    /*否:仍找不到命令*/
    cli_write ("'%s'未被识别为 CLI 命令\n"、tokenizedArgs[0]);




    返回0;

    您可以在"cli_task"中调用 API "cli_ByPassApi"、而不是现有实现。

    A3:MMWAVE-SDK 中的现有 MMW 演示通过 UART 接收命令并通过 UART 发送对象数据。 此处无需修改。  

     

    A4:您可以在 MMWAVE-SDK 中引用 CAN/CAN-FD 驱动 程序、并将初始化代码、发送和接收代码(请参阅$MMWAVE_SDK_01_00_02\packages/ti\drivers\canfd\test\xwr16xx\main.c 中的 mcanTransmitTest)包含到 MMW 演示代码、并可以通过对象接口传输数据。

     

    如果您需要更多信息、请告诉我。

    谢谢、

    Raghu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Eric、

    当必须刷写映像时、它必须是将 RadarSS、DSS、MSS 映像合并到一个文件中的元映像。
    请尝试重新安装 MMWAVE-SDK,因为相关工具由 MMWAVE-SDK 安装程序安装,路径也会相应设置。 您不需要执行任何额外的步骤来添加路径等

    -Raghu
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    解答1:

    我重新安装了 SDK 并重新运行 setenv 文件。 在尝试通过调用 make 的批处理文件编译工程时、我仍然会得到相同的结果。 只要 makefile 使用路径参考 $(MMWAVE_SDK_INSTALL_PATH)、就不会对其进行解释。

    "Makefile:13:/ti/common/mmwave_sdk.mak:无此类文件或目录"、您可以在此处看到、路径引用甚至不会显示。

    我将查看您对 A2的回答。

    解答3:

    是否有物体检测 UART 协议规格、以便我可以在另一个微控制器上对接收端进行编程?

    A4:

    您是否有任何工具可将 CAN 数据库转换为一组驱动程序软件、还是全部都是手动编程?

     

    谢谢、

    Eric

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Eric、
    A1:请发布错误日志以查看您遇到的构建环境问题。

    解答3:
    该 SDK 包含有关 mmwave_sdk_01_00_02\packages/ti\demo\xwr16xx\mmw\docs\doxygen\html\index.html"中 MMW 演示项目的详细文档。 这列出了通过 UART 发送的目标数据的协议。 UART 是用于从器件中发送目标数据的主要接口。

    A4:这是手动编程。

    -Raghu
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    sentenv.bat 位于 C:\ti\mmwave_sdk_01_01_00_02\packages/scripts\windows 中

    @REM ############################################################################################################################
    @REM #
    @REM #为毫米波 SDK 设置工具和构建环境变量
    @REM #
    @REM ################################################################################################################
    
    @REM ############################################################################################################################
    @REM #构建变量(根据构建需要修改)
    @REM ##################################################################################################
    
    @REM 选择您的设备。 选项(区分大小写)为:awr14xx、iwr14xx、awr16xx、iwr16xx
    set mmwave_sdk_device=awr16xx
    
    @REM 如果需要通过 CCS 下载、请将定义设置为 yes 否则不
    会@REM yes:可以使用 CCS 加载创建的 OUT 文件。
    @远程 创建的二进制文件可用于闪存
    @REM 否:创建的输出文件无法使用 CCS 加载。
    @远程 创建的二进制文件可用于闪存
    @REM (附加功能:TCMA 的写保护等)
    设置 DOWN_FER_CCS=yes
    
    @REM ####################################################################################
    @REM #客户安装的工具变量(将根据安装进行修改)
    @REM ####################################################################################################
    
    
    @REM ############################################################################################################################
    @REM # TI 工具变量(如果
    使用默认的 mmWave SDK @REM #安装选项、则在此行下方无需更改)
    @REM ##########################################################################################
    
    将
    
    awr14xx、awr16xx、iwr14xx、iwr16xx
    @REM Path 的 mmwave_sdk_tools_install_path=C:/ti @REM Common 设置设置为 /packages 文件夹
    set MMWAVE_SDK_INSTALL_PATH=%mmWAVE_SDK_TOOLS_INSTALL_PATH%/mmWAVE_SDK_01_00_02/packages
    @
    
    @
    
    @
    
    
    @
    @
    
    @REM TI ARM 编译器 set R4F_Code_Gen_install_path=%mmwave_sdk_tools_install_mw_prue_st_mwe_sdk_w_mw_w_state_mw_k_state_mw_stue_tools%64x_prue_sdk_mw_w_mw_mw_w_w_k_sb_stue_stue_stue_stue_stue_stue_stue_mw_mw_mw_k_mw_mw_mw_k_mw_mw_k_mwest_mw_w_k_sb_w_k_sb_w_k_mw_mw_mw_k_sb_mwet=%64x_k_sb_mw_k_sb_mw_mwet= rw
    
    
    
    
    
    @@@ 雷达固件。 使用 RPRC 格式的二进制文件。
    设置 XWR16XX_RADARSS_IMAGE_BIN=%MMWAVE_SDK_INSTALL_PATH%/../firmware/radarss/xwr16xx_radarss_rprc.bin
    
    @REM 调用脚本以检查 env 变量并设置路径
    调用 checkenv.bat
    
    @REM 如果
    %ERRORLEVEL% NEQ 0、则检查错误代码(
    REM 错误:checkenv.bat 中出现故障!!!
    REM 返回错误
    退出/B 1
    )
    
    退出/B 0
    
    

    make.bat 位于 C:\ti\mmwave_sdk_01_00_02\packages/ti\demo\xwr16xx\mmw 中

    cd %mmwave_sdk_install_path%/ti/demo/xwr16xx/mmw
    gmake clean
    gmake all
    pause 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在一个类似的位置、即开始在此板上进行开发。 除了 doxygen、您可能还会发现 mmWave SDK 用户指南很有用。 具体而言、第5节"mmWave SDK 深度探究"提供了一些有关如何在此平台上执行任务以及可用驱动程序的良好信息。 您可以在 ti\mmwave_sdk_01_01_00_02\docs\mmwave_sdk_user_guide.pdf 中找到此指南。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Eric、
    如果您尝试不使用 make.bat 进行编译,是否会遇到相同的错误?

    -Raghu
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Raghunandan、

    您能否详细说明在没有 BAT 的情况下尝试构建? 您是指通过手动命令提示符还是通过 CCS? 我可以告诉您、通过 CCS 可以正常工作。

    谢谢、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Eric、

    看起来您没有在用于 setenv.bat 的同一命令窗口中执行 make.bat。 请确认执行 make.bat 的位置。  

    我的意思是通过同一命令窗口中的手动命令提示符来设置环境变量。  


    -Raghu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、这就是问题所在。 我没有意识到命令提示符的路径是本地的、而通过语言讲、我认为两个蝙蝠是可以的。

    我想我的每一个问题都得到了回答。 我尚未完成整个流程、但我会将其中一个回复标记为"答案"。

    谢谢!