[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(toppers-users 896) Re: kz_sh4でサンプルプログラムが動きません
- To: ikeuchi mitsuo at jp panasonic com
- To: users at toppers jp
- From: Hiroaki TAKADA <hiro at ertl jp>
- Date: Thu, 19 Jun 2003 09:45:52 +0900 (JST)
池内さま
> VC++ でコンパイルしたものは、正常に動作しましたので、評価キット
> の動作をデバッガで追って、比較してみました。評価キットでは、 logtask()
> ( システムログタスク ) が走りっぱなしになって、 main_task() が
> 起動できなくなっているようです。
>
> 具体的には、 logtask.c:logtask() の中 :
>
> while (TRUE) {
> while ((n = syslog_read(&syslog)) >= 0) {
> if (n > 0) {
** Cut quoted 13 lines by the mail filter. **
解決策ではありませんが、解決へのヒントになるかと思い、お知らせします。
ログメッセージが連続して出力され、シリアルポートから出力できる速度を越
えた場合、ここの n はいつまでも正の値になります。main_task への切り替
えは、syslog_printf の中で呼び出す logtask_putc の中で待ち状態(セマフォ
待ち状態)になった時に起ります。
ですので、logtask_putc から呼んでいる serial_write の中で、正しく待ち
状態になっているかが1つのポイントです。
より根本的には、ログメッセージが連続して出力されるのは、それ以前に何か
らの問題が発生しているためと思われます。これに関しては、
(1) syslog_buffer の中をみて、どういうメッセージが溜っているかを調べる
(2) すべてのメッセージを低レベル出力に出してみる(syslog_setmask を使
うか、もっと手っ取り早く syslog_write を書き換えてしまう)
という手で調べることができると思います。
高田広章
名古屋大学