« MTPaginateプラグインを導入 | メイン | 2006年11月18日~19日の日記 »

2006年11月24日

ITRONプログラミング入門を読んで

ITRON関連の本(借り物)を半分ほど読了しました。後半はサンプルプログラムの説明や、実践的なテクニックの紹介なので、まだ読まずにおいています。

ITRONプログラミング入門
ITRONプログラミング入門(Amazon)

以下に、自分なりに理解した内容をまとめてみました。あくまで、うち自身の備忘録として書いたものですので、まったく適切な概要ではないことを、ご承知おきください。

ITRONをベースとした、カーネル一般についての話

  • 基本的な仕組みとして、入力を与えられて、それを処理して、出力を返すもの
  • カーネルの管理する資源としてオブジェクトがある
  • オブジェクトには、処理を実行するタスクや、それの同期制御をするためのイベントフラグ、セマフォなどがある
  • 処理の流れは、タスク部と非タスク部がある。非タスク部は、割り込み処理によるものである

割り込みの仕組み

  • 割り込みが発生すると、CPUに通知される。
  • CPUは割り込みベクタを参照して、割り込みハンドラの書かれた所定のアドレスを呼び出す
  • 割り込みハンドラ内で、割り込み原因を分析し、各ルーチンを呼び出すか、割り込みハンドラ内で直接処理をするか、各々方式がある
  • 割り込み処理中は、使えるサービスコールに制限がかかる

割り込みとカーネルとタスクの関係

  • 各タスクの処理はカーネルによって開始や終了が管理される
  • 一方割り込みはカーネルの都合関係なしに発生してくる
  • 処理の上下関係?としては、割込み>カーネル>タスク、といった感じ

カーネルの4つの機能

  • サービスコール
  • スケジューリング
  • ディスパッチ
  • 割り込み制御処理

その他、気になったところをメモ

  • タイマハンドラにおける位相時間とは、毎周期の呼び出し点と、起動時点の差のこと
  • CPUロック状態、ディスパッチ禁止状態などにより、タスクの優先度や割り込みへの制御ができる
  • 各オブジェクトは、実行要求をレディキューで待たせることができる
  • ディスパッチ時にはコンテキストを保存する
  • ランデブ機能は、2つのタスクで事象の待ち合わせを行なうもの

投稿者 bokupi : 2006年11月24日 18:08

トラックバック

このエントリーのトラックバックURL:
http://omoshiro-joho.com/c-i-mnet/cgi-bin/mt/mt-tb.cgi/1218

コメント

コメントしてください




保存しますか?