(toppers-users 374) Re: はじめまして

Takayuki WAKABAYASHI takayuki @ ertl.ics.tut.ac.jp
2002年 4月 3日 (水) 22:56:44 JST


豊橋技術科学大学の若林です。

先ほど河井様よりご報告のあった「コンフィギュレータがエラーを吐いて止まる」と
言う問題ですが、コンフィギュレータ内にバグが見つかりました。

問題  タスク優先度が即値整数だと、コンフィギュレータが異常停止する
状況  タスクの優先度を整数で設定する
原因  整数型を無理矢理文字列にキャストしている
箇所  Task::API_CRE_TSK::Body [cfg/jsp/toppers.cpp:428]
対象  TOPPERS/JSP 1.2 以前に付属のコンフィギュレータ

この問題を修正するには、cfg/jsp/toppers.cpp:428行付近にある行を、
下の修正後のものと差し替え、再コンパイルしてください。

---8<--- 修正前 ---8<---
        work = string("INT_PRIORITY(") + *(String *)(Parent->GetParameter(id, PRIORITY)) + ")";
        Parent->SetParameter(id, PRIORITY, new String(work));
---8<--- 修正後 ---8<---
        val = Parent->GetParameter(id, PRIORITY);
        if(*val == Value::INTEGER)
        {
                sprintf(buffer, "INT_PRIORITY(%d)", (int)*(Integer *)val);
                Parent->SetParameter(id, PRIORITY, new String(buffer));
        }else
        {
                work = string("INT_PRIORITY(") + *(String *)val + ")";
                Parent->SetParameter(id, PRIORITY, new String(work));
        }
---8<------8<------8<---

河井様、ご指摘 ご協力ありがとうございました。

//-------------------------------------------------
//Takayuki WAKABAYASHI (わかばやし たかゆき)
//  mailto: takayuki @ ertl.ics.tut.ac.jp
//-------------------------------------------------
//豊橋技術科学大学 工学研究科 情報工学専攻
//  組込みリアルタイムシステム研究室
//    Embedded and realtime system laboratory
//      Dept. of information and computer science
//        Toyohashi univ. of technology