【問題解決】 pyocd 報錯 No USB backend found 的解決方法

pyocd 報錯 No USB backend found 的解決方法

本文記錄了我在Windows 10系統上遇到的pyocd命令執行報錯——No USB backend found 的分析過程和解決方法。遇到類似問題的朋友可以直接參考最后的解決方法,向了解問題發送原因的可以查看原因分析部分。

文章目錄

  • pyocd 報錯 No USB backend found 的解決方法
    • 一、問題現象
      • 問題背景
    • 二、原因分析
      • HidApiUSB.isAvailable
      • PyWinUSB.isAvailable
    • 三、解決方法
      • 可能方案
      • 最終方案

一、問題現象

今天在我的PC上使用執行 pyocd 時報錯,具體信息如下:
在這里插入圖片描述

最后一行報錯信息內容是:

pyocd.probe.pydapaccess.dap_access_api.DAPAccessIntf.DeviceError: No USB backend found

問題背景

問題發生的背景補充說明:

  • 操作系統是:Windows 10 64位;
  • Python版本是:3.11.4 ;
  • pyocd版本是:0.36.0 ;
  • git-bash環境執行的命令,cmd執行也是一樣的報錯;
  • 另外,之前執行 pyocd 命令一直都沒有問題,今天才出現的;

二、原因分析

從截圖上能夠看出來這是一個Python代碼產生的異常,拋出異常的一行代碼在截圖上也可以看到:

raise DAPAccessIntf.DeviceError("No USB backend found")

同時,截圖上也可以看到位于的文件路徑是:

D:\Python\Python311\Lib\site-packages\pyocd\probe\pydapaccess\interface\__init__.py

git-bash環境下,直接用vim打開這個文件:

vim "D:\Python\Python311\Lib\site-packages\pyocd\probe\pydapaccess\interface\__init__.py" +54

對應的代碼為:
在這里插入圖片描述

拋出異常的代碼位于54行,可以看到,前面兩個條件都失敗才會拋出此異常,兩個條件分別是:

  • HidApiUSB.isAvailable
  • PyWinUSB.isAvailable

接下來分析,這兩個條的值分別是如何而來的。

HidApiUSB.isAvailable

由于是pyocd命令執行時輸出的報錯,所以直接在pyocd包的目錄下搜索:
在這里插入圖片描述

具體代碼如下:
在這里插入圖片描述

已經可以看到這個值的來源了:

  • 如果import hid執行成功,則為True;
  • 如果import hid執行失敗,則為False;

PyWinUSB.isAvailable

類似的,可以找到PyWinUSB.isAvailable的來源:
在這里插入圖片描述

源于兩種情況:

  • 如果 import pywinusb.hid as hid 成功,則為True;
  • 如果 import pywinusb.hid as hid 失敗,則為False;

三、解決方法

通過上面的分析,我們就知道解決方法了:

  • 讓 import hid 成功;
  • 讓 import pywinusb.hid 成功;

具體的就是:

pip install hid

或者:

pip install pywinusb

可能方案

但是經過試驗,在我的系統上,hid安裝后,會仍然失敗,具體是:
在這里插入圖片描述

最終方案

因此,最終解決方法是:

 pip install pywinusb

安裝完成后,pyocd pack find 就可以成功了:
在這里插入圖片描述

問題解決,大功告成!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/42601.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/42601.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/42601.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

排序-java(插入排序和選擇排序)

一,分類 主要的排序大致分為以下幾類: 1,插入排序,又分為直接插入排序和希爾排序 2,選擇排序,又分為選擇排序和堆排序 3,交換排序,又分為冒泡排序和快速排序 4,歸并…

springboot配置掃描生效順序

文章目錄 舉例分析項目結構如下noddles-user-backend 兩個配置文件noddles-user-job 配置文件noddles-user-server 配置文件問題:server和Job啟動時對應加載的數據庫配置為哪一個? 總結 在微服務架構中,backend模塊會定義一個基礎的配置文件,…

Report Design Analysis報告之logic level詳解

目錄 一、前言 二、Logic Level distribution 2.1 logic level配置 2.2 Logic Level Distribution報告 2.3 Logic Level 報告詳情查看 2.4 Route Distributions 報告詳情查看 2.5 示例代碼 一、前言 ?在工程設計中,如果需要了解路徑的邏輯級數,可…

CentOS7安裝部署Anaconda

文章目錄 CentOS7安裝部署Anaconda一、前言1.組件2.環境 二、正文1.下載安裝腳本2.安裝Anaconda3.常用指令 CentOS7安裝部署Anaconda 一、前言 1.組件 Anaconda 開源的Anaconda個人版 (正式為Anaconda發行版)是在Linux,Windows和Mac OS X上…

卷積神經網絡基礎篇

文章目錄 1、卷積層1.1、激活函數1.3、sigmoid1.4、Tanh1.5、ReLU1.6、Leaky ReLU1.7、誤差計算 2、池化層3、全連接層4、CNN訓練 參考鏈接1 參考鏈接2 1、卷積層 卷積層(Convolutional layer),這一層就是卷積神經網絡最重要的一個層次&…

動手學深度學習(Pytorch版)代碼實踐 -循環神經網絡- 56門控循環單元(`GRU`)

56門控循環單元(GRU) 我們討論了如何在循環神經網絡中計算梯度, 以及矩陣連續乘積可以導致梯度消失或梯度爆炸的問題。 下面我們簡單思考一下這種梯度異常在實踐中的意義: 我們可能會遇到這樣的情況:早期觀測值對預測…

機器人動力學模型及其線性化阻抗控制模型

機器人動力學模型 機器人動力學模型描述了機器人的運動與所受力和力矩之間的關系。這個模型考慮了機器人的質量、慣性、關節摩擦、重力等多種因素,用于預測和解釋機器人在給定輸入下的動態行為。動力學模型是設計機器人控制器的基礎,它可以幫助我們理解…

html的浮動作用詳解

HTML中的“浮動”(Float)是一個CSS布局技術,它原本設計用于文本環繞圖像或實現簡單的布局效果,比如并排排列元素。然而,隨著Web開發的演進,浮動也被廣泛用于更復雜的頁面布局設計中,盡管現代CSS…

2024/7/7周報

文章目錄 摘要Abstract文獻閱讀題目問題本文貢獻問題描述圖神經網絡Framework實驗數據集實驗結果 深度學習MAGNN模型相關代碼GNN為什么要用GNN?GNN面臨挑戰 總結 摘要 本周閱讀了一篇用于多變量時間序列預測的多尺度自適應圖神經網絡的文章,多變量時間序…

SAP已下發EWM的交貨單修改下發狀態

此種情況針對EWM未接收到ERP交貨單時,可以使用此程序將ERP交貨單調整為未分配狀態,在進行調整數據后,然后使用VL06I(啟用自動下發EWM配置,則在交貨單修改保存后會立即下發EWM)重新下發EWM系統。 操作步驟如…

3ds Max渲染曝光過度怎么辦?

3dmax效果圖云渲染平臺——渲染100 以3ds Max 2025、VR 6.2、CR 11.2等最新版本為基礎,兼容fp、acescg等常用插件,同時LUT濾鏡等參數也得到了同步支持。 注冊填邀請碼【7788】可領30元禮包和免費渲染券哦~ 遇到3ds Max渲染過程中曝光過度的問題&#xf…

SLF4J的介紹與使用(有logback和log4j2的具體實現案例)

目錄 1.日志門面的介紹 常見的日志門面 : 常見的日志實現: 日志門面和日志實現的關系: 2.SLF4J 的介紹 業務場景(問題): SLF4J的作用 SLF4J 的基本介紹 日志框架的綁定(重點&#xff09…

Influxdb中,Flux常用的函數

目錄 一、Flux常用的函數及其簡要描述 1. 數據源和篩選函數 2. 聚合函數 3. 時間序列操作函數 4. 轉換和映射函數 5. 窗口函數 6. 其他常用函數 注意事項 二、使用方法舉例 1. 數據源和篩選 2. 聚合 3. 時間序列操作 4. 窗口函數 5. 轉換和映射 注意事項 三、…

跨越界限的溫柔堅守

跨越界限的溫柔堅守 —— 鄭乃馨與男友的甜蜜抉擇在這個光怪陸離、瞬息萬變的娛樂圈里,每一段戀情像是夜空中劃過的流星,璀璨短暫。然而,當“鄭乃馨與男友甜蜜約會”的消息再次躍入公眾視野,它不僅僅是一段簡單的愛情故事&#xf…

iOS中多個tableView 嵌套滾動特性探索

嵌套滾動的機制 目前的結構是這樣的,整個頁面是一個大的tableView, Cell 是整個頁面的大小,cell 中嵌套了一個tableView 通過測試我們發現滾動的時候,系統的機制是這樣的, 我們滑動內部小的tableView, 開始滑動的時候&#xff0c…

C/C++ 代碼注釋規范及 doxygen 工具

參考 谷歌項目風格指南——注釋 C doxygen 風格注釋示例 ubuntu20 中 doxygen 文檔生成 doxygen 官方文檔 在 /Doxygen/Special Command/ 章節介紹 doxygen 的關鍵字 注釋說明 注釋的目的是提高代碼的可讀性與可維護性。 C 風格注釋 // 單行注釋/* 多行注釋 */ C 風格注…

設置某些路由為公開訪問,不需要登錄狀態即可訪問

在單頁面應用(SPA)框架中,如Vue.js,路由守衛是一種非常有用的功能,它允許你控制訪問路由的權限。Vue.js 使用 Vue Router 作為其官方路由管理器。路由守衛主要分為全局守衛和組件內守衛。 以下是如何設置路由守衛以允…

k8s 部署RuoYi-Vue-Plus之mysql搭建

1.直接部署一個pod 需要掛載存儲款, 可參考 之前文章設置 https://blog.csdn.net/weimeibuqieryu/article/details/140183843 2.部署yaml 先創建命名空間ruoyi kubectl create namespace ruoyi創建部署文件 mysql-deploy.yaml --- apiVersion: v1 kind: PersistentVolume …

【論文閱讀筆記】Meta 3D AssetGen

【論文閱讀筆記】Meta 3D AssetGen: Text-to-Mesh Generation with High-Quality Geometry, Texture, and PBR Materials Info摘要引言創新點 相關工作T23D基于圖片的3d 重建使用 PBR 材料的 3D 建模。 方法文本到圖像:從文本中生成陰影和反照率圖像Image-to-3D:基于pbr的大型重…

搭建NEMU與QEMU的DiffTest環境(動態庫方式)

搭建NEMU與QEMU的DiffTest環境(動態庫方式) 1 DiffTest原理簡述2 編譯NEMU3 編譯qemu-dl-difftest3.1 修改NEMU/scripts/isa.mk3.2 修改NEMU/tools/qemu-dl-diff/src/diff-test.c3.3 修改NEMU/scripts/build.mk3.4 讓qemu-dl-difftest帶調試信息3.5 編譯…