zedboard 音频芯片 adau1761 linux 下音频驱动(三)PetaLinux

一、概述

在这一篇文章,我们使用PetaLinux生成BOOT.bin、image.ub内核文件,用于下一步播放音乐调试。我们使用的Linux环境是Ubuntu14.04.4,软件为petalinux 2015.4; vivado 2015.4.

二、准备工作

1、建立工程文件夹。

~$ mkdir zed_sound_csdn

2、拷贝硬件

将 “\Test01_adau1761.sdk\system_wrapper.hdf” 拷贝至当前Linux目录。

3、下载ADI Linux Kernel:

https://github.com/analogdevicesinc/linux

点击 “ Branch: master ” 使用2015_R2版本。(xcomm_zynq_4_0,petalinux-build时编译内核会报错)

# unzip linux-2015_R2

将 “ linux-2015_R2.zip ” 解压到 “ /opt/petalinux-v2015.4-final/components/linux-kernel ” 下,与 “ xlnx-4.0 ” 同级。 

三、新建工程

$ source /opt/petalinux-v2015.4-final/settings.sh
$ petalinux-create --type project --template zynq --name zed_sound
...
--- copy system_wrapper.hdf to current project ---
...
$ petalinux-config --get-hw-description=.

linux Components Selection -> kernel -> linux-2015_R2 -> Save -> Exit

注:本章节后的命令如果有操作错误的,可以使用命令,清空工程:

--- 重新打开配置MENU,选择内核 ---
$ petalinux-config

--- 如误操作,可使用此命令clean工程 ---
$ petalinux-build -x mrproper

 

四、修改设备树

进入 “ zed_sound/subsystems/linux/configs/device-tree ” 目录,如果是zedboard开发板,只需要在 “ pl.dtsi ” 加入代码,其他文件默认。修改后的文件如下,也可在资料包中找到该文件。注意,将AXI-I2C控制器中断源从“29”改到“30”,原理可参考:

1、https://blog.csdn.net/jackyard/article/details/30485841

2、ug585 Chapter 7: Interrupts

五、配置工程

  • 1、内核
$ petalinux-config -c kernel

1、Device Drivers -> I2C support -> I2C Hardware Bus support 按两下空格,<*> 选中 “Xilinx I2C Controller”。

2、Device Drivers -> Sound card support -> Advanced Linux Sound Architecture -> ALSA for SoC audio support

<*> 选中 “AXI-I2S support” 和 “ZED board sound support”,即使不是zedboard,也要选中。

3、Save -> Exit

以上两步见下图:

  • 2、添加自定义Modules

1、新建驱动:

$ petalinux-create -t modules --name audio_module --enable

2、拷贝文件:

将 “ adau1761.bin、audio_module.c ” 拷贝至 “ components/modules/audio_module ”

注:更详细内容请参考UG1144(v2015.4) PetaLinux Tools Reference Guide

  • 3、配置文件系统
$ petalinux-config –c rootfs

Modules -> [*] 选中 audio_module -> Save -> Exit

六、编译工程

  • 大约10min编译结束
$ petalinux-build
  • 生成BOOT.bin
$ cd /zed_sound/images/linux
$ source /opt/Xilinx/SDK/2015.4/settings64.sh
$ petalinux-package --boot --fsbl zynq_fsbl.elf --fpga system_wrapper.bit --u-boot
  • 测试

将当前目录BOOT.BIN image.ub拷贝至SD卡,打开串口,给开发板上电。出现下图本例成功。

  • 登录Linux

使用用户名和密码:root,登入开发板

七、结语:

到此,使用PetaLinux工具,简单的Linux内核驱动移植完毕。

转载请注明原作者及原文出处。

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值