Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

20,598 views

Published on

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

Published in: Technology
  • Be the first to comment

オープン・ソースで構築する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がいいや」

×