怎样进行RK3399 Linux4.4 Audio开发,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
RK3399的CPU采用big.LITTLE大小核架构,双Cortex-A72大核+四Cortex-A53小核结构,对整数、浮点、内存等作了大幅优化,在整体性能、功耗及核心面积三个方面都具革命性提升。
RK3399的GPU采用四核ARM新一代高端图像处理器Mali-T860,集成更多带宽压缩技术:如智能迭加、ASTC、本地像素存储等,还支持更多的图形和计算接口,总体性能比上一代提升45%。
RK3399安卓主板为消费类电子、智能终端、MID、无线通讯、医疗设备、工业控制等行业产品的应用开发而设计,超强的视频处理能力,超高清视频输出优势,接口丰富、性能稳定。支持Android/Linux/Ubuntu系统,软件支持完善,开放源代码适合企业二次开发带高清显示的商显广告机、自助售货机、教育终端等,可降低研发门槛,缩短产品研发周期。
音频开发指南
一个声卡包含 cpu_dai, codec_dai, 以及 dai_link 组成,分别对应 cpu dai 的
dirver,比如I²S driver, spdif driver; codec driver, 比如 rt5640 codec driver;
dai_link driver,也就是 machine driver, 比如
sound/soc/rockchip/rockchip_rt5640.c。 4.4 的内核中支持两种方式创建声卡,一种是通用的
simple-card framework,一种是传统的编写自定义的 machine driver 来创建。 本文档均以 rt5640 为例。
simple-card
Simple card 即简单通用的 machine driver, 如果 simple-card 框架足够满足需求,建议 优先使用 simple card 框架,简单,方便,且易用。
1.添加 codec driver,比如添加:sound/soc/codec/rt5640.c
2.修改 sound/soc/codec/Kconfig 以及 Makefile 加入驱动编译
3.menuconfig 中 enable simple card 以及 codec
4.产品的 DTS 中添加 Simple Card Node
需要注意的是,如上 rt5640 的 clocks 即 mclk, upstream 代码遵循谁使用 clk 谁申请的原 则,所以后续自己添加的 codec driver,如果有使用外部 clk 作为 mclk,需要做同样的适配。
自定义的 Machine Driver
simple card 不足以满足需求时,这个时候就需要编写相对应的
machine driver,比如: sound/soc/rockchip/rockchip_rt5640.c,然后在这个 machine
driver 添加特殊的控制,路由等等。这里不做举例,延续原有的格式,以及目录下均有参考代码可作为参照。
关于怎样进行RK3399 Linux4.4 Audio开发问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/199557.html