統合開発ツールで"ラクラク"マイコン開発 <ARM編> ―― コードを自動生成させればすぐに動作する

山際 伸一

ここではマイコンの統合開発環境を使ってマイコン基板を動作させるまでの一連の流れを説明します.初めて使うマイコンでは,マイコン基板を動作させるまでが一苦労です.ソース・コードの自動生成機能を活用すれば,あっという間に動作させることができます.(編集部)

 最近のマイコンは,処理性能が向上するだけでなく,機能も豊富になっています.例えば図1のように,プロセッサ・コアの周りにたくさんの周辺機能が配置されています.しかも型番ごとに異なる周辺機能の組み合わせがあります.同じ機能であっても,メーカやファミリごとに異なる制御が求められることもあります.さらに,マイコンの性能に合わせてどんどん複雑化しています.



図1 マイコンのプロセッサ・コアと周辺機能
プロセッサ・コアの周りにたくさんの周辺機能が配置されている.


 組み込み技術者は,ハードウェアとソフトウェアの両方に精通していなければなりません.マイコンのアーキテクチャを理解して回路を設計し,起動方法から細かな周辺機能制御方法までを熟知した上でソフトウェアを組んでいく必要があります.核心となる処理をプログラムするまでの間に,マイコンのハードウェアを制御するための完ぺきなコードを用意しなければなりません.時にはハードウェアの都合で,規定された時間に従って制御を行うコードを記述しなければいけないこともあります.

 技術者は,開発のためのスキルを高めていくことが当然必要ですが,そのための時間やコストは限られています.特に昨今の景気の後退によって,スキルアップのための教育に予算を割けなくなっている現実もあります.このような状況下では,すでに技術者の持つ知識をより効果的に引き出すための道具(ツール)を活用するのが得策です.

 ここでは,本来は手間のかかる開発初期工程を,開発ツールを活用して短縮する方法を具体的に説明します.

1.開発で何が大変なのかを考えてみる

 マイコンで動作させるソフトウェアの開発(以降,「マイコン開発」と呼ぶ)に当たり,技術者が何をしなければならないのか考えてみましょう.

 機器の開発において技術者は,常に回路図を引いたり,マイコンのソフトウェアをコーディングしたりしているわけではありません.所望の機能を実現させる方式を考えるために文献を調べたり,具体的な実現方法を考えるためにも多くの時間を使っていたりするものです.そのような作業も含めた開発工程を図2に示します.





図2 マイコン開発の手順

ソース・コードの記述を始めるまでに館がるべき事項を重点的に示している.


 ここでは,マイコン開発に注目して,何に労力を費やしているかを説明します.やや話が長くなりますが,ツール活用の効果を感じるためには,必要な知識です.早くツールを試してみたい方は,本稿後半の「ツール活用による効率の向上を体験」を先に読んで体験してから戻ってきていただいても構いません.

●マイコンの仕様を知る

 まったく使ったことのないマイコンで何かを開発することになった場合を想定してください.誰でも,そのマイコンがどのような仕様か知ろうとするはずです.従って,最初のステップは「マイコンを知る」という作業になります.

 マイコンを知るには,データシートやユーザーズ・マニュアルといった技術資料を読むことから始まります.

(1)データシートからハードの特徴を知る
 データシートでは,マイコンの内部構造や電気的な仕様が分かります.

● プロセッサ・コアと周辺機能
 プロセッサから周辺機能を制御するにはどのような手段を使えばよいかを確認します.例えば,メモリの読み書きと同じ処理を行えばよいものや,特殊な命令を必要とするものがあります.

●クロック周波数とクロック制御法
 例えば,UARTの通信速度の設定では,外部入力クロックを分周して用いることがよくあります.その際に,クロック入力がどのピンで,信号がどのようにプロセッサ・コアや周辺機能に分配されているのかを確認しておく必要があります.

●I/Oピンと機能との関係
 マイコンに内蔵されている機能は,マイコンのI/Oピンを使って電気的に外部とやりとりを行います.例えば,UART機能であれば,送信と受信のピンが配置されているはずです.

 周辺機能を1チップに集積しているマイコンでは,I/Oピンの配置はあらかじめ決められています.また,一つのI/Oピンが複数の用途に割り当てられていて,どれか一つを選択しなければならないことがあるので,使い方をよく検討する必要があります.

●メモリの構成
 最近のほとんどのマイコンにはメモリが内蔵されています.プロセッサ・コアは命令の実行やデータ処理のために,このメモリを読み書きします.そこで,どのアドレスをどのようにアクセスすることで所望の情報に到達できるのかを確認する必要があります.

(2)ユーザーズ・マニュアルでソフトの特徴を知る
 データシートから得られた情報を元に,ソフトウェアで制御するにはどうしたらよいかをユーザーズ・マニュアルで調べます.

 ユーザーズ・マニュアルには大きく分けて二つの種類があります.

 一つは,マイコンのプロセッサ・コアを説明したものです.プロセッサ・アーキテクチャに関連する事柄を調べるときに使います.例えば,ARMマイコンの場合,ARMプロセッサという標準のアーキテクチャを解説しているマニュアルがこれに当たります.

 もう一つはマイコンの型名またはサブファミリごとの情報がまとめられているものです.周辺機能の使い方などについて,データシートより詳細な説明があります.しかしピン番号といったハードウェア仕様の細かな部分は書かれていません.

 ユーザーズ・マニュアルからは,以下の事柄を調べます.

●プロセッサ・コアのアーキテクチャ
 マイコンは,プロセッサ・コアと周辺機能でできています.従って,プロセッサ・コアは共通で,周辺機能だけ異なる製品があります.

 このようなマイコンを使う場合,プロセッサ・コアの知識を有効に再利用できます.例えば,レジスタの数や使い分け,特殊レジスタの有無,命令セットの概要を調べます.命令セットに関しては,筆者がよく調べる事柄としては,32ビットの即値を作る方法とロード・ストア命令のニーモニック,そして,マイコン・コアの特殊な命令のニーモニックです.これらは周辺機能を制御するときに頻繁に用いるからです.

●起動方法
 マイコンに電源が投入されて動き始めたときに,どのような処理が始まるのかを調べます.

 マイコンは単純に0番地から起動するものもありますし,決まったアドレスから動作を始めるものもあります.さらには,特定のメモリ領域に書き込まれているアドレスから動作を始めるものもあります.

●割り込み処理
 ユーザーズ・マニュアルには,割り込み処理について多くの記述があります.それだけ,割り込みは重要であると同時に,制御が複雑です.プロセッサ・コアが異なると,割り込みの処理も異なるので注意が必要です.

●機能のための細かな仕様
 ユーザーズ・マニュアルには,データシートにはない,細かな周辺機能に関連するレジスタへのビット配置やその意味などが載せられています.アプリケーションで要求される機能モジュールを選び,どのように制御されるかを調べます.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日