libiio

这篇博客详细介绍了如何在Ubuntu台机上编译libiio库,包括禁用特定功能的步骤,并探讨了交叉编译的过程。此外,还提供了libiio相关测试程序的使用方法,如iiod、iio_info和iio_attr等,涵盖本地和IP连接方式的数据读取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

参考资料

Ubuntu台机编译

交叉编译

libxml

libiio

CMakeLists.txt修改

编译

测试程序

iiod

iio_info

local方式

 IP方式

iio_attr

显示可用上下文

显示可用设备 

显示设备属性

 显示可用通道

显示通道属性

 IP方式显示可用设备

iio_readdev

local方式读取数据

IP方式显示读取数据

于libiio开发


参考资料

libiio

Ubuntu台机编译

Ubuntu 16.04.4 LTS系统, 使用cmake编译,禁用AIO、DNS_SD。

$ git clone https://github.com/analogdevicesinc/libiio.git
$ cd libiio
$ git log -1
commit 1e9e1647809bc0bdeab22753d7e61a22e4030d07
Author: Michael Hennerich <michael.hennerich@analog.com>
Date:   Thu Jul 22 13:37:57 2021 +0200

    bindings: python iio.py: find_device() also use label

    When multiple devices with the same name exist, label is used to
    differentiate them. Update find_device to also support labels.

    Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
$ mkdir build
$ cd build
$ cmake ../ -DWITH_AIO=OFF -DHAVE_DNS_SD=OFF
-- cmake version: 3.5.1
-- The C compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Performing Test HAS_WPEDANTIC
-- Performing Test HAS_WPEDANTIC - Success
-- Performing Test HAS_WSHADOW
-- Performing Test HAS_WSHADOW - Success
-- Looking for strdup
-- Looking for strdup - found
-- Looking for strndup
-- Looking for strndup - found
-- Looking for strerror_r
-- Looking for strerror_r - found
-- Looking for newlocale
-- Looking for newlocale - found
-- Looking for in6addr_any
-- Looking for in6addr_any - found
-- Looking for libusb-1.0 : Found
-- Looking for libusb_get_version
-- Looking for libusb_get_version - found
-- Found Git: /usr/bin/git (found version "2.7.4")
-- Building with Network back end support
-- Performing Test WITH_NETWORK_EVENTFD
-- Performing Test WITH_NETWORK_EVENTFD - Success
-- Building without DNS-SD (ZeroConf) support
-- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.so (found version "2.9.3")
-- Found BISON: /usr/bin/bison (found version "3.0.4")
-- Found FLEX: /usr/bin/flex (found version "2.6.0")
-- Looking for pthread_setname_np
-- Looking for pthread_setname_np - found
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/work/libiio/build
$ make
Scanning dependencies of target iio
[  2%] Building C object CMakeFiles/iio.dir/backend.c.o
[  4%] Building C object CMakeFiles/iio.dir/channel.c.o
[  6%] Building C object CMakeFiles/iio.dir/device.c.o
[  9%] Building C object CMakeFiles/iio.dir/context.c.o
[ 11%] Building C object CMakeFiles/iio.dir/buffer.c.o
[ 13%] Building C object CMakeFiles/iio.dir/utilities.c.o
[ 15%] Building C object CMakeFiles/iio.dir/scan.c.o
[ 18%] Building C object CMakeFiles/iio.dir/sort.c.o
[ 20%] Building C object CMakeFiles/iio.dir/usb.c.o
[ 22%] Building C object CMakeFiles/iio.dir/local.c.o
[ 25%] Building C object CMakeFiles/iio.dir/libini/libini.c.o
[ 27%] Building C object CMakeFiles/iio.dir/network.c.o
[ 29%] Building C object CMakeFiles/iio.dir/network-unix.c.o
[ 31%] Building C object CMakeFiles/iio.dir/xml.c.o
[ 34%] Building C object CMakeFiles/iio.dir/lock.c.o
[ 36%] Building C object CMakeFiles/iio.dir/iiod-client.c.o
[ 38%] Linking C shared library libiio.so
[ 38%] Built target iio
Scanning dependencies of target iio_tests_helper
[ 40%] Building C object tests/CMakeFiles/iio_tests_helper.dir/iio_common.c.o
[ 43%] Building C object tests/CMakeFiles/iio_tests_helper.dir/gen_code.c.o
[ 45%] Linking C static library libiio_tests_helper.a
[ 45%] Built target iio_tests_helper
Scanning dependencies of target iio_attr
[ 47%] Building C object tests/CMakeFiles/iio_attr.dir/iio_attr.c.o
[ 50%] Linking C executable iio_attr
[ 50%] Built target iio_attr
Scanning dependencies of tar
### 如何在Ubuntu上安装和使用libiio库 #### 安装依赖项 为了成功构建并安装 `libiio` 库,在 Ubuntu 上需先安装一系列必要的开发工具与库文件。这包括但不限于 XML 解析器及其头文件、Bison 和 Flex 工具以及 CMake 构建系统等[^2]。 ```bash sudo apt-get update sudo apt-get install libxml2 libxml2-dev bison flex libcdk5-dev cmake ``` #### 获取源码 可以从官方仓库克隆最新的 `libiio` 源代码或者下载特定版本的压缩包来获取最新特性和支持: ```bash git clone https://github.com/analogdevicesinc/libiio.git cd libiio ``` #### 编译安装 利用CMake作为项目配置工具,按照如下命令完成本地编译过程,并最终执行全局安装操作: ```bash mkdir build && cd $_ cmake .. make sudo make install ``` 对于希望简化流程的情况,也可以通过APT软件包管理器直接安装预编译好的二进制版本(如果可用的话),不过这种方式可能无法获得最前沿的功能更新。 #### 验证安装 确认已正确设置环境变量后,可以尝试运行一些简单的测试程序验证安装是否成功。例如查看examples目录下提供的几个示例应用程序列表[^3]: ```bash $ ls examples/ ad9361-iiostream.c adrv9002-iiostream.c CMakeLists.txt iio-monitor.c README.md ad9371-iiostream.c adrv9009-iiostream.c dummy-iiostream.c ``` 这些例子展示了如何连接到实际硬件设备并与之交互;而tests文件夹则包含了更多用于内部调试目的的小型实用工具。 #### 使用注意事项 当涉及到ARM架构上的交叉编译时,请确保主机端已经准备好相应的交叉编译链,并适当调整上述指令中的路径参数以匹配目标平台的需求。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值