組み込みソフトウェアの開発手順を理解する ―― C言語でマイコンを制御するために不可欠

山際 伸一

ここでは,組み込みシステムで用いられるソフトウェアの開発環境についての基礎を説明します.また,C言語による開発のターゲットとなるマイコンの場合を具体的に説明します.(編集部)

 組み込み機器のマイコンを動作させるためのソフトウェアは,組み込みソフトウェアと呼ばれています.組み込みソフトウェアの開発の方法には,特徴的な点があります.

 パソコンで動作するソフトウェアは,パソコンで開発されるのが一般的です.開発に使用しているパソコン上で,動作も確認できます.また,一つの開発ツールで,さまざま用途のソフトウェアを開発できます.

 これに対し,組み込みシステムのハードウェアでは,ほとんどの場合,開発ツールを動作させることはできません.開発にはパソコンを利用できますが,開発されたソフトウェアは,パソコンから設計対象となる機器に転送しなければ実行できません.設計対象のハードウェアは,開発のたびに異なるのが普通です.ターゲット・プロセッサも異なることがあります.このため,組み込みソフトウェアの開発では,ターゲット・プロセッサごとに最適な開発ツールを用意する必要があります.

 

1. C言語による組み込みソフトウェア開発の流れ

 組み込み機器の開発において,ソース・コードの記述からマイコンで動作する実行形式が作成され,製品が完成するまでの流れを図1に示します.



図1 組み込みソフトウェアの開発の流れ

ソース・コードが実行形式が作成され,実行形式を組み込んだ製品が完成するまでの流れを示している.

● ソース・コードの用意

 ソース・コードには,製品の目的となる動作を記述したアセンブリ・コードや,高級言語コード(C言語など)が含まれます.

 図1の①ではアセンブリ言語で記述されているソース・コードとC言語で記述されているコードが用意されています.一般的に,テキスト・エディタで記述されたものがソース・コードと呼ばれ,最初に用意されます.

● コンパイルとアセンブル

 アセンブリ言語で書かれたソース・コードはアセンブラへ,高級言語で書かれたコードはコンパイラへ渡され,ターゲット・プロセッサのみが理解可能なバイナリ・データへと変換されます(図1の②).このバイナリ・データを保持するファイルのことを,ソフトウェア開発の世界ではオブジェクト・ファイルと呼びます.

 オブジェクト・ファイルは,決められたフォーマットに従って作成されます.このファイル・フォーマットは,コンパイラやアセンブラによって異なります.

● リンク

 オブジェクト・ファイルには,具体的なアドレス情報がありません.例えば,ターゲット・プロセッサが起動時に最初に実行しなければいけないコードが,どのアドレス(番地)に配置されるべきかは,定義されていません.分岐命令の分岐先アドレスも決定されておらず,未完成な命令として格納されています.

 リンクでは,具体的なメモリ配置情報,つまりアドレス情報を付加し,分岐命令の実行コードを完成させます.そして完全な形の命令列とデータ列としてファイルに保存します(図1の③).このアドレス配置情報が記述された指示ファイルを,リンカ・スクリプトと呼びます.

● デバッグ

 リンカで作成された実行形式は,ターゲット・プロセッサで動作を確認できます.

 動作確認では,デバッガを使います(図1の④).実行形式中のアドレス情報を使ってマイコンのメモリにダウンロードします.最初に実行するアドレスや,データの初期値などを設定します.ターゲット・プロセッサに実行を指示すると,ターゲット・プロセッサで動作を確認できます(図1の⑤).

● 実行形式の変換

 実行形式のファイルをターゲット・システムに搭載する際には,ROM化が必要です.この際,実行形式のファイル中にある命令コードやデータを,指定されたアドレスへと配置し直す必要があります(図1の⑥).

 最後にROMライタなどのツールを使ってROMに書き込み,製品に搭載します(図1の⑦).

 なお,フラッシュ・メモリを搭載するマイコンの場合は,デバッガから直接書き込めるので,この工程は必要ありません.

組み込みキャッチアップ
お知らせ 一覧を見る

《半導体ネット もうすぐ1周年記念》,「HDL文法ガイド」を抽選で100名様にプレゼント!

4/24(土),東京・秋葉原にて電子&工作系イベント「エレキジャック・フォーラム」開催.電子工作教室やトーク・ショーの詳細を発表!

《読者の広場》皆さまから寄せられた「ひと口コメント」 Part6 ―― あなたがお薦めのiPhoneアプリの名前は?

PICK UP用語

USB

関連記事

volatile

関連記事

Verilog HDL

関連記事

ニュース

Rohde & Schwarz,測定周波数が3GHzながら80.9万円と安いスペクトラム・アナライザを発売

Agilent,CANやLIN,I2Cなどのシリアル通信の解析を得意とするオシロスコープを発売

Actel,Cortex-M3プロセッサをハード・マクロで搭載するFPGAを発売

ヒューマンデータ,Virtex-5を搭載するFPGAボードを発売

グレープシステム,組み込み用の暗号エンジンを発売

組み込みブログ

組み込み場外乱闘

移転のお知らせ

2009年5月29日

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

【ETロボコン】 北関東説明会を実施。ついに新潟に上陸!!

2010年3月15日

Hamana Project

実行委員会ペイロード

2009年9月27日