奇妙なエラーに遭遇したので、どなたか同じ経験をお持ちの方が 居られたらと期待して質問させていただきます。 秋月の3067Fキットを使っているのですが、あるプログラムを焼こ うとしたところ、 「MOTファイルが不正です」 というエラーが出て書き込めない状態が時々現れます。イマイチ 再現性に乏しく、決定的な理由が分からないのですが、だいたい はsprintf()文を使った後、シリアルから文字列を送信するルーチ ン(デバッグ用)をmain()以外に入れたときに発生する確率が高い ようです。 もちろんインクルードファイルはちゃんとファイルの先頭で宣言し ています。 また、同じエラーが出る事例として、外部RAMを使用しますので、 アドレススペースオーバーフロー(?)が起こったときに警告を出し て貰おうと、RAMが終わった直後のアドレスにダミーのセクション を置き(PDummy)、ファイルにもDummyという空のセクションを置 いたのですが、このときにも発生します。 それと、3048Fの時には無かったのですが、コンパイラの最適化の 設定を有効にしていると、タイマー割り込みでインクリメントされ るようにしているint型の変数がまったく変化しないと言う不思議 な現象も有ります。(最適化無効にするとちゃんと動く) 割り込みルーチンそのものでは確かに使っていない外部の変数なの ですが、main()等で現実に使っている変数が、使っていないと誤解 されているとしか思えません。このような時に何か対処法はあるの でしょうか? 基本的には3048Fで実績のあるプログラムをレジスタ名だけ変更して 引っ張ってくることが多いのですが、コンパイラ(HEW)を疑い たくなるような予期せぬ動きがやけに多いと感じています。特に、 グローバル変数を使った場合にそういう予想外の動きがよく起こり ます。どうも信用できんと思ってパッチファイルなども探したりし たのですが、特には見つかりません。何かそういう報告等はあるの でしょうか? 以上、漠然とした質問で恐縮ですが、宜しくお願いします。 -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- 小島 央 (Hiroshi Kojima)@和歌山大学大学院システム工学研究科 ∩∩ ・E-mail 1: s012019@xxxxxxxxxxxxxxxxxxxx "∪" ・E-mail 2: funfly@xxxxxxxxxxxx http://www.kisweb.ne.jp/personal/funfly/index.html -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-