女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

開源:Qualcomm/Snapdragon設備USB端口中隱藏的JTAG

KiCad ? 來源: KiCad ? 作者: KiCad ? 2025-07-08 11:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

高通近期開源了其強大的嵌入式USB調試(EUD)接口源代碼。這一舉措有望徹底改變高通平臺的底層開發與調試體驗,使得以往需要昂貴專業設備的復雜調試工作,現在通過一根USB線即可輕松實現。

今年二月,高通悄悄地發布了用于與 EUD 交互的源代碼。這或許是他們近期所做的最激動人心的事情之一,特別是如果你花費大量時間調試內核或 U-Boot 的話。

EUD 的全稱是Embedded USB Debug(嵌入式 USB 調試):本質上,這是一個內置于幾乎每一款自 2018 年以來高通 SoC 的調試接口。在內部,它深入到 SoC 的核心,不僅為 CPU 提供調試功能,還為無數的 Hexagon 協處理器/DSP 提供支持。許多激動人心的細節可以在這份追溯到 2014 年的專利中找到:

https://patents.google.com/patent/US20160124822A1/en

在實踐中,對于非生產設備(如開發板),EUD 可以通過寫入幾個寄存器然后啟動 USB phy 來啟用。與你可能預期的任何典型 USB 小工具不同,出現在你電腦上的是一個 7 端口的 USB 集線器,其中一個端口被“EUD 控制接口”占用。

通過發送正確的 USB 命令,第二個設備將會出現,這個設備暴露了一個SWD 接口!沒錯!SWD 直接通過 USB 數據線實現,無需外部工具,無需焊接,也無需昂貴的調試器。這種閉殼調試(幾乎)讓谷歌的 Suzy-Q 都相形見絀!

對于不熟悉的人來說:JTAG 和 SWD 都是用于調試設備內部 CPU 核的機制,就像你可以使用 GDB 來調試你電腦上的程序(或你 IDE 的集成調試器)一樣。它們可以讓你設置斷點、暫停執行、檢查寄存器、單步執行指令以及進行各種其他有用的操作。

代碼的發布

相當長一段時間以來,高通在 CodeLinaro 上發布了一個引人注目的 OpenOCD 分支,承諾集成 EUD。然而,它依賴于一個當時專有的 EUD 庫,該庫僅對高通員工及其 OEM 合作伙伴開放。

設備端部分(啟用 EUD 接口使其在你的電腦上顯示出來)在一段時間內已在上游 Linux 中得到部分支持。去年八月,有人嘗試為一些有額外需求的較新平臺擴展此支持。這引發了一些關于內核策略的討論:在 Linux 中擁有只能由某些內部軟件使用的驅動程序,并且這些軟件被高通及其付費合作伙伴所把持,這是否可以接受?答案似乎是否定的,這似乎足以推動高通朝著正確的方向前進,因為在沉寂了 8 個月之后,我們終于等到了!

代碼終于發布了(https://github.com/quic/eud),同時更新了他們的 OpenOCD 分支,使其指向現在開源的庫,太棒了!

讓我們來試試…

src/swd_api.cpp:408:64: error: castfrom'std::nullptr_t'to'uint32_t'{aka'unsignedint'} loses precision [-fpermissive]408|    queue_swd_packet_special(swd_handle_p, SWD_CMD_STATUS, (uint32_t)NULL,&swd_status);` 

清理工作

公平地說,它幾乎肯定可以在 Ubuntu 20.10 上用高通的 GCC 8.x 工具鏈正常構建。但那并不是大多數人正在使用的環境,我們必須修復這個問題!

事實證明問題不算太糟,只是一些小毛病。不過,他們不知何故啟用了-Wall-Werror標志,我們目前還不可能讓所有代碼都通過檢查。

在所有東西都能構建之后,必要的修復(和一個全新的.gitignore文件)已經提交到了高通的倉庫。

現在我們已經可以構建 EUD 了,可以用 OpenOCD 來試試??雌饋硭麄兪腔谧钚碌?OpenOCD 0.12.0 版本進行修改的,非常好。但是等等,這個版本是 2023 年發布的,而 OpenOCD 仍在活躍開發中……所以這中間有兩年的變更,而且:

; gitlog--oneline v0.12.0 up/master |wc-l10808

將近 11000 次提交!如果最終能將這些變更合并到上游就太好了,所以也許我們可以快速地進行一次 rebase,反正我們也需要將它指向清理過的 EUD 分支。

在高通為支持 EUD 所做的更改中,還有一些增加了 Hexagon 調試支持的補丁(似乎還有一些對 LLDB 的改進)。這些在過程中丟失了,但幾乎肯定值得在某個時候研究一下。

所以,我們花了一天來修復和 rebase 一些代碼庫:

; ./src/openocd-f tcl/interface/eud.cfg-f tcl/target/qualcomm/qcom.cfgOpenOn-Chip Debugger0.12.0+dev-01935-g234bdc765544 (2025-04-02-15:20)Licensed under GNU GPL v2Forbug reports, read   http://openocd.org/doc/doxygen/bugs.htmlforce hard breakpointsInfo : Listeningonport6666fortcl connectionsInfo : Listeningonport4444fortelnet connectionsInfo :UsingEUD2.1.7Error:Translationfromadapter speedtokhznotimplementedInfo : adapter-specificclock speedvalue6Info : SWD DPIDR0x5ba02477Info : QCOM.cpu0: hardware has6breakpoints,4watchpointsInfo : [QCOM.cpu0] Examination succeedInfo : [QCOM.cpu0] starting gdb serveron3333Info : Listeningonport3333forgdb connectionsInfo : QCOM.cpu0 cluster0core0multi coreQCOM.cpu0 haltedinAArch64 state duetodebug-request,currentmode: EL0Tcpsr:0x00000000pc:0xffff95cf9a4cMMU: enabled, D-Cache: enabled, I-Cache: enabled

你可以在 linux-msm GitHub(https://github.com/linux-msm/openocd) 上找到 rebase 后的 OpenOCD 補丁,以及 README 文件中的一些快速入門說明。到目前為止,這已經在驍龍 845 上進行了測試,對于 855 和 865 應該也類似,我們只需修改啟用寄存器,然后使用 Linux 或 U-Boot 啟動一個 USB 小工具即可。然而,更新的 SoC 可能需要額外的更改,比如針對 SM8450 的這些更改。希望這些舊的補丁系列現在能夠得到更新,因為工具方面的情況已經好多了!

實際用途

眾所周知,Torvalds 本人并不支持在內核中使用調試器(盡管這沒有阻止 kgdb 的出色工作),他曾在 2000 年寫道:

我不喜歡調試器。從來沒有,可能永遠也不會。我不贊成通過單步執行代碼來尋找 bug。

因此,JTAG 支持的實際用處確實取決于你的工作流程。在 Linaro 的高通落地團隊中,由于成本和復雜性等典型原因,調試器從未成為我們工作的主要工具。然而,隨著越來越多的精力投入到非內核領域,如 U-Boot 和 secure world,這種情況正在改變。

U-Boot 對我們來說是一個明顯的例子,因為它目前在崩潰時不會提供堆棧跟蹤,診斷有時會是一個艱巨的過程,而使用(gdb) bt(gdb 的 backtrace 命令)會讓這個過程變得無限簡單。

我們對 EUD 為調試垂直集成的 BSP(板級支持包)所帶來的可能性特別感興趣,尤其是當 TF-A、OP-TEE 和 U-Boot 通過 OpenEmbedded 的 Trusted Substrate 混合在一起時。

除了 SWD 外設,還有一個 COM (UART) 外設和一個 trace(追蹤)外設。這些尚未被探索(也未集成到 OpenOCD 中),但它們應分別允許雙向串行端口和 MMIO(內存映射 I/O)追蹤。這些確實為生產環境中的閉殼調試開辟了一些更有趣的用例.這似乎是高通有意為之,EUD 作為生產簽名過程的一部分被禁用,但可以通過一個(經過加密驗證的)“調試策略”重新啟用。

你能如何提供幫助

不同的 SoC 對調試基址和 CTI 基址寄存器使用不同的地址,啟用 EUD 所需的額外更改也不同。如果你能在你的板子/SoC 上成功實現,請在 linux-msm 分支上提交一個 issue,讓我們知道你是如何做到的。

此外,還有一個奇怪的現象,即 PRSR 寄存器的粘性復位位(sticky reset bit)總是被設置,這可能與 SMP(對稱多處理)有關。目前,OpenOCD 的粘性復位行為已被禁用,但查明其原因會很有幫助。

SMP 支持目前也普遍缺乏。配置文件已更新(以 rcar 為參考)以定義多個 CPU 核心,但這在 Linux 中似乎無法正常工作。目前,如果你想實際調試你的內核,建議使用maxcpus=1啟動。

你的設備上是否可用 EUD 似乎取決于多種選項:有用于配置允許何種調試功能的熔斷位(fuses),以及支持可覆蓋此行為的、由 OEM 簽名的“調試策略”。在至少一款生產設備(OnePlus 6)上,EUD 似乎通過熔斷位禁用了,但它卻能正常工作。該設備還啟用了非典型的“崩潰轉儲模式”,這表明 OnePlus 可能在發貨時使用了一個寬松的調試策略,或許是無心之失。

最后,雖然擁有合適的 JTAG 來調試內核(尤其是當它如此輕松時!)當然非常有用,但顯而易見的問題是:這能否用來獲得更高執行級別的控制權?不幸的是,答案似乎是否定的。如果你確實設法在 EL2(執行級別 2)暫停了執行,所有寄存器都將讀作 0,并且似乎做不了太多事情,至少在生產設備上是這樣。如果你的板子表現不同,請務必告訴我們!

結論

EUD 為我們提供了一個巨大的新探索領域,并有潛力極大地改善在高通板子上進行底層調試的體驗。我們為它現在被發布并可免費使用感到非常興奮,并非常希望隨著工具和驅動程序的更好集成,它將成為一種無縫的體驗。

看到高通致力于改善開發者體驗并使其平臺更加開放的承諾繼續體現在其行動中,真是太棒了。EUD 有潛力節省昂貴調試設備的大量資金,大幅減少設置時間,并使遠程調試變得更容易(毫無疑問,它最終將被集成到我們現有的遠程調試工具中)。簡而言之,這為所有在高通平臺上工作的人奠定了基礎,我們迫不及待地想看到接下來的發展。


原文轉載自https://www.linaro.org/blog/hidden-jtag-qualcomm-snapdragon-usb/,經翻譯、校對

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 高通
    +關注

    關注

    78

    文章

    7624

    瀏覽量

    193206
  • JTAG
    +關注

    關注

    6

    文章

    404

    瀏覽量

    73318
  • USB端口
    +關注

    關注

    0

    文章

    37

    瀏覽量

    13100
  • USB調試
    +關注

    關注

    0

    文章

    9

    瀏覽量

    10929
  • Qualcomm
    +關注

    關注

    8

    文章

    679

    瀏覽量

    53430
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Qualcomm Snapdragon芯片架構省電優化淺析

    4K Ultra HD影片串流、播放和顯示輸出,以及Qualcomm VIVE 802.11ac高效能Wi-Fi傳輸等技術。Snapdragon 801處理器具體細節,主要針對移動裝置提供更具效能的處理
    發表于 09-19 18:01

    Qualcomm Snapdragon SDK開發速成指南

    Windows Phone8的芯片。它不僅有著非常棒的設備兼容性,而且Qualcomm還給開發者提供了Snapdragon SDK,這使開發者可以針對應用盡情優化。Snapdragon
    發表于 09-20 11:52

    Snapdragon Profiler常見問題總結

    的移動設備。 2.在非驍龍處理器的設備Snapdragon Profiler可以正常使用嗎? 在使用驍龍處理器的設備上運用Snapdragon
    發表于 09-25 16:44

    驍龍神經處理引擎(Snapdragon Neural Processing Engine)

    功能,旨在允許在設備上運行受過訓練的神經網絡,而無需連接到云端。 Qualcomm?Snapdragon?神經處理引擎(NPE)SDK旨在幫助開發人員在Snapdragon移動平臺上運
    發表于 09-27 16:53

    DS26900 JTAG信號復用器(中文資料)

    DS26900是一款JTAG信號復用器,能夠將3路主機端口之一連接到18路(36路級聯配置)次級端口。該器件可以通過三個主機端口中的任意一路進行配置。DS26900可自動檢測次級
    發表于 02-18 09:51 ?1314次閱讀
    DS26900 <b class='flag-5'>JTAG</b>信號復用器(中文資料)

    Qualcomm發布全新Snapdragon Wear平臺,開啟可穿戴設備新時代

    2016年2月11日,圣迭戈——Qualcomm Incorporated(NASDAQ: QCOM)今日宣布,其子公司Qualcomm Technologies, Inc.發布面向下一代可穿戴設備
    發表于 02-16 10:01 ?1379次閱讀

    Qualcomm宣布借助領先產業系統公司的加入拓展Snapdragon Wear平臺

    Qualcomm Incorporated今日宣布,其子公司Qualcomm Technologies, Inc. 通過增加三家新的原始設備制造商(ODMs),拓展了其新一代Qualcomm
    發表于 02-18 11:18 ?872次閱讀

    Qualcomm Snapdragon Flight無人機平臺

    Qualcomm Snapdragon Flight無人機平臺
    發表于 02-10 15:47 ?70次下載

    Qualcomm年度十大SDK盤點:Snapdragon SDK

    功能的App。 開源機器人基金會加大對Qualcomm Snapdragon處理器的支持 Qualcomm?Snapdragon?處理器是
    發表于 09-18 19:07 ?525次閱讀

    Facebook和Qualcomm合作優化Caffe2和Snapdragon NPE

    Qualcomm希望將機器學習移植到個人設備,幫助應用程序以自己的方式頻繁利用機器學習技術。 Qualcomm Snapdragon NPE處理繁重的工作,為在
    發表于 09-18 19:16 ?215次閱讀

    Computex2016:Qualcomm展發布全新Snapdragon Wear處理器

    Qualcomm Technologies, Inc.發布全新Qualcomm? Snapdragon? Wear 1100處理器,面向快速增長的專用可穿戴設備細分領域,例如聯網兒童與
    發表于 09-18 19:36 ?202次閱讀

    Qualcomm Snapdragon Ride是汽車行業中可擴展的自動駕駛解決方案之一

    Qualcomm Incorporated子公司Qualcomm Technologies, Inc.今日在2020年國際消費電子展(CES 2020)上推出全新Qualcomm
    發表于 01-07 14:55 ?1019次閱讀

    USBJTAG小板 (一)

    為什么有 usbjtag 小板因為 arm的 DP 有 jtag-DP , riscv 有 jtag-dtm , 而上位機 有 USB
    發表于 12-14 19:06 ?2次下載
    <b class='flag-5'>USB</b>轉<b class='flag-5'>JTAG</b>小板 (一)

    USB串行端口完全突破和微小開源項目

    電子發燒友網站提供《USB串行端口完全突破和微小開源項目.zip》資料免費下載
    發表于 07-20 18:03 ?0次下載
    <b class='flag-5'>USB</b>串行<b class='flag-5'>端口</b>完全突破和微小<b class='flag-5'>開源</b>項目

    未知USB設備所需電量超出該端口怎么解決?

    未知USB設備所需電量超出該端口怎么解決? 解決未知USB設備所需電量超出端口限制的問題可以從以
    的頭像 發表于 12-09 14:23 ?3.2w次閱讀