已绑定手机
|
驱动debug 调试打印使能,使能后驱动中所有调用到XRADIO_CODEC_DBG 宏定义的调试信息在codec 使用过程中会被打印出来,方便调试,如下图1-1 所示为播放时的调试打印:
图1-1 XR872 Internal Codec 播放调试信息打印
如上图所示,其中带有“[XRADIO_INTERNAL_CODEC]”前缀的打印为XR872 Internal Codec 驱动的调试信息打印。建议调试过程中使能此宏,调试完成后可关闭。
配置建议:此宏可根据调试需要来打开或者关闭;默认关闭;
1.1.2 XRADIO_CODEC_ERR_EN
驱动error 调试打印使能,使能后驱动中所有调用到XRADIO_CODEC_ERR 和XRADIO_CODEC_IT_ERR 宏定义的调试信息在codec 使用过程中会被打印出来,方便驱动出错时调试查找问题。
另外,驱动中还有一个XRADIO_CODEC_ALWAYS 宏定义,使用此宏定义的调试信息始终会打印出来,不受使能控制,如配置音量、路径时的打印。
配置建议:此宏可根据调试需要来打开或者关闭;默认打开;
1.2 功能配置宏定义说明
1.2.1 XRADIO_DEFAULT_PLAY_VOLUME
默认播放音量,声卡注册时会初始化播放音量为VOLUME_INVALID,此时如果应用层未设置过播放音量,则播放时会使用此处定义的默认播放音量,应用层设置过播放音量后则会使用应用设置的播放音量。
配置建议:采用默认值即可;默认值为VOLUME_LEVEL31;
1.2.2 XRADIO_DEFAULT_RECORD_GAIN
默认录音增益,声卡注册时会初始化录音音量为VOLUME_INVALID,此时如果应用层未设置过录音音量,则录音时会使用此处定义的默认录音音量,应用层设置过录音音量后则会使用应用设置的录音音量。
配置建议:采用默认值即可;默认值为VOLUME_GAIN_0dB;
1.2.3 XRADIO_PLAY_UNDERRUN_THRESHOLD
播放underrun 阈值配置,DMA underrun 达到此阈值后会停止播放。
配置建议:采用默认值即可;默认值为3;
1.2.4 XRADIO_RECORD_OVERRUN_THRESHOLD
录音overrun 阈值配置,DMA overrun 达到此阈值后会停止录音。
配置建议:采用默认值即可,默认值为3;
1.2.5 XRADIO_CODEC_MALLOC
Xradio Internal Codec 驱动中申请内存宏定义接口。
配置建议:采用默认值即可;默认值为HAL_Malloc;
1.2.6 XRADIO_CODEC_FREE
Xradio Internal Codec 驱动中释放内存宏定义接口。
配置建议:采用默认值即可;默认值为HAL_Free;
1.2.7 XRADIO_CODEC_MeMCPY
Xradio Internal Codec 驱动中memcpy 宏定义接口。
配置建议:采用默认值即可;默认值为HAL_Memcpy;
1.2.8 XRADIO_CODEC_MEMSET
Xradio Internal Codec 驱动中memset 宏定义接口。
配置建议:采用默认值即可;默认值为HAL_Memset;
2 基本接口
2.1 Xradio_Codec_Priv 结构体
struct Xradio_Codec_Priv 结构体为Xradio Internal Codec 驱动中使用的私有数据结构,其对应定义的全局指针变量为xradio_codec_priv,在Codec 注册时会为其申请内存,具体定义如下代码段所示:
- //Xradio codec priv struct
- struct Xradio_Codec_Priv {
- //codec status contrl
- bool isCodecInit;
- bool isTxInit;
- bool isRxInit;
- volatile bool txRunning;
- volatile bool rxRunning;
- //buffer control
- uint8_t *txBuf;
- uint8_t *rxBuf;
- uint8_t *writePointer;
- uint8_t *readPointer;
- uint32_t txBufSize;
- uint32_t rxBufSize;
- //DMA control
- uint8_t *txDmaPointer;
- uint8_t *rxDmaPointer;
- DMA_Channel txDMAChan;
- DMA_Channel rxDMAChan;
- DMA_DataWidth tx_data_width;
- DMA_DataWidth rx_data_width;
- volatile uint8_t txHalfCallCount;
- volatile uint8_t rxHalfCallCount;
- volatile uint8_t txEndCallCount;
- volatile uint8_t rxEndCallCount;
- //Semaphore control
- HAL_Semaphore txReady;
- HAL_Semaphore rxReady;
- bool isTxSemaphore;
- bool isRxSemaphore;
- } ;
- static struct Xradio_Codec_Priv *xradio_codec_priv;
复制代码
|
|