立即注册
查看: 763|回复: 2

[资料] 全志XR872 内部编解码器用户指南

已绑定手机
发表于 2023-2-13 09:27:48 | 显示全部楼层 |阅读模式 来自 广东省深圳市
驱动debug 调试打印使能,使能后驱动中所有调用到XRADIO_CODEC_DBG 宏定义的调试信息在codec 使用过程中会被打印出来,方便调试,如下图1-1 所示为播放时的调试打印:
图1-1 XR872 Internal Codec 播放调试信息打印.jpg
图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 注册时会为其申请内存,具体定义如下代码段所示:
  1. //Xradio codec priv struct
  2. struct Xradio_Codec_Priv {
  3. //codec status contrl
  4. bool isCodecInit;
  5. bool isTxInit;
  6. bool isRxInit;
  7. volatile bool txRunning;
  8. volatile bool rxRunning;
  9. //buffer control
  10. uint8_t *txBuf;
  11. uint8_t *rxBuf;
  12. uint8_t *writePointer;
  13. uint8_t *readPointer;
  14. uint32_t txBufSize;
  15. uint32_t rxBufSize;
  16. //DMA control
  17. uint8_t *txDmaPointer;
  18. uint8_t *rxDmaPointer;
  19. DMA_Channel txDMAChan;
  20. DMA_Channel rxDMAChan;
  21. DMA_DataWidth tx_data_width;
  22. DMA_DataWidth rx_data_width;
  23. volatile uint8_t txHalfCallCount;
  24. volatile uint8_t rxHalfCallCount;
  25. volatile uint8_t txEndCallCount;
  26. volatile uint8_t rxEndCallCount;
  27. //Semaphore control
  28. HAL_Semaphore txReady;
  29. HAL_Semaphore rxReady;
  30. bool isTxSemaphore;
  31. bool isRxSemaphore;
  32. } ;
  33. static struct Xradio_Codec_Priv *xradio_codec_priv;
复制代码
游客,如果您要查看本帖隐藏内容请回复


已绑定手机
已实名认证
发表于 2023-2-13 11:41:17 | 显示全部楼层 来自 广东省深圳市

好,学习一下啊!!!!!!!!!!!!!!!!!!!!
已绑定手机
发表于 2023-2-13 14:57:54 | 显示全部楼层 来自 广东省深圳市
学习一下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表