imx6ul linux实现MQS播放音乐

imx6ul linux实现MQS播放音乐imx6ullinux 实现 MQS 播放音乐

1.配置内核

wujun@wj-vBox:~/freescale/linux-imx$ make menuconfig

2.修改dts

imx6ul-14×14-ddr3-arm2.dts

456 pinctrl_mqs: mqsgrp { 457 fsl,pins = < 458 MX6UL_PAD_JTAG_TDI__MQS_LEFT 0x11088 459 MX6UL_PAD_JTAG_TDO__MQS_RIGHT 0x11088 460 >; 461 };

imx6ul-14×14-ddr3-arm2-mqs.dts

***************** /* * Copyright (C) 2015 Freescale Semiconductor, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #include “imx6ul-14×14-ddr3-arm2.dts” / { sound-mqs { compatible = “fsl,imx6ul-ddr3-arm2-mqs”, “fsl,imx-audio-mqs”; model = “mqs-audio”; cpu-dai = <&sai1>; asrc-controller = <&asrc>; audio-codec = <&mqs>; }; }; &clks { assigned-clocks = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>; assigned-clock-rates = <>; }; &sai1 { assigned-clocks = <&clks IMX6UL_CLK_SAI1_SEL>, <&clks IMX6UL_CLK_SAI1>; assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>; assigned-clock-rates = <0>, <>; status = “okay”; }; &mqs { pinctrl-names = “default”; pinctrl-0 = <&pinctrl_mqs>; clocks = <&clks IMX6UL_CLK_SAI1>; clock-names = “mclk”; status = “okay”; }; *****************
wujun@wj-vBox:~/freescale/linux-imx$ grep -rn “compatible” sound/soc/ | grep “mqs” sound/soc/codecs/fsl_mqs.c:208: { .compatible = “fsl,imx6sx-mqs”, }, sound/soc/fsl/imx-mqs.c:257: { .compatible = “fsl,imx-audio-mqs”, },
pinctrl_mqs: mqsgrp { fsl,pins = < MX6UL_PAD_GPIO1_IO01__MQS_LEFT 0x11088 MX6UL_PAD_GPIO1_IO00__MQS_RIGHT 0x11088 >; };

这里我们更换了两个pin,因为上面两个pin已经接出来了,可以方便连线。

关于GPIO的定义可以在imx6ul-pinfunc.h文件中搜索。

./imx6ul-pinfunc.h:86:#define MX6UL_PAD_GPIO1_IO01__MQS_LEFT 0x0060 0x02EC 0x0000 0x4 0x0 ./imx6ul-pinfunc.h:77:#define MX6UL_PAD_GPIO1_IO00__MQS_RIGHT 0x005C 0x02E8 0x0000 0x4 0x0

3.编译

wujun@wj-vBox:~/freescale/linux-imx$ make dtbs DTC arch/arm/boot/dts/imx6ul-14×14-evk-mqs.dtb

因为没有修改内核,所以可以不需要编译,如果有修改就要编译一下make -j8

将内核和dtb拷贝出来放到tftp的共享目录下。

wujun@wj-vBox:~/freescale/linux-imx$ cp arch/arm/boot/zImage ~/share-doc/ wujun@wj-vBox:~/freescale/linux-imx$ cp arch/arm/boot/dts/imx6ul-14×14-ddr3-arm2.dtb ~/share-doc/

4.更新系统

=> setenv ipaddr 192.168.56.6;setenv serverip 192.168.56.5; => mmc dev 1;setenv bootargs console=ttymxc0, root=/dev/mmcblk1p2 rootwait rw; switch to partitions #0, OK mmc1 is current device => tftp 0x zImage;tftp 0x81A00000 imx6ul-14×14-evk-mqs.dtb;bootz 0x0x81A00000;

内核启动后查看内核log

root@imx6ulevk:~# dmesg | grep mqs [ 2.] imx-mqs sound-mqs: fsl-mqs-dai <-> .sai mapping ok [ 2.] imx-mqs sound-mqs: snd-soc-dummy-dai <-> .asrc mapping ok [ 2.] imx-mqs sound-mqs: fsl-mqs-dai <-> .sai mapping ok [ 2.] #0: mqs-audio

设备已经有了实际上是在/dev/snd下,下面就是需要测试设备是否正常.

5.安装播放器

EVK上编译

wujun@wj-vBox:~/wavplay$ gcc wavplay.c -o wav-player /usr/lib/libasound.so wujun@wj-vBox:~/wavplay$ ./wav-player wav-test.wav
root@imx6ulevk:~# dmesg | grep mqs [ 2.] imx6ul-pinctrl 20e0000.iomuxc: pin MX6UL_PAD_GPIO1_IO01 already requested by .tsc; cannot claim for .aips-bus:mqs [ 2.] imx6ul-pinctrl 20e0000.iomuxc: pin-24 (.aips-bus:mqs) status -22 [ 2.] imx6ul-pinctrl 20e0000.iomuxc: could not request pin 24 (MX6UL_PAD_GPIO1_IO01) from group mqsgrp on device 20e0000.iomuxc
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/199055.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午1:57
下一篇 2026年3月26日 下午1:57


相关推荐

  • VMware-workstation16 安装VM无权输出许可证密钥,请使用系统管理员账户重试

    VMware-workstation16 安装VM无权输出许可证密钥,请使用系统管理员账户重试Vmware 安装出现的相关问题

    2026年2月4日
    3
  • WriteProcessMemory_linux注入

    WriteProcessMemory_linux注入今天要完成一个项内容,运行另一个应用程序abc.exe,实现它的父进程是explorer.exe。最开始的思路是获得explorer.exe的句柄,用ShellExecute启动abc.exe。但是用explorer.exe的句柄创建的进程的父进程依然是调用和进程,而不是传入句柄的进程。看来直接的不行,只能用间接的了。把运行abc.exe的代码段写到explorer.exe的内存里面去。然

    2025年11月7日
    5
  • win10 如何查看redis版本「建议收藏」

    win10 如何查看redis版本「建议收藏」1下载redis并且解压https://www.runoob.com/redis/redis-install.html2分别启动服务端和客户端3在服务端输入info命令,可以看到当前版本

    2022年5月29日
    50
  • Java8中String.join方法,让我们的代码更优美

    Java8中String.join方法,让我们的代码更优美强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】距Java8(14年3月19日)发布马上就四年了;相信接触过java8的人,会对它的很多新的特性新的方法有感觉;自然我也不例外;今天就一起给大家分享一个java8中的方法。【善用新语法,让代码更优美】一、简洁:最近自己在做项目的时候学习到很多技巧…

    2022年6月4日
    49
  • ConstraintLayout,RelativeLayout和LinearLayout的性能对比

    ConstraintLayout,RelativeLayout和LinearLayout的性能对比从五年前刚接触 Android 开发 到初入职场 不管想写什么小 demo 或者做什么课程设计 拿到需求 我就开始自己的线性布局之旅了 不管多么复杂的布局 我几乎都能通过各种嵌套来实现 但是 逐渐的 我也听到身边的同事说线性布局嵌套会导致过度绘制 影响性能等等的说法 那时 我还一脸懵逼 确实 那时候 我也只是想着完成功能 那么 为什么我想写一篇文章来对比一下这三种布局

    2026年3月26日
    2
  • PHPStorm 安装说明

    PHPStorm 安装说明PHPStorm 安装说明与激活 1 进入 PHPStorm 官网 下载 PhpStorm 2020 1 3 版本 2 双击 PhpStorm 2020 1 3 exe 点击 next3 选择安装目录 点击 Next4 选择安装目录 点击 Next

    2026年3月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号