こんばんは、井田です。 現在 H8/3069でHEW4(製品版)を使用し、C,C++の混合でコーディングを行っています。 コンパイル後の「*.MOT」ファイルは260KB程有ります。 RAMデバッグも一通り済んで、ROMに書き込んだのですが、 電源ON時にH8のイニシャル処理とはまったく関係のないソフト処理でダンマリ停止することが有ります。 電源を入り切りしていると正常に起動する時もあるのですが、ダンマリ停止する割合が多く悩んでいます。 RAMデバッグの時は問題なく動作します。 なお、叩き台としてVC++6で作成ものを、H8/3069用に置き換えています。 セクションの設定は下記のようになっています。 0x00200000は外部SRAM 0x00000400 PResetPRG PIntPRG 0x00000800 P C C$DSEC C$BSEC C$INT D C$VTBL 0x00200000 B R 0x00FFFD00 S 下記のソースでお気づきの点など有りましたら、助言いただけたら幸いです。 Seq1まではLCDに表示されるがSeq1A1は表示されない。 GetMinValue()が呼び出されていない感じ。 void main(){ CUI::Create(); } void CUI::Create() { //クラスはシングルトンで保有 m_pInputA = new CInputA; //CInputBaseから継承 m_pInputB = new CInputB; //CInputBaseから継承 LcdOut("Seq1"); //LCD出力 m_pInputA->SetLimit(); LcdOut("Seq2"); //LCD出力 m_pInputB->SetLimit(); } void CInputBase::SetLimit(){ int GetMin; int GetMax; LcdOut("Seq1A"); //LCD出力 GetMin = GetMinValue(); //戻り値-9999 LcdOut("Seq1B"); //LCD出力 GetMax = GetMaxValue(); //戻り値9999 } int CInputA::GetMaxValue() { int i; int k = 1; int nRet = 0; for(i = 0; i < 4; i++){ nRet += 9*k; k *= 10; } return nRet; } int CInputA::GetMinValue() { LcdOut("Seq1A1"); //LCD出力 return -GetMaxValue(); }