交叉编译libusb和libusb-compat-0.1.5
1. 下载libusb库:
https://jaist.dl.sourceforge.net/project/libusb/libusb-1.0/libusb-1.0.22/libusb-1.0.22.tar.bz2
2. 编译安装libusb:
tar -xvf ./libusb-1.0.22.tar.bz2
cd ./libusb-1.0.22
mkdir build
./configure --prefix=/home/chy/Downloads/libusb-1.0.22/build CC=mips-linux-gnu-gcc --host=mips-linux-gnu --build=i686-linux --disable-udev
make -j4
make install
3. 下载libusb-compat-0.1.5库:
https://sourceforge.net/projects/libusb/files/libusb-compat-0.1/libusb-compat-0.1.5/libusb-compat-0.1.5.tar.bz2
4. 编译安装libusb-compat:
tar -xvf ./libusb-compat-0.1.5.tar.bz2
cd ./libusb-compat-0.1.5
mkdir build
./configure --build=i686-linux --host=mips-linux-gnu --prefix=/home/chy/work/project/libusb-1.0.0/libusb-compat-0.1.5/build CC=mips-linux-gnu-gcc PKG_CONFIG_PATH=/home/chy/work/project/libusb-1.0.0/libusb-1.0.0-mips/lib/pkgconfig
make -j4
make install
5. 测试程序
#include <stdio.h>
#include "usb.h"#define VID 0x0525
#define PID 0xa4acint main(int argc, char *argv[])
{usb_init();usb_find_busses();usb_find_devices();usb_dev_handle *handle = NULL;struct usb_device *device = NULL;struct usb_bus *bus = NULL;for (bus = usb_busses; bus; bus = bus->next) {struct usb_device *dev = NULL;for (dev = bus->devices; dev; dev = dev->next) {if (dev->descriptor.idVendor == VID && dev->descriptor.idProduct == PID) {device = dev;break;}}}if (device == NULL) {printf("no found\n");return -1;}handle = usb_open(device);if (handle == NULL) {printf("open device err\n");return -1;}int ret = usb_detach_kernel_driver_np(handle, 0);if (ret != 0) {printf("set detach kernel driver failed ret = %d\n", ret);return -1;}ret = usb_set_configuration(handle, 1);if (ret != 0) {printf("set configuration failed ret = %d\n", ret);return -1;}usb_claim_interface(handle, 0);#if 1unsigned char buff[16] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x00};ret = usb_interrupt_write(handle, 0x01, buff, 8, 0);printf("%s %s %d ret = %d\n", __FILE__, __func__, __LINE__, ret);ret = usb_interrupt_write(handle, 0x01, &buff[8], 8, 0);printf("%s %s %d ret = %d\n", __FILE__, __func__, __LINE__, ret);
#elsefor (int index = 0; index < 10; index++) {unsigned char buff[16] = {0};int ret = usb_interrupt_read(handle, 0x81, buff, 8, 10000);printf("ret = %d\ndata:\n", ret);for (int i = 0; i < 8; i++)printf("%02x ", buff[i]);printf("\n");}
#endifret = usb_release_interface(handle, 0);if (ret != 0) {printf("release failed\n");return -1;}ret = usb_close(handle);if (ret != 0) {printf("close failed\n");return -1;}return 0;
}
6. 编译测试程序
mips-linux-gnu-gcc ./test.c -o test -I /home/chy/work/project/libusb-1.0.0/libusb-compat-0.1.5-mips/include -L /home/chy/work/project/libusb-1.0.0/libusb-compat-0.1.5-mips/lib -lusb -lusb-1.0 -std=gnu99
交叉编译libusb和libusb-compat-0.1.5相关推荐
- 嵌入式linux libusb,使用libusb操作usb的问题
请 登录 后使用快捷导航 没有帐号?注册 发表于2008-9-29 21:47 使用libusb操作usb的问题 [复制链接] 本人有一个usb,有驱动,但是不能加载到系统.我用libusb操作它,但 ...
- ubuntu13.10上交叉编译win32运行的vlc2.0.3总结
最近做交叉编译真是做的死去活来,不过 最后还是成功了,在此总结一下. 一.安装交叉编译环境 1. sudo apt-get install gcc-mingw-w64-i686 g++-mingw-w ...
- android 的交叉编译连,Android交叉编译busybox 1.8,dropbear 0.53
网上下的busybox多半是1.4的 新编译的BusyBox v1.18.4的多了不少命令,ash还能显示颜色,非常好用. 网上找到的dropbear是多半是0.4的,0.52那个交叉编译相关的文章里 ...
- Libusb交叉编译和移植
2019独角兽企业重金招聘Python工程师标准>>> Libusb交叉编译和移植 某项目内核需要支持USB的相关操作,所以考虑移植Libusb库 1.到官网下载最新的libusb源 ...
- libusb的交叉编译
一.准备 1.使用交叉编译器 arm-2014.05 2.下载libusb的压缩包libusb-1.0.21.tar.bz2 评论留下邮箱发给你. 二.安装(在linux终端下输入命令): 1.解压: ...
- Linux libusb开发教程<一> 介绍与安装
1.libusb简介 libusb 是一个 C 库,提供对 USB 设备的通用访问. 它旨在供开发人员用于促进与 USB 硬件通信的应用程序的开发.其具有如下特点 可移植:使用单个跨平台 API,它提 ...
- linux qt libusb,Ubuntu15下Qt+libusb开发
Ubuntu15下Qt5+libusb-1.0开发 下载和安装libusb-1.0 在Ubuntu15中可以从软件仓库安装libusb,当前的libusb版本为1.0.可以使用如下命令安装libusb ...
- libusb usb设备访问接口库
libusb 是一个用C语言开发的跨平台的USB设备访问接口库. 驱动开发向来是内核开发中工作量最多的一块,随着USB设备的普及,大量的USB设备的驱动开发也成为驱动开发者手头上做的最多的事情.本文主 ...
- tensorflow-yolov3 调试Intel Realsense D435摄像头所遇到的问题(USB自动检测并重置机制)hardware_reset() pyusb libusb devcon
文章目录 191126 191127 191128 191129 尝试第二种方案 Devcon 191130 191126 连接6摄像头运行,开始运行正常,能够正常识别,但不小心线动了一下,视频窗口卡 ...
最新文章
- java实现泛型顺序栈
- 关于find my iphone的所有问题汇总解决
- 【正一专栏】欧冠决赛点评——只服齐达内,送别布冯
- CSS之定位布局(position,relative定位布局技巧)
- Breaking the Ledger Security Model
- linux 编写脚本示范,Linux-scripts-简单脚本和脚本的执行
- LeetCode 455. 分发饼干(贪心)
- java创建目录时带权限_java – 无法在外部存储中创建目录,尽管权限显然设置正确...
- 2014年0417的工作计划
- django mysql模糊查询_Django 模糊查询
- 恶意广告活动利用 WebKit 0day 实施欺诈
- 在线数据分析4大常用功能
- 钓鱼网站 (搬运自common craft )
- 程序员!你还能年轻几岁?
- 数字基带信号功率谱理论研究和实验仿真【含有MATLAB仿真实验以及实验报告】
- python 3d游戏引擎哪个好_五大开源游戏引擎介绍
- 中国自然地理分区数据集 (含农业区划、森林工程、生态保护区、九大流域等)
- windows基于TCP/IP的简单文件/图片传输
- YOLOv3源码阅读之六:train.py
- Vue中 v-vif 与v-for 的问题
热门文章
- 40页PPT | 数据治理方法论和案例(附下载)
- 2021年中国消毒柜行业发展现状分析,疫情红利褪去,需求再度下行「图」
- 我的世界java版地图结构_我的世界地图种子竟然有42亿个 那些神奇的建筑都是怎么生成的...
- spacedesk将ipad作为windows电脑扩展屏
- php多站点cms,如何实现PHPCMS V9 多站点[站群功能]子站独立域名且动态URL
- micropython复现经典单片机项目(二)可视化音频 频谱解析(基本搞定)
- Flutter学习总结(四)生命周期
- QT学习笔记—QMovie播放GIF文件
- photoshop第四章:图片的处理
- 2022张宇考研基础30讲 第十二讲 二重积分