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相关推荐

  1. 嵌入式linux libusb,使用libusb操作usb的问题

    请 登录 后使用快捷导航 没有帐号?注册 发表于2008-9-29 21:47 使用libusb操作usb的问题 [复制链接] 本人有一个usb,有驱动,但是不能加载到系统.我用libusb操作它,但 ...

  2. ubuntu13.10上交叉编译win32运行的vlc2.0.3总结

    最近做交叉编译真是做的死去活来,不过 最后还是成功了,在此总结一下. 一.安装交叉编译环境 1. sudo apt-get install gcc-mingw-w64-i686 g++-mingw-w ...

  3. android 的交叉编译连,Android交叉编译busybox 1.8,dropbear 0.53

    网上下的busybox多半是1.4的 新编译的BusyBox v1.18.4的多了不少命令,ash还能显示颜色,非常好用. 网上找到的dropbear是多半是0.4的,0.52那个交叉编译相关的文章里 ...

  4. Libusb交叉编译和移植

    2019独角兽企业重金招聘Python工程师标准>>> Libusb交叉编译和移植 某项目内核需要支持USB的相关操作,所以考虑移植Libusb库 1.到官网下载最新的libusb源 ...

  5. libusb的交叉编译

    一.准备 1.使用交叉编译器 arm-2014.05 2.下载libusb的压缩包libusb-1.0.21.tar.bz2 评论留下邮箱发给你. 二.安装(在linux终端下输入命令): 1.解压: ...

  6. Linux libusb开发教程<一> 介绍与安装

    1.libusb简介 libusb 是一个 C 库,提供对 USB 设备的通用访问. 它旨在供开发人员用于促进与 USB 硬件通信的应用程序的开发.其具有如下特点 可移植:使用单个跨平台 API,它提 ...

  7. linux qt libusb,Ubuntu15下Qt+libusb开发

    Ubuntu15下Qt5+libusb-1.0开发 下载和安装libusb-1.0 在Ubuntu15中可以从软件仓库安装libusb,当前的libusb版本为1.0.可以使用如下命令安装libusb ...

  8. libusb usb设备访问接口库

    libusb 是一个用C语言开发的跨平台的USB设备访问接口库. 驱动开发向来是内核开发中工作量最多的一块,随着USB设备的普及,大量的USB设备的驱动开发也成为驱动开发者手头上做的最多的事情.本文主 ...

  9. tensorflow-yolov3 调试Intel Realsense D435摄像头所遇到的问题(USB自动检测并重置机制)hardware_reset() pyusb libusb devcon

    文章目录 191126 191127 191128 191129 尝试第二种方案 Devcon 191130 191126 连接6摄像头运行,开始运行正常,能够正常识别,但不小心线动了一下,视频窗口卡 ...

最新文章

  1. java实现泛型顺序栈
  2. 关于find my iphone的所有问题汇总解决
  3. 【正一专栏】欧冠决赛点评——只服齐达内,送别布冯
  4. CSS之定位布局(position,relative定位布局技巧)
  5. Breaking the Ledger Security Model
  6. linux 编写脚本示范,Linux-scripts-简单脚本和脚本的执行
  7. LeetCode 455. 分发饼干(贪心)
  8. java创建目录时带权限_java – 无法在外部存储中创建目录,尽管权限显然设置正确...
  9. 2014年0417的工作计划
  10. django mysql模糊查询_Django 模糊查询
  11. 恶意广告活动利用 WebKit 0day 实施欺诈
  12. 在线数据分析4大常用功能
  13. 钓鱼网站 (搬运自common craft )
  14. 程序员!你还能年轻几岁?
  15. 数字基带信号功率谱理论研究和实验仿真【含有MATLAB仿真实验以及实验报告】
  16. python 3d游戏引擎哪个好_五大开源游戏引擎介绍
  17. 中国自然地理分区数据集 (含农业区划、森林工程、生态保护区、九大流域等)
  18. windows基于TCP/IP的简单文件/图片传输
  19. YOLOv3源码阅读之六:train.py
  20. Vue中 v-vif 与v-for 的问题

热门文章

  1. 40页PPT | 数据治理方法论和案例(附下载)
  2. 2021年中国消毒柜行业发展现状分析,疫情红利褪去,需求再度下行「图」
  3. 我的世界java版地图结构_我的世界地图种子竟然有42亿个 那些神奇的建筑都是怎么生成的...
  4. spacedesk将ipad作为windows电脑扩展屏
  5. php多站点cms,如何实现PHPCMS V9 多站点[站群功能]子站独立域名且动态URL
  6. micropython复现经典单片机项目(二)可视化音频 频谱解析(基本搞定)
  7. Flutter学习总结(四)生命周期
  8. QT学习笔记—QMovie播放GIF文件
  9. photoshop第四章:图片的处理
  10. 2022张宇考研基础30讲 第十二讲 二重积分