自動車向けプロセッサの開発環境を試す(1/4 ページ)

自動車および産業機器分野においても、ARMアーキテクチャのプロセッサが数多く利用されるようになってきた。今後はこれらの市場に特化してきた独自アーキテクチャのプロセッサとし烈な競争を繰り広げることになりそうだ。主要なベンダーが発表する最新のプロセッサからは、これまでの市場シェアを堅持しようとする強い意志が見て取れる。

» 2007年03月01日 00時00分 公開
[David Marsh,EDN]

 これまで独自アーキテクチャのプロセッサが主流であった自動車および産業機器市場において、ARMアーキテクチャが多く利用されるようになってきた*1)、*2)。英ARM社のプロセッサコア「Cortex-M3」の最新版が、米Luminary Micro社の「Stellaris」ファミリに今回初めて搭載された。Cortex-M3は従来の「ARM7TDMI」とその上位互換の後継機種の弱点を改善するために再設計され、このアーキテクチャの課題であったリアルタイム応答性能が強化された。 自動車向けプロセッサに長年注力してきたベンダーは、これまで獲得してきた自動車市場でのシェアを維持するために、コストパフォーマンスを向上させた新しいチップを継続的に発表している。最近発表された独自設計の32ビットプロセッサのいくつかは、ハードウエアによるリアルタイム制御やデジタル信号処理などに適し、汎用の組み込み制御機器からインフォテインメント機器まで、さまざまなアプリケーションに適応できる設計となっている。 こうした中、各メーカーは、低コストの開発環境を提供することで、各チップの能力を目立たせることができるのではないかと考えている。次節では、そうした典型的な例を見ていただくことにする。

μClinuxを使う

 米Motorola社の半導体部門を前身とする米Freescale Semiconductor社は、最初に自動車分野に狙いを定めた半導体メーカーの1つである。同社の代表的な製品の1つであるプロセッサ「MPC565」はPowerアーキテクチャのコアを搭載し、エンジンの管理およびパワートレインの制御分野で広く採用されている。同社の製品ポートフォリオには、ほかに産業機器の制御/ネットワークに多く利用されている32ビットプロセッサ「ColdFire」シリーズがある。その後対象分野は広げられ、最新の「MCF5251」はポータブルおよび車載用のオーディオプレーヤをターゲットとし、ハードディスク用のATA-66対応インターフェース、CD-ROMコーデック、SmartMediaコントローラ、USB 2.0 On-The-Go(OTG)コントローラ、シリアルデジタルオーディオとのインターフェースなどを内蔵する。そのプロセッサコア「ColdFire V2」は、拡張MAC(multiply accumulate:積和演算)ユニットを搭載することにより、マルチメディアデータのストリーミング処理をサポートし、多くの用途において専用DSPを不要とした。同製品には128KバイトのSRAMと8Kバイトの命令キャッシュおよび外部メモリーシステムをサポートするためのシステムバスコントローラ、SDRAMインターフェースが集積されている。ROMブートローダにより、チップはハードディスク、I2C、またはSPIに接続された機器からブート可能である。一般的なマイクロコントローラの周辺機能に加え、2つのCAN(controller area network)ポートを備えている。また、JTAGおよびBDM(background debug mode)インターフェースを搭載することにより、システム開発を容易にしている。価格はおよそ11米ドル(1000個購入時)である。

 評価キット「M5251EVBWR」の価格は949.5米ドルで、これはシングルボードコンピュータ「M5251C3」、2.2インチ(約5.6cm)のTFT液晶ディスプレイモジュール、シリアルケーブルおよびユニバーサル電源から成る。これに加えて、米Wind River社の「Wind River Workbenchオンチップデバッグエディション(以下、Workbench)」の30日間評価版と、ホストコンピュータをボードに接続する「Probe USBエミュレータ」が付属している。Workbenchは、一般的なデバッグとプログラミングの機能をすべて含むソフトウエア開発スイートである。Linux、ThreadX、VxWorksなどのOS環境に対応し、Linux、Solaris、Windowsのホスト上で動作する。

 このM5251EVBWRは新製品であるため、ボードのサポート情報がパッケージに含まれておらず、Freescale社のウェブサイトからダウンロードしなければならない。ただし、ライセンスの問題があり、Workbenchとともに使うTrioソフトウエアをダウンロードするにはそのための権限を得る必要がある。付属のCD-ROMには特にMCF5251を対象とした例はないが、MCF5251のウェブページから、グラフィックイコライザ、JPEGビデオ、MPEG-2AAC(advanced audio coding)、MP3デコーダなどのプログラムから成るソフトウエアライブラリが入手できるようになっている。

 ドキュメントによると、このボードには2Mバイトのフラッシュメモリーが搭載されている。そのうちの256Kバイトにはデバッグモニター(dBUG monitor。以下、dBUG)/デバッガファームウエアが実装されており、RS-232端末としてスタンドアロン動作も可能な仕様となっている。しかし、筆者らの実験ではこのボードでRS-232ポートを介して通信することはできず、エラーブレークおよびブレーク信号を送信し、停止してしまった。また、Wind River社製ソフトウエアのインストールはスムーズに完了するが、付属の説明書の中で紹介されているHddSoftwareサンプルディレクトリは作成できなかった。

 BDM/JTAG用の開発環境「Wind River Probe」はうまく接続することができた。Wind River社によると、同開発環境を使えば、マイクロコントローラに組み込まれたJTAGベースのデバッグシステムに競合製品の3〜10倍の速さでアクセスできるという。Trioソフトウエアには、MP3プレーヤの全アプリケーションが含まれている。これには外付けのATA対応ハードディスク装置が必要となるが、この複雑な環境で使用を開始するための手引き書はほとんどない。Freescale社とWind River社は、ユーザーが製品を容易に使い始められるように整備中である。この評価キットの使用を考えているのであれば、両社に連絡して最新のサポートマニュアルを入手するとよい。Wind River社は現在、この評価キットを購入するユーザーに対して5000米ドルという優待価格を設けている。ソフトウエアにはコンパイラおよびWorkbenchの永久ノードロック版と、キットに含まれるエミュレータを使ったColdFireファミリのサポートが付与される。

 Freescale社の別の新製品もColdFireを採用しており、事実上すべてのFreescaleユーザーが使い慣れているであろうIDE(統合開発環境)「CodeWarrior」が付属している。例えば評価キット「M5208EVB」は、価格が349米ドルで、米Intec Automation社製の評価ボード、米P&E Microcomputer Systems社製のUSB MultiLink BDMインターフェース、必要なすべてのケーブルおよび電源から成る。価格が7.22米ドル(1000個購入時)のプロセッサ「MCF5208」は、MCF5251と同じコアと汎用周辺機能を備えてはいるが、マルチメディアインターフェースとCANポートはない。産業用ネットワークでの利用を考えて、MCF5208にはファストイーサーネットのポートが追加されている。それ以外に、導入用CD-ROMと、μClinux OS用のIntec Automation社製SBC Toolsボードサポートパッケージが付属している。米CMX Systems社、米Green Hills Software社、米Treck社からの評価ソフトウエアも含まれている。2Mバイトフラッシュメモリーにはウェブブラウザインターフェースを提供するdBUGとμClinuxカーネルがインストールされ、プログラム空間として32Mバイトが提供される。インターフェースには、シリアルおよびイーサーネットポート、BDMヘッダー、I2CやSPIバスなど、さまざまな信号に対応するための16ピンヘッダーがある。Freescale社がZigBee市場での展開をにらんでいることから、ボード上にはトラックアンテナ付きのZigBeeトランシーバが搭載されている。

 導入用CD-ROMは、ボードをスキャンするプログラムを自動的に実行し、端末のプログラムと115200ボーのシリアル通信を確立してμClinuxをブートする。端末プログラムの通信速度を19200ボーにリセットし、ジャンパJP3を外して画面を再びブートすると、dBUGのプロンプトが表示される(コマンド入力が可能な状態になる)。54ページから成るマニュアルは、組み立て/分解、フラッシュメモリープログラミングなどdBUGのユーティリティについて解説しており、小規模なシステムを独自に作成したいと考えるマシンコード好きなユーザーには非常に興味深い内容となっている。アボートプッシュボタンは、ここでは特に有用である。ユーザーコードからdBUGへ制御を受け渡し、マシンの状態を保存するレベル7の割り込みを生成するからだ。この操作により、ColdFireのコアレジスタの状態も自動的に表示される。誤ってフラッシュメモリーの内容を消去してしまった場合には、dBUGとμClinuxをM5208EVBのウェブページから入手することができる。

 より大規模な開発プロジェクトにはCodeWarriorが便利である。評価キットには、同開発環境の特別版(128Kバイト)が含まれている。起動スクリプトの生成用テンプレートを提供するStationeryなどの機能を持つこのIDEは、P&Eハードウエアデバッガを使用してアセンブラとC言語をサポートする。便利な機能としては、MCF5208を強制的にBDMにするプローブ機能を持ったUSBハードウエアテストプログラムがあり、この機能を使ってハードウエアに問題がないかどうか確認できる。ここでCodeWarriorのBDMプローブ用サンプルプロジェクト「hello-world」を再ビルドし、評価ボードで実行してインストールした環境全体を検証するとよい。さらに開発を進めるには、CodeWarriorのインストールディレクトリ内のサンプルプログラムをテンプレートとして利用することができる。サンプルプログラムでは、ボード上の4つのLEDを制御するためのタイマーと汎用I/Oの使用方法が示されている。CodeWarriorのライセンスは、命令セットシミュレーション、RTOS(real time OS)サポート、米Abatron社製の高速JTAG/BDMインターフェースなどを追加するオプションが選択できる体系となっている。標準版の価格は2495米ドルで、5995米ドルのプロフェッショナル版のソフトウエアであればすべてのColdFireファミリをサポートすることができる。

 SBC ToolsボードサポートパッケージのCD-ROMを使うと、μClinux上でdBUGを使用するためのソフトウエア(Eclipseに対応)がインストールされる。これは、μClinuxカーネルを試してみたいと思っている開発者を支援するものである。Eclipse環境は、あらゆる分野向けに対応しており、専門分野に片寄らないオープンで拡張可能なIDEともいえ、完全なC/C++コンパイラおよびデバッガ、内容が充実したチュートリアル、Sambaファイリングシステムを共有し、IP(internet protocol)アドレスを設定するためのユーティリティなどが含まれている。しかし、TCP/IP(transfer control protocol/ IP)通信から始めて、Sambaファイル構造を完全に理解し、システムを動作させるのは困難な作業であった。イーサーネットの問題は解決するまでに何度かの実験を要する。またバージョン2.0.0のユーザーマニュアルには、「Sambaを動作させるには共有ディレクトリ名を『SBC Tools WS』にしなければならない」という誤った記述もあった。同環境は、必ずデフォルトの作業スペースディレクトリを使用するようになっており、作業スペースの変更設定は無視しているようだ(このため、SBC Tools WSディレクトリに配置したファイルはロードされない)。クイックスタートの指示に従って作業スペースを変更しようなどとは考えないことである。設定とダウンロードに成功しても、例えば、「can't get /etc/mtab~ lock filesmbmnt failed: 1(/etc/mtabが取得できません~ filesmbmntのロックに失敗しました)」などといったどうしても理解できないエラーメッセージが表示される。

 筆者は、Intec Automation社のプログラマであるMike Lavender氏の協力を得て、シリアルI/Oのサンプルプログラムを実行することができた。ここまで来れば、Eclipse環境が提供する機能を容易に使うことができる(図1)。例えば、通常はCygwin Windows/ LinuxインターフェースがなければWindowsでは動作しないGCC(GNU Cコンパイラ)とGDB(GNUデバッガ)が、ここでは密接に統合されている。GDBServer実装では、GDBをホストコンピュータ上で実行し、ファストイーサーネットポートを介して通信を行う。実行可能ファイルにはファイル名の拡張子が付加されておらず、Lavender氏によると、「この形式によって、コード中で静的アドレスに直接リンクする場合と異なり、プログラムをRAMのどこに配置しても実行することができる。これにより、OSはプログラムを実行することができ、さらには同じプログラムの複数のオブジェクトを実行することも可能」とのことである。

 μClinuxに関心がある読者は、www. uclinux.orgを参照すれば、ColdFireなどμClinuxがサポートする多くのプラットフォームの最新情報が得られる。米Analog Devices社のプロセッサ「Blackfin」を使ったStampボードを利用する*3)など、メモリー管理ユニットを持たないマイクロコントローラをターゲットとするμClinuxプロジェクトには完成度の高いものがいくつか存在する。EDN Europe誌が2006年2月号で紹介したFreescale社独自のARM9コアから派生したプロセッサ「i.MXL LiteKit」も忘れてはならない。このマルチメディアを重視したキットは、完全なLinuxシステムへの入り口となる「Microcross GX-Linux」のスムーズな導入を支援する。

図1 MCF5208の開発環境 図1 MCF5208の開発環境 Eclipse環境上で、M5208EVBを用いた迅速なプログラム開発が可能となる。

脚注

※1…Marsh, David, "ARM targets automotive and industrial dominance," EDN Europe, December 2005, p.24.

※2…Marsh, David, "Low-cost ARM kits ease 32-bit migration," EDN Europe, February 2006, p.21.

※3…Marsh, David, "Embedded Linux steals design wins," EDN Europe, June 2005, p.20.


       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.