2
76 Design Wave Magazine 2008 June 本稿では,無償ツールと市販部品を使って汎用の ARM 用 JTAG デバッガを自作する.GNU ベースなので,生成コード の制約を気にしないで本誌 2008 年 5 月号付属 ARM 基板のプ ログラムが開発できるほか,さまざまな ARM プロセッサにも 利用できる.RS-232-C や UART インターフェースも同時に 作成し,開発のさまざまな局面で役立てられる. (編集部) 本誌 2008 年 5 月号に STMicroelectronics 社のマイコン STM32F103 を搭載した基板が付属しました.このマイコ ンは,128K バイトのフラッシュ・メモリと 20K バイトの SRAM を内蔵し,コアとして72MHz 動作のARM Cortex- M3 を採用したものです.従来の ARM マイコンに比べ, Thumb-2 という命令体系によりコード効率が改善され,割 り込み応答性能も良くなっています.せっかく高性能なマ イコン基板を入手したので,何かしっかり開発してみたく なるのが人情というものです. ところが,5 月号に付属した開発ツールはいずれも評価 版で,生成できるコードが 16K バイトや 32K バイトまでに 制限されています.せっかくの 128K バイトの内蔵フラッ シュ・メモリを生かせません.また,DFU(Device Firm ware Update)機能により手軽にフラッシュ・メモリへプ ログラムをダウンロードできますが,開発環境側からフ ラッシュ・メモリ上のプログラムをデバッグできません. コード・サイズ制限は,GNU の GCC を使えば突破でき ますが,フラッシュ・メモリ上のプログラムをデバッグす るには JTAG デバッガが欲しくなります.本稿では,筆者 が製作した図1 に示すような JTAG デバッガ,名付けて 「ARM OCD(On Chip Debugger)myJTAG」を紹介しま す.また,統合開発環境 Eclipse によるデバッグ環境の立 ち上げについて解説します.パソコン上のツールはすべて 無償で手に入るものを使います.製作に使用した電子部品 はすべて東京・秋葉原などの部品販売店で手に入ります. 1.USB 接続型 JTAG デバッガの製作 まずは,USB 接続型 JTAG デバッガ「ARM OCD my JTAG」を製作しましょう.USB からJTAG に変換するデ バイスとしてデファクトなのが英国 Future Technology Devices International (FTDI)社のFT2232です.これを 使って USB-JTAG 変換機能を実現します.フリーのデバッ ガ・ソフトウェアとしてはスタンダードな「Open On-chip Debugger」がすでに対応しており,簡単にコア内蔵のオン チップ・デバッガ機能を使えます. なお,FT2232 は 2 チャネルを備えています.USB ⇔ RS- 232-C 変換機能もおまけで作り込み,TTL レベルの UART 信号の接続もできるようにしました.開発の際,なにかと 重宝すると思います.試作機の仕様を表1 に示します. 本機は今回の Cortex-M3 だけでなく,ARM 系コアを持 つマイコンのほとんどをデバッグできる汎用性の高いもの です.1 台作っておくと,今後役立つと思います.本機と同 等な RS-232-C ポートも含む市販の JTAG デバッガは 1 万円 くらいしますが,自作すると半分以下の値段で完成します. 山崎尊永� ARMプロセッサで使える� 汎用JTAGデバッガを自作する� ARMプロセッサで使える� 汎用JTAGデバッガを自作する� 5 無償ツールと市販部品でARMプログラミングを満喫!� JTAGデバッガ,USB,FT2232,ARM,Cortex-M3,STM32,RS-232-C,SP3243,GNU,GCC,GDB, Open On-chip Debugger,Eclipse Keyword

第5章 無償ツールと市販部品でARMプログラミングを満喫! ARM ... · 2008-05-01 · 76 Design Wave Magazine 2008 June 本稿では,無償ツールと市販部品を使って汎用のARM用

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 第5章 無償ツールと市販部品でARMプログラミングを満喫! ARM ... · 2008-05-01 · 76 Design Wave Magazine 2008 June 本稿では,無償ツールと市販部品を使って汎用のARM用

76 Design Wave Magazine 2008 June

本稿では,無償ツールと市販部品を使って汎用のARM用

JTAGデバッガを自作する.GNUベースなので,生成コード

の制約を気にしないで本誌2008年5月号付属ARM基板のプ

ログラムが開発できるほか,さまざまなARMプロセッサにも

利用できる.RS-232-CやUARTインターフェースも同時に

作成し,開発のさまざまな局面で役立てられる. (編集部)

本誌2008年5月号にSTMicroelectronics社のマイコン

STM32F103を搭載した基板が付属しました.このマイコ

ンは,128Kバイトのフラッシュ・メモリと20Kバイトの

SRAMを内蔵し,コアとして72MHz動作のARM Cortex-

M3を採用したものです.従来のARMマイコンに比べ,

Thumb-2という命令体系によりコード効率が改善され,割

り込み応答性能も良くなっています.せっかく高性能なマ

イコン基板を入手したので,何かしっかり開発してみたく

なるのが人情というものです.

ところが,5月号に付属した開発ツールはいずれも評価

版で,生成できるコードが16Kバイトや32Kバイトまでに

制限されています.せっかくの128Kバイトの内蔵フラッ

シュ・メモリを生かせません.また,DFU(Device Firm

ware Update)機能により手軽にフラッシュ・メモリへプ

ログラムをダウンロードできますが,開発環境側からフ

ラッシュ・メモリ上のプログラムをデバッグできません.

コード・サイズ制限は,GNUのGCCを使えば突破でき

ますが,フラッシュ・メモリ上のプログラムをデバッグす

るにはJTAGデバッガが欲しくなります.本稿では,筆者

が製作した図1に示すようなJTAGデバッガ,名付けて

「ARM OCD(On Chip Debugger)myJTAG」を紹介しま

す.また,統合開発環境Eclipseによるデバッグ環境の立

ち上げについて解説します.パソコン上のツールはすべて

無償で手に入るものを使います.製作に使用した電子部品

はすべて東京・秋葉原などの部品販売店で手に入ります.

1.USB接続型JTAGデバッガの製作

まずは,USB接続型JTAGデバッガ「ARM OCD my

JTAG」を製作しましょう.USBからJTAGに変換するデ

バイスとしてデファクトなのが英国Future Technology

Devices International(FTDI)社のFT2232です.これを

使ってUSB-JTAG変換機能を実現します.フリーのデバッ

ガ・ソフトウェアとしてはスタンダードな「Open On-chip

Debugger」がすでに対応しており,簡単にコア内蔵のオン

チップ・デバッガ機能を使えます.

なお,FT2232は2チャネルを備えています.USB⇔RS-

232-C変換機能もおまけで作り込み,TTLレベルのUART

信号の接続もできるようにしました.開発の際,なにかと

重宝すると思います.試作機の仕様を表1に示します.

本機は今回のCortex-M3だけでなく,ARM系コアを持

つマイコンのほとんどをデバッグできる汎用性の高いもの

です.1台作っておくと,今後役立つと思います.本機と同

等なRS-232-Cポートも含む市販のJTAGデバッガは1万円

くらいしますが,自作すると半分以下の値段で完成します.

山崎尊永�

ARMプロセッサで使える�汎用JTAGデバッガを自作する�ARMプロセッサで使える�汎用JTAGデバッガを自作する�

第 5 章 �無償ツールと市販部品でARMプログラミングを満喫!�

JTAGデバッガ,USB,FT2232,ARM,Cortex-M3,STM32,RS-232-C,SP3243,GNU,GCC,GDB,Open On-chip Debugger,EclipseKeyword

Page 2: 第5章 無償ツールと市販部品でARMプログラミングを満喫! ARM ... · 2008-05-01 · 76 Design Wave Magazine 2008 June 本稿では,無償ツールと市販部品を使って汎用のARM用

Design Wave Magazine 2008 June 77

● 部品を集めて製作しよう

本機の回路図を図2に示します.また部品表を表2に示

します.部品はすべて東京・秋葉原で入手できました.

FT2232は現在,FT2232Dが最新バージョンですが,筆者

が入手できたFT2232Lでも全く問題なく使えます.

多くのオープン・ソースの開発ツールは,スイス

Amontec社のJTAGデバッガ「JTAGkey」をサポートして

います.そこで本機も,FT2232のGPIO経由のリセット

関連信号などの論理的な接続方式はJTAGkeyと互換性を

持たせてあります.

使用するコネクタのピン配置を写真1と写真2に示しま

す.また本機の外観を写真3と写真4に示します.

U2(シリアルEEPROM)を除くLSIはすべて表面実装タ

イプなので,ピッチ変換基板を使っています.1.27mmピッ

チ,0.65mmピッチ,0.5mmピッチと3種類あります(p.78

のコラム「表面実装LSIのはんだ付け」を参照).

USBコネクタCN1とU1 FT2232との間のUSB信号DM/

DPの配線は極力短くなるようにします.

JTAG信号は,74VHCタイプの標準ロジックICを経由

させます.74VHCタイプはその電源電圧よりも高い入力電

圧を印加でき,レベル変換ができます.U4とU5はターゲッ

ト基板の電源TVCCを印加しますが,ターゲット基板の電源

TVCCは3V系でも5V系でもOKです.本機内にはこのTVCC

とUSBケーブルから供給されるVCC(+5V)の2系統の電源

があるので,間違えないように配線してください.

外部のTTLレベルのUART機器との接続は,SW1のピ

ン・ヘッダ経由となりますが,外部からの信号がU6 SP3243

(RS-232-Cレベル変換IC)と衝突しないようにジャンパを

使っています.TTLレベルUARTを使う場合は,ジャン

パ・ピンを取り外します.なお,U6(SP3243)は,/SHUT

DOWNを“L”レベルにすると出力信号がハイ・インピーダ

ンスになります.これを使って信号衝突を防ぐ方法もある

ので,工夫してみてください.

本機はパソコンやターゲット基板に接続するものなので,

相手機器を壊さないため,配線は念入りにチェックしてく

ださい.特に電源配線は間違いのないようにしてください.

念のため,USBから供給されるVCCラインには,100mA

ARM基板を使った�システム開発の基礎�ARM基板を使った�システム開発の基礎�

0

1

2

3

4

5

6No. 項目 内容

1 使用デバイス FTDI社 FT2232

ARM標準JTAGコネクタ(20ピン)直結可能TRST/SRSTフル・サポート

2USB⇔JTAG

ターゲット電源検知インターフェース

ターゲット状態表示LED×2個(Amontec社JTAGkey準拠)

Dサブ9ピン・コネクタフル・モデム信号サポート

3USB⇔RS-232-C

送受信状態LED×2個インターフェース

TTLレベルUART信号入出力可能JTAGと同時利用可能

4 USBUSB 2.0 フル・スピード(12Mbps)バス・パワー動作(50mA以下)

5 デバッガ GDB + Open On-chip Debugger

表1 「ARM OCD myJTAG」の仕様

USBコネクタ�RS-232-C

20ピンJTAGコネクタ�

UARTインターフェース�

図1 「ARM OCD myJTAG」と統合開発環境Eclipse

(a)は手前左側にUSBコネクタがありパソコンと接続する.USB-JTAGインターフェース機能により,ARM系マイコン標準の20ピンJTAGコネクタに接続できる.USB⇔RS-232-C変換機能も備えており,9ピンのDサブ・コネクタが見える.上面中央の四角い穴は,TTLレベルUARTインターフェースである.RS-232-C/UARTは,JTAGと同時使用できる.(b)はオープン・ソースの統合開発環境である.GNU gccとOpen On-Chip Debuggerをベースにして開発する.この環境の上で,ソース・コードの編集,ビルド,フラッシュ・メモリへのダウンロード,フラッシュ・メモリ上のプログラムのソース・レベル・デバッグを行うことができる.

(a)試作したUSB⇔JTAGインターフェース「ARM OCD myJTAG」 (b)統合開発環境Eclipse