Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ossfriendlydebugerpast20years.pdf
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
soburi
October 27, 2021
Technology
67
0
Share
ossfriendlydebugerpast20years.pdf
ossfriendlydebugerpast20years.pdf
soburi
October 27, 2021
More Decks by soburi
See All by soburi
Community Activities In Japan
tokitahiroshi
0
87
ZephyrでWASMを動かして起きる色々なこと
tokitahiroshi
0
210
OSSJ CFP提出反省会
tokitahiroshi
0
170
Zephyr RTOS Tutorial & MeetUp @ OSC2025Tokyo/Spring 駒澤大学種月館
tokitahiroshi
1
1.1k
ZephyrRTOSざっくり入門
tokitahiroshi
4
1.2k
ZephyrRTOSざっくり入門#2
tokitahiroshi
3
280
The_Features_of_ZephyrRTOS_and_the_project_operations.pdf
tokitahiroshi
1
120
KiCad 8.0 出ました。
tokitahiroshi
0
450
小江戸らぐ2024/2
tokitahiroshi
0
180
Other Decks in Technology
See All in Technology
Diagnosing performance problems without the guesswork
elenatanasoiu
0
130
管理アカウント単一運用からAWS Organizationsに移行するの大変で滅
hiramax
0
350
Spring AI × MCP 入門〜AIエージェントへのツール公開、境界設計から始める最小構成 〜
yuyamiyamoto
0
190
美味しいスイスチーズを作ろう🧀🐭
taigamikami
1
190
形式手法特論:公平性制約の位相的特徴づけ #kernelvm / Kernel VM Study Kansai 12th
ytaka23
1
640
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
2
190
コードレビューを制するチームがソフトウェアデリバリーのフローを制す / Beyond Code Review: Distributing Its Responsibilities Across the SDLC
mtx2s
3
500
long-running-tasks
cipepser
2
450
Claude Codeですべての日常業務を爆速化しよう!
minorun365
PRO
17
16k
Java正規表現エンジン(NFA)の仕組みと パフォーマンスを維持するための最適化手法
takeuchi_132917
0
160
PHP と TypeScript の型システム比較:AI 時代の「型」は誰のためにあるのか? #frontend_phpcon_do / frontend_phpcon_do_2026
shogogg
1
190
電子辞書Brainをネットに繋げてみた(自力編)
raspython3
0
380
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.3k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
200
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
Raft: Consensus for Rubyists
vanstee
141
7.5k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
390
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
The Curse of the Amulet
leimatthew05
1
13k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
430
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
380
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