ソフトウエアの規模が大きくなると、複数メンバーによるチーム開発だけでなく、協力会社に委託をして共同開発するというスタイルが当たり前になっています。しかし、分散開発されたプログラムを実行・デバッグするには、一旦全てのソースコードを集結してビルド作業を行い、実行モジュールを生成する必要があります。
このような場面で、実際にソフトウエアを開発しているお客様から次のようなお困り事を聞くことが多くあります。
・ ビルド時間、ロード時間が長く、開発効率が悪い。何より、開発エンジニアの思考が中断されるのが困る。
・ 協力会社さんとの共同開発では、権利関係によってソースコードを開示できないケースがある。そのため、ビルド作業が大変複雑になっている。
・ Linuxのようなマルチスレッド機能を使いたいが、メモリ容量は節約したい。大容量メモリであるDDRは電源回路コストが高いので使いたくない。
京都マイクロコンピュータでは、このようなお客様の不便を解消するため、「Linuxにおける”ファイルからアプリケーションを実行する” という操作をリアルタイムOS向けアプリケーションで使うにはどうすればいか」を、お客様と共に考えてきました。
そのような背景の元で生まれたのがSOLID インテリジェントローダーです。
組込みソフトウエアにおける一般的なローダーは、開発環境でビルドされたプログラムをターゲット実機で実行するため、実メモリ上に実行モジュールを転送します。
SOLID インテリジェントローダーの大きな特徴としては、ソフトウエアを分割開発した場合に、分割されたアプリケーション単位で個別にビルドされた実行モジュールを、個別にロードする機能を持つ点です。
1) 分割開発されたアプリケーション単位で個別にビルドできる
2) 分割開発されたアプリケーションを個別にロードし、他のアプリケーションと結合して実行できる
3) 他のアプリケーションのソースコードが無くても、分割開発した当該アプリケーションのソースコードがあれば、プログラム全体のデバッグ操作ができる
4) 指定したアプリケーションのアンロードが可能
上記の仕様にすることにより、分散拠点で独立性の高い開発を進められるという大きなメリットがあるだけでなく、開発中のソフトウエアを部分的に更新する場合のビルドおよびロード時間を大幅に短縮する事もできます。