ネットワーク経由で組み込みソフトのバグを修正する ――後からモジュールを追加できるITRON仕様OSの開発
●ロード・モジュールはコンフィグレータで作成する
ベース・モジュールはシステムの基幹機能(カーネルとローダ)を1リンクし,工場出荷時に不揮発性メモリに書き込むものです.ベース・モジュールの作成方法は従来のITRON仕様のシステム構築と同じ方法で可能だと考えました.一方,動的に装着されるロード・モジュールの作成については,現在のITRON仕様では方法が確立されていません.ITRONを利用するソフトウェア開発者に,どのようにロード・モジュールを作成してもらうかの検討が必要でした.
従来のITRON仕様(バージョン4.0)においては,開発者がシステム構成を設定する方法としてシステム・コンフィグレーション・ファイル(システム構成定義ファイル)の作成を想定しています.システム・コンフィグレーション・ファイルには,ITRON仕様で標準化されている静的APIを使ってタスクや使用するセマフォなどの構成情報を記述します.そして,ITRON仕様OSベンダが提供するツール(システム・コンフィグレータ)を使い,システム・コンフィグレーション・ファイルに基づいて,カーネルに対して資源を生成するための情報(kernel_cfg.c)を生成します.
ここで,ロード・モジュールの構成定義を,従来のシステム・コンフィグレーション・ファイルによる生成方法と同じような方法で行うことを検討しました.つまり,従来のITRON仕様と同じ静的API書式(リスト1)で,モジュールの構成情報をファイル(モジュール・コンフィグレーション・ファイル)に記述することを考えたのです.また,モジュール・コンフィグレーション・ファイルを解釈し,ロード・モジュールが必要としている資源の生成情報(module_cfg.c)を機器のローダ機能部分に出力するツール(モジュール・コンフィグレータ)を開発しました.
システム・コンフィグレーション情報はカーネル自身に出力されるのに対し,モジュール・コンフィグレーション情報はローダ機能部分に出力されます.ローダ機能はロード・モジュールを活性化する際にこの構成情報を参照し,ITRON仕様OSの動的サービス・コールを呼び出すことでカーネル資源を生成します.
〔リスト1〕モジュール・コンフィグレーションの記述例(タスクの生成)
ロード・モジュールのタスクを生成するμITRON/PX仕様の静的APIの一例.この記述方法は,システム・コンフィグレーション・ファイルの記述方法とまったく同じ書式である.