インテリジェントローダー

~京都マイクロコンピュータが提供する、次世代のローダー~

【第一回】こんなローダーが欲しかった!

SOLID開発プラットフォームの中の新兵器、それがインテリジェントローダーです。その名のとおり、「かしこく」それでいて縁の下の力持ち的なローダーが、組込みソフトウエアの開発スタイルを大きく変えようとしています。本書では3回にわたって、インテリジェントローダーを詳しく解説していきます。
第一回目は、「こんなローダーが欲しかった!」インテリジェントローダーとは何か、をご紹介します。
なお、第二回目は、SOLIDのAPIを使って具体的にロードする方法を、第三回目ではインテリジェントローダーの応用的な使い方や、動作の仕組みについてご紹介予定です。

(全三回分をまとめて読む→ pdf版はこちら

インテリジェントローダーが生まれたきっかけ

お客様の「困った」を何とかしたい

ソフトウエアの規模が大きくなると、複数メンバーによるチーム開発だけでなく、協力会社に委託をして共同開発するというスタイルが当たり前になっています。しかし、分散開発されたプログラムを実行・デバッグするには、一旦全てのソースコードを集結してビルド作業を行い、実行モジュールを生成する必要があります。
このような場面で、実際にソフトウエアを開発しているお客様から次のようなお困り事を聞くことが多くあります。
・ ビルド時間、ロード時間が長く、開発効率が悪い。何より、開発エンジニアの思考が中断されるのが困る。
・ 協力会社さんとの共同開発では、権利関係によってソースコードを開示できないケースがある。そのため、ビルド作業が大変複雑になっている。
・ Linuxのようなマルチスレッド機能を使いたいが、メモリ容量は節約したい。大容量メモリであるDDRは電源回路コストが高いので使いたくない。
京都マイクロコンピュータでは、このようなお客様の不便を解消するため、「Linuxにおける”ファイルからアプリケーションを実行する” という操作をリアルタイムOS向けアプリケーションで使うにはどうすればいか」を、お客様と共に考えてきました。
そのような背景の元で生まれたのがSOLID インテリジェントローダーです。

インテリジェントローダーの仕様

組込みソフトウエアにおける一般的なローダーは、開発環境でビルドされたプログラムをターゲット実機で実行するため、実メモリ上に実行モジュールを転送します。
SOLID インテリジェントローダーの大きな特徴としては、ソフトウエアを分割開発した場合に、分割されたアプリケーション単位で個別にビルドされた実行モジュールを、個別にロードする機能を持つ点です。
1) 分割開発されたアプリケーション単位で個別にビルドできる
2) 分割開発されたアプリケーションを個別にロードし、他のアプリケーションと結合して実行できる
3) 他のアプリケーションのソースコードが無くても、分割開発した当該アプリケーションのソースコードがあれば、プログラム全体のデバッグ操作ができる
4) 指定したアプリケーションのアンロードが可能
上記の仕様にすることにより、分散拠点で独立性の高い開発を進められるという大きなメリットがあるだけでなく、開発中のソフトウエアを部分的に更新する場合のビルドおよびロード時間を大幅に短縮する事もできます。