送信割込みの処理

182 views
Skip to first unread message

go.wug...@gmail.com

unread,
Sep 30, 2018, 5:03:29 AM9/30/18
to KOZOS友の会
本の12thステップでの処理について教えてください。
p468、送信割込み処理で送信処理終了する条件に下記があります。
if(!cons->id || !cons->send_len)

!cons->send_lenは送る文字が無いから終了するのは理解できますが、
if(!cons->idは何の為の条件でしょうか?
id が0で、送る文字がある状態でも送信終了する事になりますが、
文字列を送る途中で強制的に初期化してid を0にするとのことでしょうか?
そうだとしても、そのような強制的に初期化するコードは特に見つからなくて理解出来なくなりました。
よろしくお願いします。

queret...@gmail.com

unread,
Mar 13, 2019, 8:21:02 AM3/13/19
to KOZOS友の会
12thステップの例題プログラムに置いて、p468 の、cons->id には、コマンド・スレッドのスレッド・IDが格納されています。
(リスト12.18 の、send_use() から、リスト12.16 の、consdrv_command()が、呼ばれてリスト12.15 で、case CONSDRV_CMD_USE で、id が設定される。)
ですので、cons->id が、p468 のチェックで 0 であることはないはずです。このチェックがあるのは、デバッグのため、または後の拡張性のためだったと思います。

"[質問] 12th ステップ command.c のsend_use() と send_write() の char* p について"のスレッド(12/10/13) も参考になると思います。

[質問] 12thステップ command.c の send_use() と send_write() の char* pについて

呉光日

unread,
Mar 17, 2019, 9:49:57 PM3/17/19
to kozos_t...@googlegroups.com
ご説明ありがとうございます!
機能と言うよりは、デバッグや拡張性などの考慮からでしたね。


2019/03/13 21:21、queret...@gmail.comのメール:

--
このメールは Google グループのグループ「KOZOS友の会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには kozos_tomonok...@googlegroups.com にメールを送信してください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。
Reply all
Reply to author
Forward
0 new messages