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

kaneko-nao kaneko-nao @ numata.co.jp
2017年 12月 25日 (月) 15:05:37 JST


はじめまして。
株式会社ヌマタと申します。弊社では次の環境で設計をしていますが、ディスパッチ部でフリーズをするという現象があります。

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」は、一切変更せずに使用しています。