ネットワーク経由で組み込みソフトのバグを修正する ――後からモジュールを追加できるITRON仕様OSの開発

原田雅章

tag: 組み込み

技術解説 2003年7月28日

●カーネルにはオブジェクトの動的生成機能などを追加

 次に,本開発で拡張したカーネル機能とコンフィグレータ機能の詳細を説明します.

1)カーネル機能

 ローダ機能はカーネル内部のクリティカルなセクションに実装するのではなく,カーネルの外部に実装するものとしました.ベースとしたOSはμITRON4.0仕様のスタンダード・プロファイルに準拠しており,カーネル資源の生成は静的に行います.しかし,今回のローダ機能実装モデルでは,μITRON4.0とPX仕様のそれぞれの拡張プロファイルで定義されている資源(タスク,セマフォ,イベント・フラグなど)を動的に生成・削除する機能がカーネルに必要となります.

 一般に,資源を動的に生成・削除する機能をカーネル内部に実装すると,カーネルの処理オーバヘッドが増加します.本開発では,後述するようにローダ機能が資源の動的生成・削除を行うことを念頭に置いて,極力オーバヘッドを抑える実装としました.

 動的に資源を生成するサービス・コールには,カーネル資源を生成するためにメモリ領域(タスクのスタック領域,固定長メモリ・プール領域)を要求するものがあります.このメモリ領域を動的に生成する方法として,mallocのようなヒープ領域管理をカーネル内部に実装し,要求が発生するたびに必要な領域をヒープ領域から取得する方法が挙げられます.この場合,可変長のメモリ管理をカーネルのクリティカル・セクションに実装しなくてはならず,スタンダード・プロファイルのみに適合することで最適化したIIMPの実装がむだになってしまいます.

 しかし本開発では,必要なメモリ領域を割り付けることができるリンク機能をサーバ側に実装しています.そこで,メモリ領域の動的な生成については,モジュールのビルド時にサーバ側で割り当てるようにしました.

 また,従来のITRON仕様(PX仕様)には規定されていなかった「保護ドメインを動的に生成・削除するサービス・コール(vcre_dom/vdel_dom)」も実装しました.保護ドメインを動的に生成する機能がPX仕様に含まれていないのは,動的な生成を認めた場合,合わせて「保護ドメインを動的に削除する機能」も実装する必要があるからです.保護ドメインを動的に削除する場合の仕様を考えたとき,削除しようとしたドメインに所属するカーネル資源が残っていた場合のカーネルの動作を決めかねたのです(コラム「保護ドメインを動的に削除する場合の仕様検討」を参照).

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

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

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日