(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