- 1 名前:デフォルトの名無しさん [2005/09/06(火) 17:13:46 ]
- まったり逝きましょう。
ハード寄りの話も大歓迎です。 道具話も楽しくやれるならやってくらさい。 この世界は処理系依存はあたりまえだから、処理系明記するのを忘れないでね! 過去ログ 制御系なら俺に聞いてもいいぜ(7) pc8.2ch.net/test/read.cgi/tech/1109102528/ 制御系なら俺に聞いてもいいぜ(6) fun.kz/test/read.cgi/tech/1099574832/ (新タイプミラー) 制御系なら俺に聞いてもいいぜ(5) fun.kz/test/read.cgi/tech/1079102543/ (新タイプミラー) 制御系なら俺に聞いてもいいぞ(4) pc5.2ch.net/test/read.cgi/tech/1068869894/ (行方不明) 制御系なら俺に聞いてもいいぞ(3) pc2.2ch.net/tech/kako/1059/10594/1059488975.html 制御系なら俺に聞いてもいいぞ(2) pc2.2ch.net/tech/kako/1038/10380/1038094914.html 制御系なら、俺に聞け! pc3.2ch.net/tech/kako/1002/10021/1002176627.html 関連過去ログ ●●●くみこの組み込み相談室●●● pc3.2ch.net/tech/kako/988/988084737.html
- 285 名前:デフォルトの名無しさん mailto:sage [2006/01/20(金) 05:02:14 ]
- >>283 タスクと割り込みとでは共通の変数は極力持たないようにするのが一般的。
どうしても必要な場合は、タスク側が最小限の時間に限って割り込み禁止を使う。 典型的な例ね:受信文字カウンタnを、受信割込み処理で++、タスクが受信文字を取り出したら --する、なんて状況で、タスクがn--するときに割込みが起きたとする。 n--ってのはreg<--n, reg--, reg-->nという機械語になるが、この2つのカンマのところで 割り込むと、レジスタ保存、割込み処理でreg<--n, reg++, reg-->nして、割り込んだ所へ戻る。 その後3番目のreg-->nが実行されると、割り込みで++した結果が失われる。これを避ける為に タスク側は、割り込み禁止;n--;割込み許可;のように書く。この位なら待たせても割り込み 処理の遅れは許容できる。あまり長い処理を割り込み禁止で実行したりするのは顰蹙もの。 =割込み処理というのは、例えば9.6Kbpsの受信なら1mS以上遅れてはならないとかの 物理的制約があるのがふつうだから。
- 286 名前:デフォルトの名無しさん mailto:sage [2006/01/20(金) 08:31:04 ]
- 32bitCPUで64bitの共有変数をタスク側で読み込み中に割り込み、
割り込み側が++してたまたま下位32bitが0で上位32bitに繰り上がり。 タスク側の読み取り値が出鱈目になると。 BIGendianかLITTLEendianかで変わってくるが。
|

|