sprintfの引数に関して

RL78G14でプログラムを作成中、マイコンが動作異常(リセットがかかったようなな感じ?)になるときがあり調査したところ、以下のコードが原因であることがわかりました。

#include "stdio.h"

char title[] = "xxxxxx";     // 何らかの文字列指定

char debug_send[128];

main(){

   sprintf(debug_send,"%s",title);     // このコードが原因でたまにマイコン動作が異常になる

    ....

}

もともとがtitleからdebug_sendへ文字列に変換し格納することが目的だったため、strcpyと入れ替えたところ現象は発生しなくなりました。

E2 Liteでデバッグしているのですが、デバッグ中は発生せず、ROMに書き込んだ後たまに発生することから内部でどのようなことになっているかはっきりしていません。

 

同じような現象、および、明確にこのコードが悪いという情報はありますでしょうか?

ビルドバージョン 1.06.00/1.08.00

最適化レベルはデバッグ優先

Parents
  • こんにちは

    >ROMに書き込んだ後
    ということですのでデバッグ用に書き込んだものをそのまま単体で使っていることは無さそうですが参考までにこんなFAQもあります。
    ja-support.renesas.com/.../17796187
  • じまさま
    情報誠にありがとうございます。デバッグ→単体はデバッグ用でそのままテストをやっていたのですが、FlashProgrammerでも書込みして確認をしました。
    RAMパリティエラーの項目は完全に読み落としていました。非常に参考になりました。
Reply
  • じまさま
    情報誠にありがとうございます。デバッグ→単体はデバッグ用でそのままテストをやっていたのですが、FlashProgrammerでも書込みして確認をしました。
    RAMパリティエラーの項目は完全に読み落としていました。非常に参考になりました。
Children
No Data