モジュール方式のプログラミング
優れたソフトウェア設計においてモジュール方式プログラミングが大きな役割を果たすということは広く知られています。単体構造にするのではなく、複数の小型モジュールを集めてコードを構成すると、アプリケーションコードを論理的な構造に体系化できます。これによりコードがわかりやすくなるうえ、次のような効果があります:
プログラム開発の効率化
モジュールの再利用
保守の容易さ
IARの開発ツールでは、ソフトウェアをモジュール構造にするためのさまざまな機能をご用意しています。
通常、アセンブラソースファイルでアセンブラコードを記述します。各ファイルは、モジュールと呼ばれます。ソースコードをいくつかの小さいソースファイルに分割する場合、たくさんの小さいモジュールを使用することになります。各モジュールを異なるサブルーチンに分割できます。
セクションとは、メモリ内の物理位置にマッピングされるデータやコードを含む論理エンティティです。セクションにコードとデータを配置するには、セクション制御ディレクティブを使用します。セクションは再配置可能です。再配置可能セクションのアドレスは、リンク時に解決されます。セクションにより、コードやデータをメモリ内でどのように配置するか制御できます。セクションとは、リンク可能な最小ユニットです。これにより、参照されるユニットだけをリンカで組み込むことができます。
大規模なプロジェクトに取り組んでいると、さまざまなアプリケーションで使用される複数の便利なルーチンがすぐに蓄積されます。小さなオブジェクトファイルが大量に蓄積されるのを回避するためには、このようなルーチンが含まれるモジュールをライブラリオブジェクトに集めます。ライブラリのモジュールは、常に条件付きでリンクされることに注意してください。IAR Embedded Workbench IDEでは、1つのライブラリに多くのオブジェクトファイルを集めるためにライブラリプロジェクトを設定できます。この例については、インフォメーションセンタのチュートリアルを参照してください。
まとめると、ソフトウェアの設計にはモジュール方式のプログラミングが役に立ちます。また、モジュール構造は以下の方法で作成できます。
ソースファイルごとに1つずつ、大量の小さなモジュールを作成する。
各モジュールで、アセンブラソースコードを小さなサブルーチンに分割する(Cレベルでの関数に相当)
アセンブラソースコードをセクションに分割し、最終的にメモリ内でコードやデータをどのように配置するか正確に制御できるようにする
ルーチンをライブラリに集める。つまり、オブジェクトファイルの数を減らし、モジュールが条件付きでリンクされるようにする。