Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ossfriendlydebugerpast20years.pdf
Search
soburi
October 27, 2021
Technology
89
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ossfriendlydebugerpast20years.pdf
ossfriendlydebugerpast20years.pdf
soburi
October 27, 2021
More Decks by soburi
See All by soburi
Community Activities In Japan
tokitahiroshi
0
130
ZephyrでWASMを動かして起きる色々なこと
tokitahiroshi
0
270
OSSJ CFP提出反省会
tokitahiroshi
0
210
Zephyr RTOS Tutorial & MeetUp @ OSC2025Tokyo/Spring 駒澤大学種月館
tokitahiroshi
1
1.3k
ZephyrRTOSざっくり入門
tokitahiroshi
4
1.6k
ZephyrRTOSざっくり入門#2
tokitahiroshi
3
380
The_Features_of_ZephyrRTOS_and_the_project_operations.pdf
tokitahiroshi
1
170
KiCad 8.0 出ました。
tokitahiroshi
0
480
小江戸らぐ2024/2
tokitahiroshi
0
240
Other Decks in Technology
See All in Technology
MCPでAIが自分で調べに行く
cdataj
0
130
JAWSコミュニティに 参加して1年経った結果
ssakita
0
120
Active Directory と Entra ID のむむむな関係
murachiakira
PRO
4
1.7k
視野はAIに、視座は人に / ai-for-breadth-humans-for-perspective
nkzn
6
3.2k
AWS基盤改善を支える 私たちの理念と行動指針
kentosuzuki
0
140
長い仕事を任せる (Workflows、クラウドセッション、Kiro Web) | 目指せ Kiro マスター 10
inariku
PRO
3
150
業務でAWSをあまり使っていない私が、AWSへのモチベを保つ方法
smt7174
0
180
BALLAS Technology Deck
ballas_inc
0
370
内製アプリとClaudeスキルのセキュリティチェック、 Backlogの課題で回しています。
ayaka_egaaa
0
160
なぜ東京にいる私が、新潟の技術コミュニティを運営するのか by 八雲慎之助
yakumo
0
230
Agent Harnessはどう作る?事例から学ぶAI Agentの設計思想
sergicalsix
0
230
Shared Signals Framework 仕様解説
oidfj
0
320
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
How to make the Groovebox
asonas
2
2.5k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
560
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
610
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
530
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
23k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
750
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