(toppers-users 4711) Re: TOPPERS/ASP3ディスパッチ部におけるフリーズについて

Hiroaki TAKADA hiro @ ertl.jp
2017年 12月 26日 (火) 09:18:05 JST


株式会社ヌマタ様

名古屋大学の高田です。すみませんが,昨日のメールを修正させてくだ
さい。

> (1) slp_tsk() で割り込み待ちをしているということですが,その時
> に,他に動作しているタスクが無い状況があるでしょうか?(ディス
> パッチャ内のアイドル処理を実行しているかどうか)

これは,不要な質問でした。「core_support.s」の223行目の割り込み待
ちのところでフリーズ,ということは,当然 YES ということですね。

質問を変えさせてください。ここで「フリーズする」というのは,無限
ループから抜けてこなくなるということだと思うのですが,その時に,
割込みも発生していないということでしょうか?

もし割込みが発生していないとすると,ループ内で割込みを許可してい
ますので,割込みコントローラ側の設定がおかしくなっているものと思
われます。

割込みが発生しているのであれば,割込みの出口処理でタスク切り換え
に失敗しているものと思われます。

この件,わかりましたら,お知らせ下さると幸いです。

高田広章
名古屋大学

On 2017/12/25 17:51, Hiroaki TAKADA wrote:
> 株式会社ヌマタ様
> 
> ご報告,ありがとうございます。
> 
> TOPPERS/ASP3 のディスパッチャのロジックは,ASP のものと考え方を
> 変えており,何か問題が残っている可能性は無いとは言えません。ま
> た,Release 3.1.0 と 3.2.0 でもロジックの修正を行っており,歴史
> が浅いコードになります。
> 
> こちらでも調査したいと思いますが,まれにしか起こらない現象とい
> うことで,原因を絞り込むのにご協力いただけるとありがたいです。
> 
> (1) slp_tsk() で割り込み待ちをしているということですが,その時
> に,他に動作しているタスクが無い状況があるでしょうか?(ディス
> パッチャ内のアイドル処理を実行しているかどうか)
> 
> (2) もし可能なら,Release 3.1.0 でも同じ問題が発生するか,調べ
> てくださると助かります。
> 
> よろしくお願いします。
> 
> 高田広章
> 名古屋大学
> 
> On 2017/12/25 15:05, kaneko-nao wrote:
>> はじめまして。
>> 株式会社ヌマタと申します。弊社では次の環境で設計をしていますが、ディスパッチ部でフリーズをするという現象があります。
>>
>> OS:TOPPERS/ASP3 3.2.0
>> CPU:ルネサス RZA1/L
>>
>> slp_tsk( )で割り込み待ちをし、割り込み内で当該タスクをiwup_tsk( )で起床する、というタスクを複数作成していると、ディスパッチ部でフリーズをするという現象が発生しました。フリーズする箇所は、「core_support.s」の223行目の割り込み待ちのところです。フリーズの頻度は、数時間に1回程度で、24時間正常動作を続ける場合もあります。
>>
>>     ALABEL(dispatcher_1)
>> #ifdef TOPPERS_CUSTOM_IDLE
>>     toppers_asm_custom_idle
>> #else /* TOPPERS_CUSTOM_IDLE */
>>     msr        cpsr_c, #CPSR_SVC_MODE    /* 割込みを許可(スーパバイザモード)*/
>> #endif /* TOPPERS_CUSTOM_IDLE */
>>     b        dispatcher_1            /* 割込み待ち */   ←ここでフリーズ
>>
>> そこで試行錯誤の結果、割り込みを1個(OSが使用するタイマ割り込みを除く)にすればフリーズしない、ということが分かりました。現在、弊社のお取引先でも、全く同じ現象のトラブルがあるとの報告を受けておりますが、過去にこのような事例についてのご対応はおありでしょうか。ご指導を賜りたく、お願いいたします。因みに、「core_support.s」は、一切変更せずに使用しています。
>>
>>