(toppers-users 2820) Re: AKIH8-3069FでTCP/IPとシリアルを使ったタスクの不具合
山田健二
kenji.yamada00 @ gmail.com
2008年 10月 20日 (月) 09:06:34 JST
おはようございます。福岡の山田です。
止まっていると思われます タスク B の挙動を見るために、
実験を行いましたので結果をご報告させていただきます。
(実験1)
不具合が発生するプログラムにて、タスク B を固定コマンドの送信のみを
行うように修正し、実行しました。
タスク B ()
{
while( 1 )
{
装置 A への固定コマンド送信
}
}
結果:1時間の間、装置Aへデータを送信し続けていました。
(途中で終了させました)
(実験2)
実験1に、装置Aからの応答受信処理を追加し実行しました。
タスク B ()
{
while( 1 )
{
装置 A へのコマンド送信
装置 A からの応答受信
}
}
結果:止まる(コマンドの送信が行われなくなる)現象が発生しました。
※実験2で現象が発生した時の装置Aからの応答は正常に
行われていました。
どうやらシリアル受信処理が入ると、タスクBが止まるようです。
また何かありましたら、ご報告させていただきます。
山田
> タスクの関係は次の通りです。
>
>
> char buf[4096];
>
> void task_main( VP_INT exinf )
> {
> act_tsk( タスク A );
> act_tsk( タスク B );
> }
>
> タスク A ()
> {
> 1. 端点への接続 tcp_con_cep()
> 2. WEBサーバからhtmlファイルを読み込み tcp_snd_dat()
> buf へ格納する。
> (格納するテストデータは約400Byte)
> 3. ext_tsk();
> }
>
> タスク B ()
> {
> 1. buf からデータを取り出す。
>
> while( 1 )
> {
> 2. 装置 A へのデータ送信
> 3. 装置 A からの応答受信
> }
> }