源码编译安装libusb和stlink(解决st-flash等待5s问题)

 

背景

下面都是在mac下。

stlink工具是命令行下的st-link下载工具,其基于libusb开发。

之前(2018年6月)安装stlink的方法是通过brew安装:brew install stlink,

用brew安装stlink会自动安装依赖包 libusb 1.0.22。

 

问题

不知从什么时候起,有时候通过stlink下载单片机固件会需要等待5s,重启mac后ok,但是不确定什么时候可能又会出现问题。

 

原因

把stlink源码下载下来跟踪发现5s的时间卡在了 stlink/src/usb.c -> stlink_open_usb()函数 -> libusb_get_device_list()函数。

 

网上这里(https://github.com/eblot/pyftdi/issues/42#issuecomment-449648800)有人提供了一个方法,直接修改libusb源码把5s改成了100ms。

但实际上我们不需要修改源码,最近版libusb已经改掉了这个问题,我们只要更新一下libusb,并用最新版本的libusb重新编译stlink即可。

 

homebrew没有更新libusb和stlink,我们只有从github上下载源码编译。

 

解决方法

1、卸载原来用brew安装的stlink和libusb:

brew remove stlink

brew remove libusb

2、github下载libusb源码并安装:

github主页:https://github.com/libusb/libusb

  1. 下载:到工程的release页面下载“libusb-1.0.23-rc1.tar.bz2
  2. 解压,并进入 libusb-1.0.23-rc1 目录
  3. ./configure
  4. make
  5. sudo make install

安装完成后会在 /usr/local/lib/ 下多出 libusb-1.0.** 文件。

3、github下载stlink源码并安装:

github主页:https://github.com/texane/stlink,stlink是用cmake编译的。

  1. clone代码并进入工程目录
  2. mkdir build
  3. cd build
  4. cmake ..
  5. make
  6. sudo make install

安装完成后会在 /usr/local/bin/ 下多出 st-flash 文件。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值