毫米波SDK使用2

5.5 毫米波SDK-TI组件

        毫米波SDK功能分解成组件将在接下来的几小节中解释。有关这些模块的详细文档,请参阅位于mmwave_mcuplus_sdk_<ver>/docs/mmwave_sdk_module_document .html的顶层文档。

5.5.1 演示

5.5.1.1 毫米波演示

      这个演示位于mmwave_mcuplus_sdk_<ver>/ti/demo/<platform>/mmw文件夹。毫米波演示展示了使用毫米波SDK(软件开发工具包)中的驱动程序的SoC的一些雷达传感和目标检测功能。它允许用户指定chirp配置文件,并实时显示检测到的对象和其他信息。这个演示的详细说明可以在演示的docs文件夹中找到,可以通过mmwave_mcuplus_sdk_<ver>/docs/mmwave_sdk_module_document .html浏览(演示的内容如下面的截图所示)。本节捕获在各种毫米波设备上支持的演示的高级布局。有关各个组件(控制层、数据路径层等)的详细信息,请参阅“毫米波SDK - TI组件”下的其余子节。

5.5.2 驱动

      驱动程序封装了系统中各种硬件IP的功能,并为更高层提供了定义良好的API。与以前版本的SDK不同,驱动程序是随SDK包一起安装的PDK的一部分。驱动程序被设计为通过使用OSAL层与操作系统无关。下图显示了SDK中使用的典型内部软件块。有关详细信息,请参阅PDK文档。

5.5.2.1 OSAL

      mmWave SDK中存在一个OSAL层,以提供基本组件(驱动程序、mmWaveLink、mmWaveAPI)的操作系统无关特性。这个协议为一些常见的操作系统服务提供了一个抽象层:信号量、互斥锁、调试、中断、时钟、内存、周期分析器。OSAL层的源代码和文档是PDK的一部分,它随SDK包(<pdk_path>\packages\ti\osal)一起安装。有关详细信息,请参阅PDK文档。

5.5.3 毫米波连接mmWaveLink

      mmWaveLink是一个控制层,主要实现用于雷达子系统(RADARSS)和控制实体之间通信的协议,控制实体可以是主子系统(MSS R5F)和/或DSP子系统(DSS C66x)。它提供了一套低级API,应用程序(或其上的软件层)可以调用这些API来启用/配置/控制RADARSS。它为应用程序提供了一个定义良好的接口,以便插入正确的通信驱动程序API以与RADARSS通信。它作为Radar SS的驱动程序,公开Radar SS的服务,包括配置Radar SS硬件块的API,并提供MSS/DSS与Radar SS之间的消息传输通信协议。

      毫米波链路是DFP包的一部分。请参考mmwave_dfp_<version>\docs文件夹获取更多信息AWR294X和AM273X+AWR2243的DFP版本不同

5.5.4 毫米波API

      mmWaveAPI是运行在mmWaveLink和LLD API(驱动程序API)之上的更高层的控件。它旨在以更简单和更少的API集的形式为应用程序提供抽象层,以执行毫米波雷达传感任务。在具有双核的毫米波设备中,它还在IPC上提供了一个抽象层,以在MSS和DSS域之间同步和传递配置。毫米波API层的源代码在mmwave_mcuplus_sdk_<ver>\ti\control\毫米波文件夹中。该API的文档可通过位于mmwave_mcuplus_sdk_<ver>\ti\control\mmwave\docs\doxygen\html\index.html的doxygen文件获取,并可通过mmwave_mcuplus_sdk_<ver>\docs\mmwave_sdk_module_document .html轻松浏览。组件的单元测试代码(运行在SYSBIOS之上)也作为包的一部分提供:mmwave_mcuplus_sdk_<ver>\ti\control\mmwave\test\。

图5-24 毫米波API-内部软件设计

      毫米波模块提供了两种配置模式。

5.5.4.2 完整配置

      “完整”配置模式实现毫米波前端的基本chirp/帧序列,是使用基本chirp/帧配置时应用程序的推荐模式。在此模式下,应用程序将使用毫米波控制模块提供的整套服务。这些功能包括:

  • mmWaveLink的初始化
  • MSS和DSS之间的同步服务
  • 异步事件管理
  • 启动和停止服务
  • 配置的RADARSS帧,先进的帧,先进的chirp与传统的帧,先进的chirp与先进的帧和连续模式
  • MSS和DSS同步配置

      在完整配置模式下,可以创建具有多个chirp的多个配置文件。为此添加了以下API:

Chirp管理:
  • MMWave_addChirp
  • MMWave_delChirp
配置文件管理:
  • MMWave_addProfile
  • MMWave_delProfile
高级Chirp管理:
  • MMWave_addAdvChirpParam
  • MMWave_addAdvChirpLUTData
  • MMWave_delAdvChirp
注意:毫米波前端校准

      默认情况下,mmWave API启用mmWave前端的所有init/boot time时间校准。用户可以在MMWave_open API中提供自定义校准掩码和/或提供预先存储校准数据的缓冲区。

      当应用程序在MMWave_start API调用中请求一次性和周期性校准时,毫米波API为毫米波前端启用所有可用的一次性和周期性校准。

      mmWave API不通过其任何API暴露mmWaveLink的LDO旁路API (rlRfSetLdoBypassConfig/rlRfLdoBypassCfg_t)。如果应用程序需要此功能(无论是由于TI EVM/自定义板上使用的射频电源电压还是从监控的角度),用户应该参考mmwave_doxygen(mmwave_mcuplus_sdk_<ver>\ TI \control\mmwave_doxygen\docs\ doxygen\html\index.html)关于此API的使用情况,并在调用MMWave_open()之前从其应用程序调用此API。

      mmWave_open

      虽然提供了mmWave_close API,但建议每个传感器的电源周期只执行一次mmWave_open。

5.5.5 数据路径接口(DPIF)

      DPIF定义了检测处理链中的标准接口点,这些接口点将对应于上图所示的可扩展链中的“蓝色”框。这一层定义的关键接口有:

  • 输入ADC数据
  • 雷达立方体
  • 检测矩阵
  • 点云和它的侧面信息

      DPIF的源代码位于mmwave_mcuplus_sdk_<ver>\ti\datapath\ DPIF文件夹中。

5.5.6 数据处理单元(dpu)

      从一个接口点到另一个接口点的数据转换功能称为“数据处理单元”。将数据处理链拆分为多个处理单元,可以促进跨多个链重用某些处理块。关于这些模块的详细文档可以通过mmwave_mcuplus_sdk_<ver>/ docs/mmwave_sdk_module_document .html轻松浏览。

  • 距离处理(ADC数据到雷达立方):该处理单元在活动帧时间内对chirp(RF)数据进行(1D FFT+可选直流距离校准)处理,并在雷达立方中产生处理后的数据。这个处理单元在毫米波SDK中是标准化的。它提供了基于HWA的实现。基于HWA的实现可以在R5F或C66x上实例化。Range DPU的源代码位于mmwave_mcuplus_sdk_<ver>\ti\datapath\ DPU \rangeproc文件夹中。API的文档可通过doxygen获得,并放置在mmwave_mcuplus_sdk_<ver>\ti\datapath\dpu\rangeproc\docs\doxygen\html\index.html。组件的单元测试代码(运行在SYSBIOS之上)也作为包的一部分提供:mmwave_mcuplus_sdk_<ver>\ti\datapath\dpu\rangeproc\ test\。
  • 多普勒处理(雷达立方体到检测矩阵):该处理单元在帧间和生成的检测矩阵中对雷达立方体进行(二维FFT +能量和)处理。除此之外,当启用静态杂波去除时,该处理单元从雷达立方体读取距离FFT数据并执行静态杂波去除,然后执行二维FFT +能量和处理。这个处理单元是作为参考实现提供的,SDK的用户可以在他们的应用程序/处理链中重用这些单元,也可以根据他们的特定需求创建这些单元的变体。基于HWA的实现可以在R5F或C66x上实例化。基于DSP的实现结合了静态杂波算法以获得最佳内存/MIPS利用率,用户可以跳过使用独立的静态杂波DPU。多普勒DPU的源代码在mmwave_mcuplus_sdk_<ver>\ti\datapath\dpc\ DPU \dopplerproc文件夹中。API的文档可通过doxygen获得,并放置在mmwave_mcuplus_sdk_<ver>\ti\datapath\dpc\dpu\dopplerproc\docs\doxygen\html\index.html。
  • CFAR + AoA (检测矩阵到点云):它们作为两个独立的DPU提供,在帧间对检测矩阵共同运行CFAR算法、峰值聚合、视场滤波、多普勒补偿、最大速度增强和角度(方位角+仰角)估计来产生点云。这些处理单元是作为参考实现提供的,SDK的用户可以在他们的应用程序/处理链中重用这些单元,也可以根据他们的特定需求创建这些单元的变体。基于HWA的实现可以在R5F或C66x上实例化。
    • CFAR DPU的源代码位于mmwave_mcuplus_sdk_<ver>\ti\datapath\dpc\DPU\cfarproc文件夹中。API的文档可通过doxygen获得,并放置在mmwave_mcuplus_sdk_<ver>\ti\datapath\dpc\dpu\cfar proc\docs\doxygen\html\index.html。组件的单元测试代码(运行在SYSBIOS之上)也作为包的一部分提供:mmwave_mcuplus_sdk_<ver>\ti\ datapath\dpc\dpu\cfarproc\ test\。
    • AoA DPU的源代码在mmwave_sdk_<ver>\ti\datapath\dpc\ DPU \aoaproc文件夹中。API的文档可通过doxygen获得,并放置在mmwave_mcuplus_sdk_<ver>\ti\datapath\dpc\dpu\aoaproc\docs\doxygen\html\index.html。组件的单元测试代码(运行在SYSBIOS之上)也作为包的一部分提供:mmwave_mcuplus_sdk_<ver>\ti\ datapath\dpc\dpu\aoaproc\ test\。 

      每个DPU呈现以下高层级设计:

图5-25 DPU-内部软件设计

  • 所有外部DPU API都以前缀DPU_开头。DPU唯一名称紧随其后。
  • 例:DPU_RangeProcHWA_init
  • 标准的外部API: init, config, process, ioctl, deinit由每个DPU提供。
    • Init:对DPU进行一次性初始化
    • 配置:DPU的完整配置:硬件资源,静态和动态(如果DPU支持)
      • 静态配置:在正在进行的帧中保持静态的配置
      • 动态配置:配置可以从一个帧到另一个帧改变,但只有在进程不进行时-理想情况下,在DPC为该帧导出结果后的帧间时间
    • Process: DPU的实际处理功能
    • Ioctl:控制接口,允许上层在帧间时间内切换动态配置
    • De-init: DPU去初始化
  • 所有I/O缓冲区和划痕缓冲区的内存分配都在DPU之外,因为毫米波应用程序依赖内存覆盖技术进行优化,最好在应用程序级别处理。
  • 所有的H/W资源必须由应用程序分配并传递给DPU。这有助于保持DPU平台无关性,并允许应用程序在DPU处理没有及时重叠时跨DPU共享资源。
  • DPU与操作系统无关,并为所需的操作系统服务使用OSAL API。

      DPU的典型调用流可以表示如下。关于chirp/frame的配置和进程API调用的时间将根据DPU功能、它在链中的使用、DPC实现和硬件资源的重叠而变化。

图5-26 DPU-典型调用流

5.5.7 数据路径管理器(DPM)

      DPM是支持体系结构“可伸缩性”方面的基础层。这一层吸收了所有的消息传递复杂性(跨核心和内部核心),并为应用程序级别的集成以及集成任何“数据处理链”提供了标准的API。应用层将能够从任何域(MSS或DSS)调用DPM API,并控制“数据处理链”的配置和执行。DPM提供的API可在MSS和DSS上使用。它可以满足(但不限于)的各种部署:

  • R5F上的数据路径控制和数据路径执行在R5F/HWA和DSP(分布式)之间分离
  • R5F上的数据路径控制和使用HWA (本地)在R5F上执行数据路径
  • R5F上的数据路径控制和数据路径执行在DSP上(带或不带HWA)(远程)
  • 数据路径控制在DSP上,数据路径执行在DSP+HWA (本地)上
  • 数据路径控制在DSP上,数据路径执行在DSP上(本地)

图5-27 数据路径管理(DPM)-内部软件设计

      DPM的源代码在mmwave_mcuplus_sdk_<ver>\ti\control\ DPM文件夹中。API的文档可通过doxygen获得,并放置在mmwave_mcuplus_sdk_<ver>\ti\ control\dpm\docs\doxygen\html\index.html。组件的单元测试代码(运行在SYSBIOS之上)也作为包的一部分提供:mmwave_mcuplus_sdk_<ver>\ti\ control\dpm\test\。

5.5.8 数据处理链(DPC)

      DPC是数据路径中的一个独立层,它封装了毫米波应用程序的所有数据处理需求,并为与应用程序集成提供了一个定义良好的接口。在SDK中,有一个参考实现对应于通用的“对象检测”链,它已经是过去版本中OOB演示的一部分。此链将符合标准DPM指定的API定义。在内部,这一层将使用数据处理单元(DPU)、数据路径接口和数据路径管理器(DPM)公开的功能来实现“目标检测”链所需的数据流。目标检测DPC的源代码位于mmwave_mcuplus_sdk_<ver>\ti\datapath\ DPC \objectedetection文件夹中。该API的文档可通过位于mmwave_mcuplus_sdk_<ver>\ti\datapath\dpc\objectedetection\deployment_type>\docs\doxygen\html\index.html的doxygen文件获取,并可通过mmwave_mcuplus_sdk_<ver>/ docs/mmwave_sdk_module_document .html轻松浏览。在SYSBIOS之上运行的组件的单元测试代码也作为包mmwave_mcuplus_sdk_<ver>\ti\datapath\dpc\objectedetection\objdethwa \test\的一部分提供。有关此测试的详细信息,请参阅使用测试矢量方法进行数据路径测试一节。

5.5.9 Board/EVM配置

      有关Board /EVM特定信息,请参阅PDK文档和<pdk_path>\packages\ti\ Board目录了解更多详细信息。关于Board /EVM的天线配置,请参考<sdk_path>\ti\ Board文件夹。

5.5.10 mmWaveLib

      mmWaveLib是一个算法集合,提供了FMCW雷达立方体处理所需的基本功能。它包含仅针对C66x DSP架构的优化库例程。该组件不适用于cortex R5F (MSS)。这些例程不封装任何数据移动/数据放置功能,而是应用程序代码负责将输入和输出缓冲区放置在正确的内存中(例如:L2),并根据需要使用EDMA进行数据移动。mmwave_mcuplus_sdk_<ver>\packages\ti\alg\mmwavelib文件夹中有mmwave_mcuplus_sdk的源代码。该API的文档可通过位于mmwave_mcuplus_sdk_<ver>\packages\ti\alg\mmwave_lib\docs\doxygen\html\index.html的doxygen文件获取,并可通过mmwave_mcuplus_sdk_<ver>/docs/mmwave_sdk_module_document .html轻松浏览。在SYSBIOS之上运行的组件的单元测试代码也作为包的一部分提供:mmwave_mcuplus_sdk_<ver>\packages\ti\alg\ mmwave_mcuplus_sdk_<ver>\packages\ti\alg\ mmwavelib \test\。

      库支持的功能:

  • 提供FMCW雷达立方体处理所需的基本功能的算法集合。
    • 加窗(16位复数输入,16位复数输出,16位加窗实数数组)
    • 加窗(16位复数输入,32位复数输出,32位加窗实数数组)
    • 32位复数的绝对值Log2
    • 矢量运算(累加)
    • CFAR-CA, CFAR-CASO, CFAR-CAGO(对数输入样本)
    • 长度为8的输入向量的16点FFT(其他FFT例程作为DSPLib的一部分提供)
    • 输入序列在一个特定索引处的单个DFT值
    • 32 × 32和16 × 16 FFT的摇摆表生成:优化了dsplib的等效函数,用于生成摇摆因子
    • FFT加窗系数生成
    • 生成DFT正弦/余弦表用于DFT单个bin计算
    • 带窗的单个bin的DFT
    • 由于DSPLib中的大多数定点FFT函数只支持一种复杂类型的格式,因此使用I/Q交换来改变窗函数。
  • CFAR算法
    • 浮点CFAR-CA:
      • mmwavelib_cfarfloat_call支持CFAR单元平均、单元累积、SO、GO算法,输入信号为浮点格式;
      • mmwavelib_cfarfloat_caall_opt实现了与mmwavelib_cfarfloat_call相同的功能,只是周期更少,但检测到的对象不会按升序排列。
      • mmwavelib_cfarfloat_wrap实现了与mmwavelib_cfarfloat_call相同的功能,除了边缘样本的噪声样本是另一边缘的圆形样本。
      • mmwavelib_cfarfloat_wrap_opt实现了与mmwavelib_cfarfloat_wrap相同的功能,只是周期更少,但检测到的对象不会按升序排列。
    • CFAR-OS:有序统计CFAR算法
      • mmwavelib_cfarOS接收定点输入数据(天线上累积的16位对数幅度)。搜索窗口大小在编译时定义。
    • CFAR后处理的峰值修剪
      • mmwavelib_cfarPeakPruning:接收检测矩阵并将相邻的峰分组为一个。
      • mmwavelib_cfarPeakQualifiedInOrderPruning:接收CFAR检测到的对象列表,并将相邻的峰值分组为一个。
      • mmwavelib_cfarPeakQualifiedPruning:与mmwavelib_cfarPeakQualifiedOrderPruning相同,但没有假设cfar检测到的峰值的顺序
  • 浮点AOA估计:
    • mmwavelib_aoaEstBFSinglePeak实现了Bartlett波束形成算法,用于检测单个目标的AOA估计,并输出检测角度的方差。
    • mmwavelib_aoaEstBFSinglePeakDet实现了mmwavelib_aoaEstBFSinglePeak的保存功能,没有检测角度计算的方差。
    • mmwaveib_aoaEstBFMultiPeak也实现了Bartlett波束形成算法,但具有多个检测角度,它还输出每个检测角度的方差。
    • mmwavelib_aoaEstBFMultiPeakDet实现了与mmwavelib_aoaEstBFMultiPeak相同的功能,但没有每个检测角度的方差输出。
  • DBSCAN聚类:
    • mmwavelib_dbscan实现了基于密度的应用空间聚类与噪声(DBSCAN)数据聚类算法。
    • mmwavlib_dbscan_skipFoundNeiB也实现了DBSCAN聚类算法,但是在扩展集群时,它会跳过已经找到的邻居。
  • 杂波清除:
    • mmwavelib_vecsum:对16位复向量中的元素求和。
    • mmwavelib_vecsubc:从16位复向量的每个元素中减去const值。
  • 加窗
    • mmwavelib_windowing16xl6_evenlen:支持2倍长度(输入复杂元素的数量),mmwavelib_windowing16x16支持8倍长度。
    • mmwavelib_windowing16x32:更新后支持4的倍数长度(输入复杂元素的数量)。之前是8的倍数。
  • 浮点加窗:
    • mmwavelib_windowing1DFltp:支持定点信号入窗,和浮点信号出窗,为1D FFT准备浮点数据。
    • mmwavelib_chirpProcWin2DFxdpinFltOut, mmwavelib_dopplerProcWin2dFxdpinFltout:为2D FFT准备浮点数据,定点输入。不同之处是mmwavelib_chirpProcWin2DFxdpinFltout是每个chirp bin完成的,而mmwavelib_dopplerProcWin2DFxdpinFltout是每个多普勒bin完成的。
    • mmwavelib_windowing2DFltp:浮点信号输入,浮点信号输出窗口,为2D FFT准备浮点数据。
  • 向量运算
    • 浮点和定点功率积累:积累信号功率。还提供了用于右移输出矢量以及累加的备用API。
    • 直方图:mmwavelib_histogram右移无符号16位矢量并计算直方图。
    • 对有符号16位矢量或有符号32位矢量进行右移操作
      • mmwavelib_shiftright16将输入向量中的每个有符号16位元素右移k位
      • mmwavelib_shiftright32将输入向量中的每个带符号32位元素右移k位
      • mmwavelib_shiftright32to16右移32位向量到16位向量
    • 复向量元素明智的乘法。
      • mmwavelib_vecmul16x16:将两个16位复向量逐个元素相乘。16位复数输出写入第一个输入向量。
      • mmwavelib_vecmul16x32, mmwavelib_vecmul16x32_anylen:将16位复向量与32位复向量逐元素相乘,输出为32位复输出向量。
      • mmwavelib_vecmul32x16c:将32位复向量与16位复常数相乘。
    • 16位向量元素的绝对值之和
      • mmwavelib_vecsumabs返回32位之和
    • 最大功率搜索32位复数数据
      • mmwavelib_maxpow输出找到的最大功率并返回复样本的相应索引
      • mmwavelib_powerAndMax:结合最大功率搜索的功率计算
    • 对32位浮点向量的方位角估计的峰值搜索
      • mmwavelib_multiPeakSearch:在方位角FFT输出中进行多峰搜索
      • mmwavelib_secondPeakSearch:方位角FFT输出中的第二个峰值搜索
    • 32位浮点复向量上的直流(天线耦合特征)去除
    • 16位向量的向量减法
  • 矩阵的实用程序
    • 32位矩阵的矩阵转置:类似于DSPLib函数,但针对行大于列的矩阵进行了优化

5.5.11 组跟踪

      该算法旨在跟踪多个目标,其中每个目标由一组测量点(CFAR检测层的点云输出)表示。每个测量点都携带探测信息,如距离、角度、径向速度等。该算法不是跟踪单个反射,而是预测和更新群体的位置和色散属性。组被定义为一组测量值(通常是几十个;有时有几百个)与现实生活中的目标有关。R5F和C66x都支持该算法。gtrack的源代码在mmwave_mcuplus_sdk_<ver>\packages\ti\alg\gtrack文件夹中。该API的文档可通过位于mmwave_mcuplus_sdk_<ver>\packages\ti\alg\gtrack \docs\doxygen<2d|3D>\html\index.html的doxygen文件获取,并可通过mmwave_mcuplus_sdk_<ver>\docs\mmwave_sdk_module_document .html轻松浏览。在SYSBIOS之上运行的组件的单元测试代码也作为包的一部分提供:mmwave_mcuplus_sdk_<ver>\packages\ti\alg\gtrack\test\。

5.5.12 CCS调试实用工具

      这是一个简单的二进制文件,可以刷写到电路板上,以促进使用TI Code Composer Studio (CCS)开发毫米波应用程序的阶段。详见CCS开发模式。R5F (MSS)和C6 (DSS)都有一个可执行文件,并组合成一个元图像,用于与RADARSS固件一起刷写。当用于CCS调试的appimage刷写到EVM上时,可以在Code Composer Studio上连接、重置内核,并将程序加载到内核上

5.5.13 HIS Header工具

      为用户提供了一个可选的实用程序库,用于创建可以附加到通过LVDS传送的数据的头文件。该库接受CBUFF会话配置,并创建一个填充了适当信息的头,并将其传递回调用应用程序。然后,调用应用程序可以将这个创建的头提供给CBUFF API。头中的这个配置旨在帮助用户解析接收端的LVDS。此实用程序的源代码位于mmwave_mcuplus_sdk_<ver>\packages\ti\utils\hsiheader文件夹中。该API的文档可通过位于mmwave_mcuplus_sdk_<ver>\packages\ti\utils\hsiheader\docs\doxygen\html\index.html的doxygen文件获取,并可通过mmwave_mcuplus_sdk_<ver>\docs\mmwave_sdk_module_document .html轻松浏览。请注意,HSI Header实用程序目前可用于CBUFF流测试用例,但不能用于AWR294X的OOB演示。

5.5.14 PMIC读写工具(AWR2544)

      这是一个通用的应用程序,可用于配置PMIC。它可以根据用户输入执行以下功能:

      1.读取所有寄存器:读取并打印UART接口上的所有99个PMIC寄存器内容

      2.向寄存器写入:向用户提供的寄存器地址写入,并回读寄存器内容以验证写入的值。

      3.读取寄存器:在UART接口上读取并打印用户提供的寄存器地址。此实用程序的源代码位于mmwave_mcuplus_sdk_<ver>\ti\utils\test\pmic_read_write文件夹中。文档可通过位于mmwave_mcuplus_sdk_<ver>\ti\utils\test\pmic\docs\doxygen\html\index.html的doxygen文件获取,并可通过mmwave_mcuplus_sdk_<ver>\docs\mmwave_sdk_module_document .html进行浏览。

5.5.15 二级引导装载程序

      在SDK中提供了一个简单的元图像创建实用程序(mmwave_mcuplus_sdk_<ver>\scripts\unix\generateMetaImage.sh用于unix和mmwave_mcuplus_sdk_<ver>\scripts\windows\generateMetaImage.bat用于windows)。SBL的源代码是PDK的一部分,可以在<pdk_path>\packages\ti\boot\ SBL文件夹中找到。有关详细信息,请参阅PDK文档。

5.5.16 毫米波SDK-系统初始化

      应用程序应该调用Board_init API来启用设备的正确操作。有关更多信息,请参阅PDK文档。

      Pinmux模块的源代码由sysconfig生成。请参考MCU PLUS SDK文档和用户指南了解更多详细信息。

5.5.17 用例

      在毫米波器件上进行一维、二维和三维处理的数据路径处理由MSS、HWA/DSS和EDMA之间的协调执行组成。这是演示作为目标检测处理链和毫米波演示的一部分。该演示是实时运行的,并具有RADARSS控制等所有相关框架。

      位于mmwave_mcuplus_sdk_<ver>\ti\datapath\dpc \objectdetection\<chain_type>\test)的单元测试是允许非实时执行数据路径处理链的独立测试。这允许开发人员将其用作调试/开发辅助工具,最终使数据路径处理具有真实的chirp。开发人员可以很容易地进入代码并根据已知的输入信号进行测试。目标检测链和处理模块(DPU)的核心数据路径处理源代码在本次测试和毫米波演示之间共享。因此,大多数文档也是共享的,可以在目标检测DPC和mmw演示文档中查找。

      测试还提供了一个测试发生器,它允许用户在所需的距离、多普勒和方位角箱和噪声水平上人为地设置目标,以便可以根据这些设置检查输出。它可以生成一帧数据。测试生成和验证被集成到测试中,允许开发人员运行包含输入向量的单个可执行文件,并验证输出(在数据路径处理链之后),从而在测试结束时声明通过或失败。测试生成器的详细信息可以在这些测试的doxygen文档中看到,位于mmwave_mcuplus_sdk_<ver>\ti\datapath\dpc \objectdetection\chain_type>\test\docs\doxygen\html\index.html,并且可以通过mmwave_mcuplus_sdk_<ver>/docs/mmwave_sdk_module_document .html轻松浏览。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/24776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于协同过滤推荐的在线课程选修系统

基于协同过滤推荐的在线课程选修系统 demo 网站查看 http://course.qsxbc.com/all_course/ 点我查看 效果 功能 登录注册、点赞收藏、评分评论&#xff0c;课程推荐&#xff0c;热门课程&#xff0c;个人中心&#xff0c;可视化&#xff0c;后台管理&#xff0c;课程选修 …

python文件:py,ipynb, pyi, pyc, pyd, pyo都是什么文件?

1、Python文件类型介绍 &#x1f4c1; 1.1 .py 文件&#xff1a;源代码基础 .py 文件是 Python 最基本的源代码文件格式&#xff0c;用于存储纯文本形式的 Python 代码。它是开发者编写程序的主要场所&#xff0c;包含函数、类、变量定义以及执行逻辑。Python 解释器直接读取…

高考后的职业规划:学习LabVIEW开发前景广阔

在今天的高考后&#xff0c;选择学习LabVIEW开发为未来职业规划将大有可为。LabVIEW以其图形化编程、强大的数据处理和硬件集成功能&#xff0c;广泛应用于工程、科研、自动化测试等领域。掌握LabVIEW开发技能&#xff0c;不仅就业前景广阔&#xff0c;还能参与前沿技术应用&am…

SQL进阶day10————多表查询

目录 1嵌套子查询 1.1月均完成试卷数不小于3的用户爱作答的类别 1.2月均完成试卷数不小于3的用户爱作答的类别 ​编辑1.3 作答试卷得分大于过80的人的用户等级分布 2合并查询 2.1每个题目和每份试卷被作答的人数和次数 2.2分别满足两个活动的人 3连接查询 3.1满足条件…

Linux 35.5 + JetPack v5.1.3@FC-Planner编译安装

Linux 35.5 JetPack v5.1.3FC-Planner编译安装 1. 源由2. 编译&安装Step 1&#xff1a;依赖库安装Step 2&#xff1a;克隆工程Step 3&#xff1a;编译工程Step 4&#xff1a;LKH编译Step 5&#xff1a;安装工程 3. 问题汇总3.1 Killed signal terminated program cc1plus3…

【Unity】 HTFramework框架(五十一)代码片段执行器

更新日期&#xff1a;2024年6月8日。 Github源码&#xff1a;[点我获取源码] Gitee源码&#xff1a;[点我获取源码] 索引 Code Snippet Executer 代码片段执行器使用 Code Snippet Executer打开 Code Snippet Executer动态执行&#xff08;代码片段&#xff09;静态执行&#x…

MySQL——C语言连接数据库

MySQL Connection ​ 连接数据库的客户端除了命令行式的还有图形化界面版本&#xff0c;网页版本&#xff0c;当然也包括语言级别的库或者是包&#xff0c;能够帮助我们直接连接数据库&#xff1b; 一、语言连接库下载 方式一&#xff1a;不建议使用&#xff0c;需要自己配置…

记录项目使用ts时引入js文件后导致项目运行空白问题

主要原因&#xff1a; 使用ts后开启了eslint检测&#xff0c;而js压缩文件引入的位置在eslint检测的文件内。导致eslint检测认为该文件为很大的文件&#xff0c;或eslint认为此文件内存在无法处理的语法结构等问题。 解决方法&#xff1a; 1、把文件移到eslint检测外的文件引入…

R语言数据探索和分析23-公共物品问卷分析

第一次实验使用最基本的公共物品游戏&#xff0c;不外加其他的treatment。班里的学生4人一组&#xff0c;一共44/411组。一共玩20个回合的公共物品游戏。每回合给15秒做决定的时间。第十回合后&#xff0c;给大家放一个几分钟的“爱心”视频&#xff08;链接如下&#xff09;&a…

物证管理系统|DW-S404实现物证科学化管理

随着社会的进步和科技的发展&#xff0c;信息化和数字化已经成为各个行业的必然趋势。在众多领域中&#xff0c;物证管理系统逐渐受到广泛的关注和应用。 物证是公安机关处理案件的关键凭证&#xff0c;针对过去物证管理分散、损毁遗失等严重问题&#xff0c;集驰电子JIONCH推…

红队神器Evil-winrm的使用

前言 Evil-winrm 工具最初是由 Hackplayers 团队开发的。开发该工具的目的是尽可能简化渗透测试&#xff0c;尤其是在 Microsoft Windows 环境中。 Evil-winrm 使用 PowerShell 远程协议 (PSRP)&#xff0c;且系统和网络管理员经常使用Windows Remote Management 协议进行上传和…

DDei在线设计器-DDeiCore-布局插件

DDei-Core-布局 如需了解详细的API教程以及参数说明&#xff0c;请参考DDei文档 标准布局 经典的框架结构布局&#xff0c;包含了顶部菜单栏、控件工具项、画布、属性面板和底部工具栏等功能面板&#xff0c;通过插件配置可以调整每个部分的顺序和内容。 效果截图 使用方式…

基于JSP技术的文物管理系统

你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;文末可以找到我的联系方式。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSP技术 工具&#xff1a;IDEA/Eclipse、Navicat、Maven 系统展示 首页 管理员界面 用户前台…

【庞加莱几何-02】反演定理和证明

文章目录 一、说明二、 inversion和 reflection三、圆反演的定义四、广义的圆反演成圆 关键词&#xff1a;inversion、reflection 一、说明 这里是庞加莱几何的第二篇文章&#xff0c;是庞加莱基本几何属性的研究。本篇主要说清楚&#xff0c;什么是反演&#xff0c;在反演情况…

【面试官】知道synchronized锁升级吗

一座绵延在水上的美术馆——白鹭湾巧克力美术馆。它漂浮于绿水之上&#xff0c;宛如一条丝带轻盈地伸向远方 文章目录 可重入锁synchronized实现原理 synchronized缺点保存线程状态锁升级锁升级优缺点 1. 可重入锁 面试官&#xff1a;知道可重入锁有哪些吗? 可重入意味着获取…

HTTPS缺失?如何轻松解决IP地址访问时的“不安全”警告

一、问题现象 如果访问网站时出现以下任何一种情况&#xff0c;则说明该网站需要立即整改&#xff1a; 1.浏览器地址栏那里出现“不安全”字样&#xff1b; 2.小锁标志被红叉&#xff08;&#xff09;、斜线&#xff08;&#xff3c;&#xff09;等标志为不可用&#xff1b;…

sub_mch_id 与 sub_appid 不匹配怎么解决

小程序在支付的时候&#xff0c;有时候会碰到&#xff1a;sub_mch_id 与 sub_appid 不匹配的问题。这个问题意味着小程序微信支付时所使用的 sub_mch_id&#xff08;子商户号&#xff09;和 sub_appid&#xff08;小程序的appId&#xff09;不对应。下面就具体介绍如何核对是否…

武汉理工大学嵌入式系统应用之临时抱佛脚复习

其实大学很多课程的期末冲刺复习非常简单&#xff0c;就是在大脑中构建一个redis数据库就行了&#xff0c;缓存下一大堆键值对&#xff0c;然后考试的时候输出&#xff0c;很没意思。 嵌入式系统的定义 以应用为中心&#xff0c;以计算机技术为基础&#xff0c;软件硬件可裁剪…

LabVIEW控制PLC的实现方式

LabVIEW与PLC的结合可以充分发挥两者的优点&#xff0c;实现更高效、灵活和可靠的自动化控制系统。本文将详细介绍LabVIEW控制PLC的实现方式&#xff0c;包括通信接口、数据交换、编程方法及实际应用案例&#xff0c;帮助用户理解并应用这一技术。 通信接口 常见通信协议 La…

LabVIEW与PLC的区别

LabVIEW和PLC是工业自动化领域中常见的两种控制和测控方案&#xff0c;各自有独特的优点和适用场景。本文将从多角度比较两者&#xff0c;帮助用户在选择控制系统时做出更明智的决策。 技术背景 LabVIEW LabVIEW是由National Instruments公司开发的图形化编程环境&#xff0…