トロン系のOSは現在実行状態のタスクのIDを取得するサービス(get_tid )がありますが、現在実行しているコンテキストはタスクコンテキストかそれとも非タスクコンテキストか分かるようなサービスがありますか
大聖さん、こんにちは。NoMaYと申します。sns_ctxというAPIで可能ではないですか?例えば、別スレッドの話題ですがNORTiでは以下の通りでしたよ。μITRON仕様準拠リアルタイムOS NORTi Version 4 カーネル編 ユーザーズガイドwww.mispo.co.jp/document/no4guid.pdf画面コピー(2枚)
NoMaYさん、こんにちは。大聖です。ご回答していただいて、ありがとうございました。
またCPU例外発生する直前、実行しているコンテキストはタスクコンテキストかそれとも非タスクコンテキストか分かるような方法がありますか
大聖さん、こんにちは。NoMaYです。お使いのRTOSは具体的に何でしょうか?また、そのRTOSのドキュメントのURLも知りたいです。ドキュメントをひとりで読んでいただけでは見落としてしまったかも知れない箇所を、いわゆるダブルチェックしてみてはどうだろうかなぁ、ということなのですけれど。
NoMaYさん、こんにちは。大聖です。使用のRTOSはT-Kernel Ver1.00.00です。
大聖さん、こんにちは。NoMaYです。これですか?これのドキュメントのURLはどこでしょうか?ソースコードダウンロード - T-Kernel 1.0www.tron.org/download/index.php?route=product/category&path=20サポートCPU一覧 - T-Kernelとは?www.tron.org/ja/tron-project/what-is-t-kernel/hwinfo「T-Kernel、T-Kernel Standard ExtensionがサポートするCPU」
NoMaYさん、こんにちは。大聖です。そうです。ありがとうございました。
大聖さん、こんにちは。NoMaYです。T-Kernel 2.0のドキュメントのURLは見つかりましたけれど、、、T-Kernel 2.0仕様書www.tron.org/wp-content/themes/dp-magjam/pdf/t-kernel_2.0/html_ja/TEF020-S001-02.00.03_ja.html
NoMaYさん、こんにちは。大聖です。確かに現在手元にT-Kernel 2.0仕様書しか持っていません。それを調べても、CPU例外発生する直前に実行しているコンテキストはタスクコンテキストかそれとも非タスクコンテキストか分かるような方法を見付かりませんでした。
大聖さん、こんにちは。NoMaYです。> CPU例外発生する直前に実行しているコンテキストはタスクコンテキストかそれとも非タスクコンテキストか分かるような方法を見付かりませんでした。以下のページを読んでみましたが、その情報を得るシステムコールは無いようですね。ところで、なぜ、それを知りたいのですか?多重割り込みが起きて、割り込みがネストしている状態かどうか、それを知りたい、ということだと思うのですが、なぜ、それを知りたいのですか?割込み管理機能www.tron.org/wp-content/themes/dp-magjam/pdf/t-kernel_2.0/html_ja/interrupt_management_functions_os.htmltk_ref_sys - システム状態参照www.tron.org/wp-content/themes/dp-magjam/pdf/t-kernel_2.0/html_ja/system_management_functions.html#tk_ref_sys
NoMaYさん、こんにちは。大聖です。
OSに絡む組込みシステムのソフトバグについて、開発者を一番悩ませるのはユーザーのところでシステムハングアップを起こし、且つ再現しにくいようなバグです。通常、致命的なバグはよくCPU例外を引き起こしますので、CPU例外処理でそのバグの発生した関数を自動特定するアルゴリズムを考えて、こちらでOS:T-kernel、CPU:SH7619の環境で検証して、バグ発生時の自動特定した結果をFLASHに書き込んで、システムを再起動してから、FLASHに書き込んだデータを読み出して、正確に特定できたことが確認できました。今そのアルゴリズムをよく考えるともし CPU例外発生する直前に実行しているコンテキストはタスクコンテキストかそれとも非タスクコンテキストかが分かったら、その特定処理アルゴリズムがもっと簡単にできると思います。