关于AIF的几个问题,谢谢。example的 LTE FDD 20M project
1. 在发送时,mono descriptor的16byte header,是否会一起发送?
理论上应该只发送mono descriptor的payload,但是在Rx中的PS头信息等是怎么得到的?
在接收时QMSS是否是自己对每个接收到packet添加mono descriptor header?
PS. QMSS中mono descriptor header 类型的结构体定义 和 csl_getPSData( ),csl_getPayload( )
等得到的偏移是相重复的。 按照mono descriptor header 的定义,header共有大概 8个Uint32,
而AIF的 descriptor头只有16byte,其中PSdata 4 byte。
在工程中初始化数据以后看Tx 数据,推出PS data偏移是在结构体定义的‘reserved’元素处。payload应该紧接其后开始
这个确实就是这样的吗?
2. 程序配置为每个subframe产生event,这个event是在subframe的开头产生,还是在subframe的结束时候产生?
在第N个event 中断函数中push 下次需要发送的symbol(14个),是在第N个event中断后紧接的subframe发出,
在第N+1个中断后的subframe发出?从程序来看是在N+1个event中断后的subframe发出。
3. aif 的driver中enum AIF_Mode的选择只有“LTE FDD”,不知道AIF 对LTE TDD的支持是如何的?
而且MCSDK中没有LTE TDD的样例。可以直接参照FDD?
mode 中的 ABTburst 和 ABTstream 模式是什么?
4. AIF 的LLD 对LTE的 extended CP是否支持?有没有样例参考?
5. 在样例project中,如果在event中断中取消 不断从RxQ中pop,程序任然能运行。那么如果不手动回收RxQ的descriptor
QMSS是否会自己回收RxQ的descriptor 到RxFDQ中(相当于接收的数据覆盖)?那么不会出现RxFDQ starvation什么的?
6. 对5M LTE FDD,驱动的速率配置最小是2x的,为什么没有1x的?此时AIF支持4 channel在每个link上,
如果只使用一条link上的4个channel的0和1,是否全部4个channel都需初始化?
在接收时只处理 channel 0和1的RxQ 呢,还是需要pop 4个channel 的RxQ?
若不管channel 3、4,会不会出现descriptor 消耗完的情况?
gulfweed:
回复 Zhan Xiang:
谢谢Zhan Xiang。还有几个问题:
1. 如果Tx端没有push data到TxQ,根据调程序的情况,Rx端似乎不会消耗RxFDQ的descriptor, 而此时链路上的CPRI协议是一直有填充‘0’发送的。是这样吗? 而在data 被push到TxQ后,Rx端才会需要手动pop RxQ的descriptor
2. 多个channel情况,若不初始化,貌似会有打印错误出来;