petalinux添加AD9361驱动


需要

  • petalinux2016.2
  • 包含AD9361驱动的Linux内核(xcomm_zynq_4_4)

一、准备工具

ADI提供的AD9361Linux驱动:
https://wiki.analog.com/resources/tools-software/linux-drivers/iio-transceiver/ad9361
源码链接,注意内核版本,这里我们选择xcomm_zynq_4_4:
https://github.com/analogdevicesinc/linux/tree/xcomm_zynq_4_4

petalinux2016.2官方链接
http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded-design-tools/2016-2.html

![注意petalinux内核版本]

二、步骤

  1. 将下载后的含有AD9361驱动的内核(xcomm_zynq_4_4)直接替换掉petalinux中的Linux内核;
    这里写图片描述
    注意:
  • 一定要注意petalinux中Linux的版本内核与ADI提供的Linux版本一致;
  • 下载后的ADI内核不需要编译,交给petalinux工具完成,顺序执行下列命令;
  1. 执行petalinux工具命令(参考UG1144,还是要注意版本):
    1. petalinux-create --type project --template zynq --name test
    2. petalinux-config --get-hw-description
    3. petalinux-config -c kernel
    4. 在build之前需要插入一个步骤,那就是修改设备树。详见步骤3
    5. petalinux-build
    6. petalinux-package --boot --fsbl ./image/linux/xxx.elf --fpga ./image/linux/xxx.bit --uboot
  2. 步骤2或者步骤3之后都可以执行修改,只要在build之前;
    1. 将内核目录:linux-xcommm_zynq_4_4 -> arch -> arm -> boot -> dts 的两个文件复制到步骤2中所建的工程目录: test -> subsystems -> linux -> config -> device-tree
      内核中的dtsi文件
      将dtsi文件添加到工程目录中
  3. 修改工程目录(test -> subsystems -> linux -> config -> device-tree)中dts文件:将步骤3-1中所添加的两个dtsi文件包含到system-top.dts中;
    这里写图片描述
  4. 修改步骤3-1中所添加的adi-fmcomms2.dtsi和adi-fmcomms3-up-down-converter.dtsi文件:如图添加语句;包括:#define fmc_spi spi0、#define fmc_i2c i2c0、#define pmod_spi spi1。
    这里写图片描述
    这里写图片描述
    这里写图片描述
  5. 将步骤2-6生成的镜像拷入FAT格式SD卡中,终端打印:

这里写图片描述


作者:行走的X君
来源:CSDN
原文:https://blog.csdn.net/zhouxiangjun11211/article/details/53998881
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 4
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
好的,关于PetaLinux开发UIO驱动,我可以给你一些基本的指导。 首先,UIO是一种通用的用户空间I/O框架,它允许用户空间的应用程序访问设备驱动程序。在PetaLinux中,你可以使用UIO驱动程序来访问PL中的IP核。下面是一些基本的步骤: 1.首先,在PetaLinux中启用UIO支持。你可以使用petalinux-config命令来打开配置菜单,选择Kernel菜单,然后选择Device Drivers -> Userspace I/O driver support -> Userspace I/O platform driver with generic IRQ handling支持。 2.然后,编写你的UIO驱动程序。你需要创建一个新的内核模块,实现UIO驱动程序的基本功能。你需要实现的主要函数是probe和remove,它们分别在设备被识别和移除时调用。在probe函数中,你需要初始化设备并注册UIO设备,然后将设备映射到用户空间。在remove函数中,你需要取消设备的映射和UIO设备的注册。 3.编译并加载你的UIO驱动程序。在PetaLinux中,你可以使用petalinux-build命令来编译内核模块,并使用petalinux-module命令将其加载到系统中。 4.在用户空间中使用UIO设备。一旦你的UIO驱动程序加载到系统中,你就可以在用户空间中使用它了。你需要使用mmap函数将UIO设备映射到用户空间,并使用read和write函数访问设备。 希望这些基本的指导对你有所帮助。如果你需要更详细的指导,可以参考PetaLinux文档或者一些UIO驱动程序的示例代码。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值