(toppers-users 3076) Re: [H8]E_CTX reported by `isig_tim()' in line 63 of `../jsp/systask/timer.c'. 頻発

中村和博 norichan1108 @ gmail.com
2010年 2月 14日 (日) 02:51:26 JST


こんばんは、中村です。

TO: 坂元 様

> TOPPERSの実装には詳しくないのですが、可能性として多重割込みに絡む
> 問題のような気がします。シリアルとtimerの割込みレベルを同じにする
> などして多重割り込みを使わなければ問題を回避できるかもしれません。

上記、先日試してみたのですが、残念ながらうまくいきませんでした。
単に、シリアルにタイマーが割り込んでいるというわけではなくて、
おそらく、送信バッファにデータを挿入する際に結構長い時間cpuロックを
しているのですが、そのロックをかける瞬間に割り込まれてしまうのでは
ないかとおもっています。
ただ、具体的にどう手を入れていいのかがさっぱりわかりません(--;。
それに、E_CTXをださずそのままフリーズするケースもあるため、
単純にそれだけが原因とも言い切れないのです。

今回は、TOPPERSの使用をあきらめて、現状まっさらな状態から
作り直しているところですが、実は単純なシリアル送信割り込みではまって
いたりします。コードを見る限り問題なさそうなのですが、どういうわけか
うまくうごいてくれず・・・。間に合うのか心配になってきました(--;


2010年2月13日14:25  <titicaca @ buz.bbiq.jp>:
> 中村様
>
>> その後、ですが、syslogを止めてもtimerが動いているとやはりNGでした。
>> 根本的に?TOPPERSの組み込みシリアルルーチンとtimer処理の相性が悪いようにおもいます。
>
> TOPPERSの実装には詳しくないのですが、可能性として多重割込みに絡む
> 問題のような気がします。シリアルとtimerの割込みレベルを同じにする
> などして多重割り込みを使わなければ問題を回避できるかもしれません。
>
>> 追伸:
>> 坂元様、MLでのファイル添付は極力避けたほうがよいです。FTPなりWebなりにあげて
>
> 失礼しました、了解です。
>
> 256 坂元
>
>
>