オープンソースで構築するARMマイコン開発環境 むらなか まさき / 合同会社もなみ屋   twitter id : @monamour555    http://www.monami-ya.jp/    http://www.pizzafac...
配信について• Twitter = OK! (“Tsudaり”も無問題)• UST = NG... (聴講者の肖像権に配慮)• 写真 = OK (でも肖像権に配慮お願い)
プレゼンシートは• 予稿から加筆してあります.• 後日公開します. (配信方法は後日お知らせします. http://www.pizzafactory.jp/ )
講師 - 自己紹介• オープンソース系組込み開発の人• 元TOPPERSの中の人• GNU Debugger のメンテナの一人
IF誌に連載中の人
組込み向けOSS•   コンパイラ    •   GNU Compiler Collection (gcc / g++) : http://gcc.gnu.org/    •   clang : http://clang.llvm.org/• ...
組込み向けOSS•   ターゲットデバッガ    •   JTAG系        •   OpenOCD : http://openocd.sourceforge.net/        •   gdbproxy (Blackfin, MSP4...
組込み向けOSS•   統合開発環境のUI (IDE)    •   Eclipse : http://www.eclipse.org/    •   NetBeans : http://www.netbeans.org/    •   Sou...
組込み向けOSS•   シミュレータ / エミュレータ    •   qemu : http://qemu.org/    •   skyeye : http://www.skyeye.org/    •   GDB内蔵シミュレータ : htt...
使えるか/使えないか• 結論: 使える • 編集 → コンパイル → シミュレー  ション → 実機デバッグ• ただし, えるのが大変 • ツール開発者がてんでばらばら.
群雄割拠•   Cygwin + 独自ビルド    •   GNUWing, ...•   MinGWベース    •   YAGARTO, CodeSourcery G++, gcc-arm-embedded, ...•   独自移植    ...
自力で環境構築• 自力でも環境構築 できますよね…
一日仕事です• 丁寧な解説例: http://todotani.cocolog-  nifty.com/blog/2012/05/fm3openocd-  ecli.html• 趣味でやるなら,一手間も愉しいもの  です.• 仕事で同じ事やれま...
PizzaFactory統合開発環境
PizzaFactory• 組込み開発者向けディストリビュー ション• 2005年頃には存在.(当時の競合は  Zylin/CDT くらい?)• オープンソースを積極採用
群雄割拠… それでも出荷する理由• マルチターゲットへの考慮 • 当初はTOPPERSカーネルを想定• 統一したインストール機構
PizzaFactory 8• (Eclipse/CDT 8) + (組込向け機能追加)• ツールチェーンバイナリをEclipse/p2の フィーチャーとして提供 • Eclipseのフィーチャー管理のみで開発   環境の構成管理が可能に
変更された方針• CDTに対する独自拡張を可能な限り抑 える → CDT/DSFが安定したため• 非OSS部分のOSS化 → アイコン等も Creative Commons 化 (ただし商標権等 は保持)
変更された方針• 有償版では,安定版のアップデートサ イトやそのDVD-ROMコピー,オプショ ンでプロジェクト専用のアップデート サイトを提供• 無償版の想定ユーザ : 環境が不安定に なってもよい.初物食いが好き.
CQ版の特徴• 無償.• アップデートサイトはCQ版専用を用意 • 無償版より安定(の可能性が高い) • 記事連動のフィーチャーのみ提供
CQ版のフィーチャー• Eclipse • CDT 8.0.2 • TM terminal support (w/ gnu.io.rxtx)• arm-elf-gcc, arm-elf-g++, arm-elf-gdb, newlib• Ope...
Workflowコーディングビルド                  OpenOCDデバッグ設定ターゲット起動デバッガ起動 デバッグ              GDB
30分でLチカできます.
<  Ω ΩΩ              Ω<                Ω Ω  そんなうまい話が…                <   Ω<      Ω ΩΩΩΩ                          Ω<       ...
やってみせましょう
OpenOCD
OpenOCDとは• [System Programming andDebugging, In-    Free and Open On-Chip                          Boundary-Scan    Testin...
OpenOCD : 特徴• オープンソース (GPL)• Tcl 言語による柔軟性• フロントエンドとバックエンドの分離 • 幅広いJTAGアダプタに対応• GDBと連携しデバッグサーバにもなる
OpenOCD : 課題• JTAGアダプタの入手困難性 • パラレルポートは遠い過去の花火 • USB接続は安いものでも数千円から • FT2232 の評価ボードなら1500円    • でも一手間かかる
OpenOCD : 解決案• 付録基板でJTAGアダプタを作れば• アイデアとしては突飛ではない • Blackfin用純正ICEにBlackfinが入ってい  る,など実績あり.
CDC-Link• マイコン上に実装されたJTAG-IF• 作者: 山本耕司さん• 対応マイコン基板: CQ-STARM, FRK- FM3, FRK-NXP, FRK-SH2A, FRK-RX62N, STBee/Mini, MARY, …
CDC-Link : 解決案• CDCクラスのUSBデバイスとして実装 • プロトコルの明確化で移植性確保   • Linux や OSX などでの動作(期待)   • 転送速度の遅さは,JTAGアダプタ側   に解釈処理させることで回避
まとめ
まとめ• OSSのみでの組込み開発は,一度環境が   えば問題なくできる機能/安定性.• 環境構築が大変 → PizzaFactory8 (CQ)で 解決
まとめ (cont’d• JTAGデバッグのためのハードウェア調 達に少し高い敷居• CDC-Link で改善
まとめ• 昔「予算ないからOSSでいいや」• 今「いろいろ便利だからOSSがいいや」
Upcoming SlideShare
Loading in...5
×

オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!

17,652

Published on

CQ出版(株)主催「ARM Cortex-M マイコン・ワークショップ2012」
テクニカルセッションでのプレゼンテーション資料です.予稿集から加筆が行われています.
当日行った実機デモンストレーションの様子は含まれていません.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
17,652
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript of "オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!"

    1. 1. オープンソースで構築するARMマイコン開発環境 むらなか まさき / 合同会社もなみ屋 twitter id : @monamour555 http://www.monami-ya.jp/ http://www.pizzafactory.jp/
    2. 2. 配信について• Twitter = OK! (“Tsudaり”も無問題)• UST = NG... (聴講者の肖像権に配慮)• 写真 = OK (でも肖像権に配慮お願い)
    3. 3. プレゼンシートは• 予稿から加筆してあります.• 後日公開します. (配信方法は後日お知らせします. http://www.pizzafactory.jp/ )
    4. 4. 講師 - 自己紹介• オープンソース系組込み開発の人• 元TOPPERSの中の人• GNU Debugger のメンテナの一人
    5. 5. IF誌に連載中の人
    6. 6. 組込み向けOSS• コンパイラ • GNU Compiler Collection (gcc / g++) : http://gcc.gnu.org/ • clang : http://clang.llvm.org/• アセンブラ・ローダ • GNU Binutils : http://sourceware.org/binutils/• デバッガ • GNU Debugger : http://sourceware.org/gdb/
    7. 7. 組込み向けOSS• ターゲットデバッガ • JTAG系 • OpenOCD : http://openocd.sourceforge.net/ • gdbproxy (Blackfin, MSP430, etc) • UrJTAG (旧OpenJTAG) : http://urjtag.org/ • ROMデバッガ系 • GDB stub
    8. 8. 組込み向けOSS• 統合開発環境のUI (IDE) • Eclipse : http://www.eclipse.org/ • NetBeans : http://www.netbeans.org/ • Source Navigator + Insight : http://sourcenav.sourceforge.net/ • Emacs, vim, ...
    9. 9. 組込み向けOSS• シミュレータ / エミュレータ • qemu : http://qemu.org/ • skyeye : http://www.skyeye.org/ • GDB内蔵シミュレータ : http://sourceware.org/gdb/ • gxemul : http://gxemul.sourceforge.net/
    10. 10. 使えるか/使えないか• 結論: 使える • 編集 → コンパイル → シミュレー ション → 実機デバッグ• ただし, えるのが大変 • ツール開発者がてんでばらばら.
    11. 11. 群雄割拠• Cygwin + 独自ビルド • GNUWing, ...• MinGWベース • YAGARTO, CodeSourcery G++, gcc-arm-embedded, ...• 独自移植 • exeGCC, ...
    12. 12. 自力で環境構築• 自力でも環境構築 できますよね…
    13. 13. 一日仕事です• 丁寧な解説例: http://todotani.cocolog- nifty.com/blog/2012/05/fm3openocd- ecli.html• 趣味でやるなら,一手間も愉しいもの です.• 仕事で同じ事やれますか?
    14. 14. PizzaFactory統合開発環境
    15. 15. PizzaFactory• 組込み開発者向けディストリビュー ション• 2005年頃には存在.(当時の競合は Zylin/CDT くらい?)• オープンソースを積極採用
    16. 16. 群雄割拠… それでも出荷する理由• マルチターゲットへの考慮 • 当初はTOPPERSカーネルを想定• 統一したインストール機構
    17. 17. PizzaFactory 8• (Eclipse/CDT 8) + (組込向け機能追加)• ツールチェーンバイナリをEclipse/p2の フィーチャーとして提供 • Eclipseのフィーチャー管理のみで開発 環境の構成管理が可能に
    18. 18. 変更された方針• CDTに対する独自拡張を可能な限り抑 える → CDT/DSFが安定したため• 非OSS部分のOSS化 → アイコン等も Creative Commons 化 (ただし商標権等 は保持)
    19. 19. 変更された方針• 有償版では,安定版のアップデートサ イトやそのDVD-ROMコピー,オプショ ンでプロジェクト専用のアップデート サイトを提供• 無償版の想定ユーザ : 環境が不安定に なってもよい.初物食いが好き.
    20. 20. CQ版の特徴• 無償.• アップデートサイトはCQ版専用を用意 • 無償版より安定(の可能性が高い) • 記事連動のフィーチャーのみ提供
    21. 21. CQ版のフィーチャー• Eclipse • CDT 8.0.2 • TM terminal support (w/ gnu.io.rxtx)• arm-elf-gcc, arm-elf-g++, arm-elf-gdb, newlib• OpenOCD (CQ special edition)• qemu (CQ special edition)
    22. 22. Workflowコーディングビルド OpenOCDデバッグ設定ターゲット起動デバッガ起動 デバッグ GDB
    23. 23. 30分でLチカできます.
    24. 24. < Ω ΩΩ Ω< Ω Ω そんなうまい話が… < Ω< Ω ΩΩΩΩ Ω< ΩΩ
    25. 25. やってみせましょう
    26. 26. OpenOCD
    27. 27. OpenOCDとは• [System Programming andDebugging, In- Free and Open On-Chip Boundary-Scan Testing] - http://openocd.sourceforge.net/• でも実際はオンチップデバッガかフラッシュ メモリライタかの使われ方が普通.• JTAGから始まって,最近はSWDにも対応
    28. 28. OpenOCD : 特徴• オープンソース (GPL)• Tcl 言語による柔軟性• フロントエンドとバックエンドの分離 • 幅広いJTAGアダプタに対応• GDBと連携しデバッグサーバにもなる
    29. 29. OpenOCD : 課題• JTAGアダプタの入手困難性 • パラレルポートは遠い過去の花火 • USB接続は安いものでも数千円から • FT2232 の評価ボードなら1500円 • でも一手間かかる
    30. 30. OpenOCD : 解決案• 付録基板でJTAGアダプタを作れば• アイデアとしては突飛ではない • Blackfin用純正ICEにBlackfinが入ってい る,など実績あり.
    31. 31. CDC-Link• マイコン上に実装されたJTAG-IF• 作者: 山本耕司さん• 対応マイコン基板: CQ-STARM, FRK- FM3, FRK-NXP, FRK-SH2A, FRK-RX62N, STBee/Mini, MARY, …
    32. 32. CDC-Link : 解決案• CDCクラスのUSBデバイスとして実装 • プロトコルの明確化で移植性確保 • Linux や OSX などでの動作(期待) • 転送速度の遅さは,JTAGアダプタ側 に解釈処理させることで回避
    33. 33. まとめ
    34. 34. まとめ• OSSのみでの組込み開発は,一度環境が えば問題なくできる機能/安定性.• 環境構築が大変 → PizzaFactory8 (CQ)で 解決
    35. 35. まとめ (cont’d• JTAGデバッグのためのハードウェア調 達に少し高い敷居• CDC-Link で改善
    36. 36. まとめ• 昔「予算ないからOSSでいいや」• 今「いろいろ便利だからOSSがいいや」

    ×