現在開発している組み込み系システムのシミュレートをVCで行いたいと考えています。
組み込み系のシステムは簡単に言うと、
普段はメインループでくるくる回っており、1ms毎にタイマ割り込みが発生し、変数の値を書き換え、メインループではその変数の変化によって何か処理を実行するというものです。
このようなシステムをVCでできるだけ同じようにシミュレートするため、マルチスレッドを用いようと考えているのですが、以下の性質を実現することは可能でしょうか?
・メインスレッド実行中はタイマ割り込みスレッドは割り込み可能。
・タイマ割り込みスレッド実行中はメインスレッドは割り込んでこない。
・メインスレッドで特定の区間タイマ割り込みスレッドの割り込みを禁止できる。
・高速シミュレートを行いたいため、割り込みの禁止などはできるだけ低負荷で行いたい。(ミリ秒単位だとNG)
・複数の割り込みスレッドがある場合、各スレッドごとに割り込みレベルを設け、このレベル以下を割り込み禁止など行いたい。
スレッド以外の実現方法などあればそちらもご教授願いたいです。
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
最近の組み込み系は、不案内なんですが、
割り込みコントローラは使用しないのですか。
割り込み判定が、タイマーだけみたいですが、
これでは、応答速度に、問題があるのでは。
シミューレートだから使用できないとうことかも知れませんが。
だとすると、その組み込みシステム用に、
きちんとしたシミューレータを作成する必要があるのでは。
回答ありがとうございます。
できればどのパソコン上でも動かせるシミュレータが作りたかったので、割り込みコントローラの使用などは考えていませんでした。
No.1
- 回答日時:
思いつくまま書いてみますので、検討してみてください。
マルチメディアタイマーを使うと比較的安定した間隔で、別スレッドからコールバック関数がコールされます。
これがタイマー割り込みハンドラに該当する。
ハンドラの入り口で、自身より下位のスレッドをサスペンドし、出口でレジュームする。割り込みのシミュレートね。割り込みを2本以上作るなら、タイミング問題が出るので、スレッドの操作をクリティカルセクションで排他したほうがよい。
メインスレッドで排他したい箇所には、排他用のクリティカルセクションをかける。ハンドラ側はスレッド操作の内側にクリティカルセクションをかける。
回答ありがとうございます。
割り込みスレッド実行時にメインループスレッドに対してサスペンド処理を行ったところ、私のやり方では25msくらいの時間がかかりました。これでは1msタイマなどのシミュレートには使用できませんでした。やり方が悪いのかwindowsではこれが限界なのかわかりませんが、いろいろ試してみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 教育ソフト・学習ソフト vbsで分割した値をそれぞれの変数に 1 2022/10/17 19:52
- Visual Basic(VBA) 1つの入力フォルダの値を読み込み、3分割をして新しい変数に代入する方法を教えていただきたいです。 読 4 2022/10/17 20:52
- 格安スマホ・SIMフリースマホ uqモバイル使用の方、割引の仕組みに詳しい方、教えてください・・ 2 2023/04/24 15:04
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- 郵便・宅配 クロネコヤマトについて、持ち込み発送を簡単に済ませるには?(集荷と比べて面倒) 3 2023/02/08 23:58
- FTTH・光回線 ソフトバンク光2年縛り IP電話番号 同番移行出来ない? 光回線変更は面倒で難しいですか? 1 2023/01/08 21:54
- 簿記検定・漢字検定・秘書検定 日商簿記2級の商業簿記の新株発行(増資)について質問です。 今、日商簿記2級の受けようと独学で宅建勉 1 2022/07/30 09:45
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- YouTube YTで再生回数が累計何回以上となると、ミッドロール広告が割り込んで来るか? 1 2023/07/08 15:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Amazonfireタブレットにわから...
-
ショッピング
-
PICで既定の時間数ループを...
-
pic 複数の割り込み関数 切り分...
-
プリントスクリーンの自動化
-
スーパーのレジで並んでいたら...
-
H8/36037 CCRの設定方法
-
音声ファイル再生時のフリーズ
-
CPUの処理量を減らすコーデ...
-
PICで内部タイマーを使わずカウ...
-
VB6でSendKeyを利用したTab移動...
-
【組込み】割り込み中のstatic...
-
電車で待機列の割り込みについ...
-
電車のドアの前での並び方
-
割り込みについて
-
【H8-3052F】タイマ割り込み
-
C-Builder OnChangeをマスク
-
dsPIC初心者からの質問です.
-
アプリケーションをフルスクリ...
-
マイコン C言語 割り込み処理...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
インバウンドで迷惑している人...
-
pic 複数の割り込み関数 切り分...
-
スーパーのレジで並んでいたら...
-
ショッピング
-
Excelでタイマーの一時停止する...
-
電車で待機列の割り込みについ...
-
【組込み】割り込み中のstatic...
-
C言語でPICマイコン開発
-
CPUの処理量を減らすコーデ...
-
Amazonfireタブレットにわから...
-
マイコン C言語 割り込み処理...
-
USB機器からのデータ受信による...
-
一定時間操作がなかったら、と...
-
VB.net 割り込みの禁止
-
ウォッチドッグタイマ(WDT)の...
-
電車乗車時、並んでいるのに割...
-
USJでの割り込み
-
VB6でSendKeyを利用したTab移動...
-
PICでのプログラムによるチャタ...
-
H8マイコンで割り込みが任意の...
おすすめ情報