• ベストアンサー

"OSIntEnter();"って関数とはどんな機能ですが?

今、H8S2368のために書かれたプログラムを見ているのですが、このプログラムによく"OSIntEnter();"という関数が出てくるのですが、これはどんな機能の関数なのでしょうか? このようなプログラムで使われていました。 __interrupt(vect=22) void INT_IRQ6(void) { OSIntEnter(); OSSemPost(CmxInt); OSIntExit(); }

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

MicroC/OS-II(μC/OS-IIとかuC/OS-IIと書かれる場合あり)というリアルタイムOSを使っているのではないでしょうか。そのマニュアルを見てください。割り込み関係の制御です。

techhouse
質問者

お礼

回答頂きありがとうございました。 MicroC/OS-II 確かに現在H8S2368というマイコンにこのOSを組み込んで、プログラムをやっています。ただ私あまり詳しくなく、たぶんそう思われます。 このMicroC/OS-IIの取説が無いかと思い、ググってみたところ、 http://www.scribd.com/doc/7046520/Ucos-II-Refman このサイトからダウンロードすることができました。 それで、uCOS-II-RefMan.pdfで”OSIntEnter();”を調べてみたところ、 1. This function must not be called by task-level code. 2. You can increment the interrupt-nesting counter (OSIntNesting) directly in your ISR to avoid the overhead of the function call/return. It’s safe to increment OSIntNesting in your ISR because interrupts are assumed to be disabled when OSIntNesting needs to be incremented. 3. You are allowed to nest interrupts up to 255 levels deep. このような機能があるというのyahoo翻訳で調べてなんとなくですが、理解することができました。

関連するQ&A