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. poj2002 hash+数学
  2. 60. Permutation Sequence
  3. 双粗虚线中间一条实线_马路中间有一条黄色虚线和一条实线,能超车吗?
  4. ElementUI中分页Pagination 样式的修改(分页组件的封装)
  5. 用sklearn mysql_Sklearn之Linear Regression
  6. 第十一章、认识与学习BASH
  7. 自学Python Day1
  8. 构建手机apk的过程
  9. hdoj4540:威威猫系列故事——打地鼠(dp基础题-数塔思想)
  10. 路由器测试的类型和方法
  11. LWN:5.16 合并窗口,第二部分!
  12. 搜索引擎使用的10个技巧
  13. 各大cdn厂商的cname域名
  14. mysql汉字转拼音首字母报错_MySql 汉字转拼音首字母
  15. fuchsiaos和鸿蒙os区别,谷歌Fuchsia OS和华为鸿蒙系统(HarmonyOS)没有必然联系
  16. web网页引入自定义字体设置
  17. Google Maps API Key申请办法(最新)
  18. [Tushare+Python] AH股轮动策略基础
  19. 捷联惯导算法与组合导航原理学习——四元数和姿态阵转换(二)
  20. STM32HAL----红外遥控(NEC)

热门文章

  1. d3关联关系图力引导图,支持多条线,带箭头。
  2. 《需求工程——软件建模与分析》阅读笔记5
  3. Linux——NFS,NFS自动挂载,NFS卸载,NFS共享权限管理
  4. 第十一章 多媒体应用开发(音视频播放)
  5. 4gdtu通讯控制gprs手机云远程监控模块RS485/232无线物联网数透传
  6. 三菱的PLC里的状态继电器是啥东西?不要复制的,都说在不是步进状态下就和辅助继电器一样!
  7. WPF 窗口/页 的位置
  8. 订单管理系统有哪些功能?
  9. vipx和vipkid有什么区别,哪个比较好啊?
  10. ECCV 2018所有论文合集