Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ossfriendlydebugerpast20years.pdf
Search
soburi
October 27, 2021
Technology
0
54
ossfriendlydebugerpast20years.pdf
ossfriendlydebugerpast20years.pdf
soburi
October 27, 2021
Tweet
Share
More Decks by soburi
See All by soburi
ZephyrでWASMを動かして起きる色々なこと
tokitahiroshi
0
140
OSSJ CFP提出反省会
tokitahiroshi
0
110
Zephyr RTOS Tutorial & MeetUp @ OSC2025Tokyo/Spring 駒澤大学種月館
tokitahiroshi
1
910
ZephyrRTOSざっくり入門
tokitahiroshi
4
770
ZephyrRTOSざっくり入門#2
tokitahiroshi
3
190
The_Features_of_ZephyrRTOS_and_the_project_operations.pdf
tokitahiroshi
1
70
KiCad 8.0 出ました。
tokitahiroshi
0
400
小江戸らぐ2024/2
tokitahiroshi
0
160
ZephyrRTOSで遊ぼう!
tokitahiroshi
0
690
Other Decks in Technology
See All in Technology
小規模チームによる衛星管制システムの開発とスケーラビリティの実現
sankichi92
0
180
機械学習を「社会実装」するということ 2025年冬版 / Social Implementation of Machine Learning November 2025 Version
moepy_stats
4
2.1k
re:Invent2025とAWS Builder Cards Resilience Expansionのご紹介
tsuwa61
1
130
ブラウザ拡張のセキュリティの話 / Browser Extension Security
flatt_security
0
240
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
16k
Claude Code はじめてガイド -1時間で学べるAI駆動開発の基本と実践-
oikon48
39
20k
生成AIシステムとAIエージェントに関する性能や安全性の評価
shibuiwilliam
2
300
セキュリティAIエージェントの現在と未来 / PSS #2 Takumi Session
flatt_security
3
1.1k
GitHub を組織的に使いこなすために ソニーが実践した全社展開のプラクティス
sony
21
11k
プラットフォームエンジニアリングとは何であり、なぜプラットフォームエンジニアリングなのか
doublemarket
1
520
Active Directory 勉強会 第 6 回目 Active Directory セキュリティについて学ぶ回
eurekaberry
16
5.6k
mablでリグレッションテストをデイリー実行するまで #mablExperience
bengo4com
0
460
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
225
10k
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
Optimizing for Happiness
mojombo
379
70k
We Have a Design System, Now What?
morganepeng
54
7.9k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Designing for humans not robots
tammielis
254
26k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
For a Future-Friendly Web
brad_frost
180
10k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Transcript
OSS Friendlyな Debug Adapter 20年史 常田 裕士
Motivation 組み込み開発周りのOpenOCDやらデバッグアダプタの説明をしようとしたら、 整理がつかなくった。 ベンダ依存性が強くてよくわからない話ばっかりなので、多少歴史的経緯を 追った方がよさそう。
前史 昔の組み込み開発ではInCircuitEmulator(ICE)のような高価なデバッグ装置が 必要だった 2000年ごろからハードウェアのテストに使っていたJTAGがソフトのデバッグ にも使われるようになってきた。 それから少し遅れて、2005年ぐらいからOpenOCDを使ったOSSベースの組み込 み開発環境が増えてきて、現在に至る。
FT2232とJTAG Adapter FTDI FT2232 (2006年?) USB – 高速シリアル変換のチップ
このチップが登場して、JTAGポートを操作するHackが簡単に行えるようになった。 https://akizukidenshi.com/catalog/g/gM-02990/ 秋月電子でも2009年からモジュール取り扱い
FT2232ベースのJTAGデバッガーの流行 https://www.olimex.com/Products/ARM/JTAG/ARM-USB-OCD- H/?utm_source=platformio&utm_medium=docs 2000年代初頭の「格安PCB製造」の代表だった、 ブルガリアのOlimexの製品。 https://strawberry-linux.com/catalog/items?code=15002
Strawberry-linuxでも2006年から販売。 まだD-SUB9 のシリアルが使われていた。 この製品に限らず、そこかしこでFT2232ベースのデバッガがつくられた。 OpenOCDには現在でも70以上のFT2232ベースのアダプタの設定ファイルが 格納されている
SWDの普及 2本線でデバッグできるSWDも普及してきた。 (ソフト開発から見ると、デバッグできればいいので、これもよく「JTAG」と 呼ばれている) ARMのCPUとセットで、各社の~LINKが色々出てきた。 各社の廉価なARMチップで作ってることが多数。 https://www.st.com/ja/development-tools/st-link-v2.html
ST-LINKは廉価なクローンもたくさん作られた。
CMSIS-DAP 2012年にARMで共通のデバッグポート企画のCMSIS-DAPが制定された。 これで独自の~LINK自体はほぼ必要なくなり。ARM共通のデバッガがつくられ るようになった。 標準的なデバッグ機能はこれで賄えるようになったので、商用のデバッグアダ プタは独自機能で差別化する形に(J-Linkのログ機能のRTTなど)
PyOCD CMSIS-DAPでARMのデバッガが標準化されると、比較的大規模なソフトである OpenOCDとは別のOCD実装が登場する。 PyOCDはPythonで書かれたOCD。OpenOCDがスクリプト言語のtclを組み込んで、 複雑なカスタマイズを実現しているが、PyOCDはそもそもスクリプト言語。 開発者的に取り回しがいい。 対象もCMSIS-DAPに絞っているので、ソフト自体もスッキリしている。
Raspberry Pi Picoを使ったデバッグアダプタのpicoprobeもこれで使える。
Blackmagic Probe OpenOCD、PyOCD、いずれもプロセス間通信でgdbと通信しているため、ソフ トの構成としては、複雑なツールとなっている。 Blackmagic ProbeはOCD相当の機能をマイコンに組み込んで、シリアル通信で gdbと通信できるようにしている。
https://github.com/blacksphere/blackmagic gdbで直接デバッグできるようになるので、組み込み特有の設定のわずらわし さが軽減された。 次世代デバッグツールの方向性として注目。
最近のOSSのDebug Adapaterまとめ SoC デバッグI/F OCDツール デバッガ ARM(最近のもの) SWD Blackmagic gdb
SWD PyOCD gdb JTAG OpenOCD gdb ARM(昔のもの) JTAG OpenOCD gdb RISCV/ESP32 JTAG OpenOCD gdb