(toppers-users 1398) Re: TTOC-031104-01/timer_handler

ktakahashi @ vesta.ocn.ne.jp ktakahashi @ vesta.ocn.ne.jp
2004年 3月 11日 (木) 11:02:32 JST


Minoru Takahashi <takahasi @ trigate.co.jp>さん:

アライブビジョンソフトウエアの高橋と申します。
TOPPERSを使ったアプリケーション開発をしております。

> <要約> timer_handlerは「ターゲット依存部」または「非ターゲット依
> 存部」の
>             どちらに分類されるのでしょうか?

「ターゲット非依存部」ですね。


> <背景> timer_handler内で呼び出される_syscall(isig_tim())では、呼
> び出された
>             コンテキストを調べ、それがタスクコンテキスト以外(割
> り込みコンテキ
>             スト)でなければ、エラーとなります。
>             この判定は、「ターゲット依存部」が提供する sense_
> context により
>             行われます。

#ソースを参照されているのですね。エラーチェックを
#しているということですね。


> 
>             このため、timer_handler の出入口にて、実行コンテキス
> トの切り替え
>             を行う必要があるものと理解します。

アプリケーションプログラムの中でとして、タスクコンテキストでなにか
実行したい場合は、
TOPPERSのハンドラーに手を加えるのではなく、周期ハンドラというもの
を使い、周期ハンドラから呼び出される非タスクコンテキストから
さらに、ixxxx_xxx()を使ってタスクを起こしてやるということが必要
になります。
詳しくは、インターフェーズ増刊Tech i Vol.17 「リアルタイムOS
と組込み技術の基礎」の第5章、さらに周期ハンドラについては
5.8周期ハンドラ を参照いただければご理解いただけると思います。
#ほかにもあるかもしれませんが、私の知る限り...

> 
>             もしも、timer_handlerが「ターゲット非依存部」に分類さ
> れていた場合、
>             既に用意されているtimer_handlerに手を加えることは、基
> 本的に避け
>             た方がよいと思われます。
そうですね、
触る必要はないと思います。カーネルに改造を加えてなにかしようという
ならそれはわかりませんが...。


> 
>             上記の点につきまして、適切なご助言を頂けると幸いです。
> <備考> 既存に用意されているtimer_handler(systaskフォルダ内)
>              void
>              timer_handler()
>              {
>           hw_timer_int_clear();       /* タイマ割込み要求のクリ
> ア */
>           _syscall(isig_tim());       /* タイムティックの供給 *
> /

** Cut quoted 5 lines by the mail filter. **

---
アライブビジョンソフトウエア株式会社
高橋和浩
650-0045 神戸市中央区港島9-1
神戸インキュベーションオフィス117号室
Email:ktakahashi @ vesta.ocn.ne.jp
http://homepage3.nifty.com/ALVS/
TEL: 078-306-0336
FAX: 078-306-0365
TOPPERS/JSP(トロンOS)のHP(適用事例)に掲載されました。
http://www.toppers.jp/applications.html