当前位置: 首页 > news >正文

四川省城乡住房和城乡建设厅网站相亲网站开发与设计报告

四川省城乡住房和城乡建设厅网站,相亲网站开发与设计报告,如何百度搜到网站,做网站需要注册吗【 声明#xff1a;版权所有#xff0c;欢迎转载#xff0c;请勿用于商业用途。 联系信箱#xff1a;feixiaoxing 163.com】 之前在芯片公司的时候#xff0c;基本没有看过音频这一块#xff0c;只知道有个alsa框架这么个知识点。要驱动音频#xff0c;需要两部分#…【 声明版权所有欢迎转载请勿用于商业用途。 联系信箱feixiaoxing 163.com】 之前在芯片公司的时候基本没有看过音频这一块只知道有个alsa框架这么个知识点。要驱动音频需要两部分一部分就是底层驱动一部分就是alsa上层接口两者缺一不可。对于荔枝派来说底层的驱动其实都已经包含在linux kernel里面了客户只要自己port好一个alsa库或者类alsa库就可以开始播放音频、录制音频了。 1、电路 电路分成两个部分一个是mic也就是麦克风录制音频用 另外一个是headphone也就是耳机输出音频用 不管是哪一个电路通过观察发现电路中并没有音频电路经常出现的iis接口。这就说明v3s和网卡一样本身已经集成了数模转换和功放功能了不需要额外芯片了。遇到这种情况一般soc厂商都会自己默默把驱动代码准备好省着使用者去二次开发了。毕竟都是自己的东西驱动写起来也得心应手不用外人劳神劳力了。 2、设备树 本次使用的内核依然是linux-zero-4.14.y顶层设备树是 sun8i-v3s-licheepi-zero-dock.dts。查看一下设备树的内容可以发现声卡驱动已经集成到里面了 codec {allwinner,audio-routing Headphone, HP,Headphone, HPCOM,MIC1, Mic,Mic, HBIAS;status okay; }; 当然仅仅有这些还是不够的进一步阅读sun8i-v3s.dtsi文件可以看到codec的具体实现细节 codec: codec01c22c00 {#sound-dai-cells 0;compatible allwinner,sun8i-v3s-codec;reg 0x01c22c00 0x400;interrupts GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH;clocks ccu CLK_BUS_CODEC, ccu CLK_AC_DIG;clock-names apb, codec;resets ccu RST_BUS_CODEC;dmas dma 15, dma 15;dma-names rx, tx;allwinner,codec-analog-controls codec_analog;status disabled;};codec_analog: codec-analog01c23000 {compatible allwinner,sun8i-v3s-codec-analog;reg 0x01c23000 0x4;}; 有了这两个配置基本上声卡驱动就有保证了。好在这些都是默认配置对于用户来说就是什么都不需要做系统上电后声卡就已经加载好了。 3、判断声卡是否正确加载 判断声卡有没有加载好主要有两个办法。第一就是看内核启动日志第二就是看/dev/snd下面的节点有没有正确生成。查看日志的话如果启动ok应该是可以看到这些打印的 [ 1.380188] sun4i-codec 1c22c00.codec: Codec - 1c22c00.codec mapping ok [ 1.388822] sun6i-rtc 1c20400.rtc: setting system clock to 1970-01-01 00:00:40 UTC (40) [ 1.397167] vcc5v0: disabling [ 1.400142] ALSA device list: [ 1.403106] #0: V3s Audio Codec 不放心日志的话可以输入ls -l /dev/snd进一步确认下 # ls -l /dev/snd total 0 crw------- 1 root root 116, 0 Jan 1 00:00 controlC0 crw------- 1 root root 116, 24 Jan 1 00:00 pcmC0D0c crw------- 1 root root 116, 16 Jan 1 00:00 pcmC0D0p crw------- 1 root root 116, 33 Jan 1 00:00 timer另外也可以查看下/sys/class/sound下面的节点也可以算是一种方法 # cd /sys/class/sound/ # ls card0 controlC0 pcmC0D0c pcmC0D0p timer不管是哪一种方法基本上看到这些打印或者节点信息就可以认为声卡被系统正确加载了。 4、编译安装TinyAlsa 前面我们说过如果需要让声卡驱动起来除了驱动本身之外还需要一个alsa的库。TinyAlsa就是比较适合使用的那个库下载位置在这 https://github.com/tinyalsa/tinyalsa 下载好压缩包之后拷贝到ubuntu虚拟机直接用arm-linux-gnueabihf-交叉编译器来编译。解压一下接着cd到解压目录后直接输入这个命令 make CROSS_COMPILEarm-linux-gnueabihf- 不出意外的话在utils子目录下面就可以看到四个编译好的工具 tinycap tinymix tinypcminfo tinyplay通过观察编译日志发现这四个程序都是静态链接libtinyalsa.a所以直接拷贝四个文件即可不需要拷贝其他动态库。 make -C src make[1]: Entering directory /home/feixiaoxing/Desktop/tinyalsa-master/src arm-linux-gnueabihf-gcc -Wall -Wextra -Werror -Wfatal-errors -I ../include -fPIC -c -o limits.o limits.c arm-linux-gnueabihf-gcc -Wall -Wextra -Werror -Wfatal-errors -I ../include -fPIC -c -o mixer.o mixer.c arm-linux-gnueabihf-gcc -Wall -Wextra -Werror -Wfatal-errors -I ../include -fPIC -c -o pcm.o pcm.c arm-linux-gnueabihf-gcc -Wall -Wextra -Werror -Wfatal-errors -I ../include -fPIC -c -o pcm_plugin.o pcm_plugin.c arm-linux-gnueabihf-gcc -Wall -Wextra -Werror -Wfatal-errors -I ../include -fPIC -c -o pcm_hw.o pcm_hw.c arm-linux-gnueabihf-gcc -Wall -Wextra -Werror -Wfatal-errors -I ../include -fPIC -c -o snd_card_plugin.o snd_card_plugin.c arm-linux-gnueabihf-gcc -Wall -Wextra -Werror -Wfatal-errors -I ../include -fPIC -c -o mixer_plugin.o mixer_plugin.c arm-linux-gnueabihf-gcc -Wall -Wextra -Werror -Wfatal-errors -I ../include -fPIC -c -o mixer_hw.o mixer_hw.c arm-linux-gnueabihf-ar rv libtinyalsa.a limits.o mixer.o pcm.o pcm_plugin.o pcm_hw.o snd_card_plugin.o mixer_plugin.o mixer_hw.o arm-linux-gnueabihf-ar: creating libtinyalsa.a a - limits.o a - mixer.o a - pcm.o a - pcm_plugin.o a - pcm_hw.o a - snd_card_plugin.o a - mixer_plugin.o a - mixer_hw.o arm-linux-gnueabihf-gcc -shared -Wl,-soname,libtinyalsa.so.2 limits.o mixer.o pcm.o pcm_plugin.o pcm_hw.o snd_card_plugin.o mixer_plugin.o mixer_hw.o -o libtinyalsa.so.2.0.0 ln -sf libtinyalsa.so.2.0.0 libtinyalsa.so.2 ln -sf libtinyalsa.so.2 libtinyalsa.so make[1]: Leaving directory /home/feixiaoxing/Desktop/tinyalsa-master/src make -C utils make[1]: Entering directory /home/feixiaoxing/Desktop/tinyalsa-master/utils arm-linux-gnueabihf-gcc -Wall -Wextra -Werror -Wfatal-errors -I ../include -fPIC -O2 -c -o tinyplay.o tinyplay.c arm-linux-gnueabihf-gcc -L ../src -pie tinyplay.o ../src/libtinyalsa.a -ldl -o tinyplay arm-linux-gnueabihf-gcc -Wall -Wextra -Werror -Wfatal-errors -I ../include -fPIC -O2 -c -o tinycap.o tinycap.c arm-linux-gnueabihf-gcc -L ../src -pie tinycap.o ../src/libtinyalsa.a -ldl -o tinycap arm-linux-gnueabihf-gcc -Wall -Wextra -Werror -Wfatal-errors -I ../include -fPIC -O2 -c -o tinymix.o tinymix.c arm-linux-gnueabihf-gcc -L ../src -pie tinymix.o ../src/libtinyalsa.a -ldl -o tinymix arm-linux-gnueabihf-gcc -Wall -Wextra -Werror -Wfatal-errors -I ../include -fPIC -O2 -c -o tinypcminfo.o tinypcminfo.c arm-linux-gnueabihf-gcc -L ../src -pie tinypcminfo.o ../src/libtinyalsa.a -ldl -o tinypcminfo make[1]: Leaving directory /home/feixiaoxing/Desktop/tinyalsa-master/utils make -C doxygen make[1]: Entering directory /home/feixiaoxing/Desktop/tinyalsa-master/doxygen Makefile:11: doxygen is not available please install it make[1]: Nothing to be done for all. make[1]: Leaving directory /home/feixiaoxing/Desktop/tinyalsa-master/doxygen make -C examples make[1]: Entering directory /home/feixiaoxing/Desktop/tinyalsa-master/examples arm-linux-gnueabihf-gcc -Wall -Wextra -Werror -Wfatal-errors -I ../include pcm-readi.c ../src/libtinyalsa.so -ldl -o pcm-readi arm-linux-gnueabihf-gcc -Wall -Wextra -Werror -Wfatal-errors -I ../include pcm-writei.c ../src/libtinyalsa.so -ldl -o pcm-writei make[1]: Leaving directory /home/feixiaoxing/Desktop/tinyalsa-master/examples如何把四个文件拷贝到开发板这个就不再赘述了。主要还是使用python http库和开发板上的wget命令来共同完成的。 5、寻找音频文件 目前tinyalsa的工具只能播放wav文件所以我们还需要找一个可以下载wav文件的网站。这里推荐一个网站链接给大家 https://www.xmwav.com/ 下载好音频文件之后还是用同样的方法下载到开发板上面。 6、播放音频和录制音频 6.1 播放音频 播放音频的时候除了正常插入耳机还有三个地方需要注意下不然听不到音频输出。第一就是打开播放开关第二设置音量第三确认下前面的设置有没有对。这三个步骤都做完了就可以播放音频了。设置命令主要是tinymix播放命令是tinyplay。 # ./tinymix set 1 40 # ./tinymix set 2 1 # ./tinymix contents Number of controls: 13 ctl type num name value 0 INT 1 DAC Playback Volume 63 (range 0-63) 1 INT 1 Headphone Playback Volume 40 (range 0-63) 2 BOOL 2 Headphone Playback Switch On, Off 3 INT 1 Mic1 Playback Volume 3 (range 0-7) 4 INT 1 Mic1 Boost Volume 4 (range 0-7) 5 INT 1 ADC Gain Capture Volume 3 (range 0-7) 6 BOOL 2 DAC Playback Switch Off, Off 7 BOOL 2 DAC Reversed Playback Switch Off, Off 8 BOOL 2 Mic1 Playback Switch Off, Off 9 BOOL 2 Mixer Capture Switch Off, Off 10 BOOL 2 Mixer Reversed Capture Switch Off, Off 11 BOOL 2 Mic1 Capture Switch Off, Off 12 ENUM 2 Headphone Source Playback Route DAC, Mixer, , DAC, Mixer, 播放刚才下载的音频 # ./tinyplay test.wav playing test.wav: 2 ch, 44100 hz, 16-bit signed PCM6.2 录制音频 录制音频和播放音频差不多。第一步打开录制开关第二步确认配置ok。前两步都做好了之后就可以用tinycap录制音频了结束录制用ctrlc # ./tinymix set 11 1 # ./tinymix contents Number of controls: 13 ctl type num name value 0 INT 1 DAC Playback Volume 63 (range 0-63) 1 INT 1 Headphone Playback Volume 40 (range 0-63) 2 BOOL 2 Headphone Playback Switch On, Off 3 INT 1 Mic1 Playback Volume 3 (range 0-7) 4 INT 1 Mic1 Boost Volume 4 (range 0-7) 5 INT 1 ADC Gain Capture Volume 3 (range 0-7) 6 BOOL 2 DAC Playback Switch Off, Off 7 BOOL 2 DAC Reversed Playback Switch Off, Off 8 BOOL 2 Mic1 Playback Switch Off, Off 9 BOOL 2 Mixer Capture Switch Off, Off 10 BOOL 2 Mixer Reversed Capture Switch Off, Off 11 BOOL 2 Mic1 Capture Switch On, Off 12 ENUM 2 Headphone Source Playback Route DAC, Mixer, , DAC, Mixer, # ./tinycap record.wav Capturing sample: 2 ch, 48000 hz, 16 bit如果想要确认录制的音频有没有问题那么直接用tinyplay播放下即可 # ./tinyplay record.wav playing record.wav: 2 ch, 48000 hz, 16-bit signed PCM Played 1601536 bytes. Remains 0 bytes.
http://www.tj-hxxt.cn/news/224635.html

相关文章:

  • 官网和网站的区别济宁网络
  • Wordpress网站开发收费游戏制作软件培训
  • 创意活动策划网站工作组赴哈尔滨
  • 公司网站做的比较好自己制作的网站怎么发布
  • 花生壳域名直接做网站阿里云免费建站
  • 网站开发环境包括什么seo外链怎么发
  • 网站联动商业网站设计
  • 网站怎么描述个人网页设计作品欣赏
  • 婚纱网站怎么做什么是网站开发公司电话
  • 做产地证需要备案上哪个网站产品开发
  • 政务网站建设 云南 公司外贸资讯网站
  • 中国电信新建网站备案管理系统 录完信息艺术视频手机网站可以做吗
  • 瓯海住房与城乡建设局网站罗湖商城网站设计多少钱
  • 初二怎么做网站seo网站案例
  • 淘宝客如何建设自己的网站企业服务咨询
  • 花木企业网站源码wordpress 仪表板主题
  • 网站开发的最后5个阶段网站建设依据什么法律
  • 海宁市规划建设局网站做招聘网站需要什么
  • 郑州快速建站公司仿素材网站源码
  • 上海的设计网站单位网站中文域名到期续费
  • 深圳网站推广优如何重建网站
  • 青海网页设计与网站建设网站建设创意文案
  • 做外贸网站案例宝安网站建设方案外包
  • 唐山做网站的电话吉林城市建设学校网站
  • ip做网站需要过白名单吗上海网站建设与设计公司好
  • 展示型网站模板代码百度seo官网
  • 旅游社网站建设规划书网站建设开场白
  • 镇江网站建设方式优化网站后台添加东西不能粘贴
  • 衡水需要做网站的公司开网站做彩票赚钱吗
  • 杭州网站建站公司自己做网站卖产品怎么样