DSS代码解读-SRR_DSS_initTask(十二)

本文详细解读了DSS初始化线程中的关键步骤,包括mmWaveSDK组件初始化、ADC缓冲区配置、中断注册、邮箱驱动开启、内存分配和信号预处理(FFT配置、高级算法预处理及EDMA通道管理)。展示了从SDK组件到数据处理流程的完整初始化过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要:该线程函数是DSS初始化线程任务,初始化DSS子系统中的各个组件。接下来将对这个线程函数进行逐行注释讲解。代码是按照工程顺序讲解的。

1.函数参数

通过ctrl+右键跳转进入到该线程函数,首先可以看到以下代码,这部分代码属于线程函数的参数定义部分。

2.初始化mmWave SDK组件

对线程参数声明完之后,紧接着就是就是对SDK组件的初始化,如果不初始化,在使用SDK的其它函数(组件)时将会发生错误,此外,初始化还有一个用处就是,获得一个控制句柄,有了这个控制句柄,在使用SDK驱动程序的组件时,才不会发生错误。接下来将对这些组件进行一一讲解。

2.1 邮箱初始化

调用SDK外部函数来初始化DSS类型的邮箱

2.2 ADC缓冲区初始化并启动ADC驱动

在邮箱初始化之后,接着就是对ADC初始化以及启动ADC驱动。这都是通过调用SDK ADC驱动的外部函数来实现的,具体代码如下;

在这部分内容中,调用SRR_DSS_dssDataPathConfigAdcBuf 用户自定义的函数来一次性配置ADC缓冲区,我们跳转进入到该函数,代码如下所示

2.3 注册中断

ADC缓存区准备就绪之后,接下来就是给系统设置中断控制,分别是chirp使能中断和帧使能中断,即mmwave每发送一次chirp系统就中断一次,以及每完成一帧系统就中断一次,并完成相应回调函数的调用。代码如下所示;

2.4 开启邮箱驱动

中断事件注册完成后,接着就是开启邮箱驱动,使得MSS和DSS之间可以实现握手,值得注意的是,在调用相关外部函数启动邮箱前,已经调用过邮箱初始化函数了。代码注释如下;

3 内存分配

建立邮箱之后,接着就是将内存位置分配给SRR设计中使用的不同数据缓冲区,这是通过MmwDemo_dataPathConfigBuffers函数完成的。值得注意的是,处理雷达信号的每个步骤(1 - fft, 2 - fft, 3 - fft,检测,角度估计等)都是需要大量的划痕缓冲区。然而,由于这些阶段是连续发生的,分配给前一阶段使用的划痕缓冲区的内存可以在当前阶段重复使用。下面的代码中的宏MMW_ALLOC_BUF允许指定起始地址,这样内存位置可以被覆盖以有效地利用内存。另外在SRR TI设计中,每帧有两个子帧,两个子帧分别处理。因此,几乎每个划痕缓冲区的内存位置都可以覆盖在两者之间。分配代码被调用两次,为两个子帧分配内存。某些内存位置只对给定的处理路径是必需的,而对不同的编程路径不分配内存位置。与窗口函数、旋转因子和估计平均chirp相对应的内存位置需要在子帧之间保存,因此不能重叠。

4  信号预处理

在这部分内容用中,属于信号预处理范畴,主要包括以下部分:

1.分别为案列配置中的两个子帧填充FFT(快速傅里叶)所需的旋转因子(如果不知道旋转因子),预分配旋转因子的作用主要在于提高DSP计算FFT的运算速度。这个过程主要通过MmwDemo_dataPathConfigFFTs函数实现的,代码出现在dss_main.c文件中的第544行。

2.分别为子帧的更高级的算法做预处理(聚类算法dBscan,kalman跟踪),例如内存预分配,填充过程噪声矩阵以及初始化停车辅助模块等相关操作。代码在dss_main.c文件中的第547-559行中。

3.配置数据路径处理中使用的所有EDMA通道和参数集,EDMA的作用不言而喻,它可以将ADCbuff缓冲区中的数据转移到L2缓冲区进行FFT算法,并将FFT后的数据转移(可实现转置等相关操作)到L3缓存区等。代码在dss_main.c文件中的第566行。

5 启动信号处理线程

信号预处理之后,接着就是通过创建线程函数处理来着DEF的雷达原始数据,这些原始数据通常通过ADC采样后暂且存储在ADCBuff中,并通过DSS实时处理这些数据,这个过程主要通过线程函数SRR_DSS_mmWaveTask来完成的,该线程的创建在dss_main.c文件中的第575行。

到这里,关于DSS初始化线程已经基本解析完成,关于信号预处理的的几个函数,为了文章篇幅,在这里就不讲解了。在下一篇文章中。我将带大家过一遍信号处理线程中的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值