スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

avr-gccのバグらしき現象にぶち当たりました。

現象は、USARTの受信データ読み込み関数を関数を呼び出す所と異なるファイルに定義していると連続受信時にリセットがかかったかの様な状態になる事です。

MCU状態レジスタ(MCUSR)の値を出力してリセット要因を見てみましたが、リセットされた形跡がありません。なのでJMP命令等で突然飛ばされている感じです。割り込みは禁止にしっぱなしなので割り込み関連ではないと思われます。

今のところ、USART受信関数の位置を変更するだけで現象が発生しなくなっているが、本当の原因が何なのか分っていないのでいつまたこの現象に遭遇するか心配です。

現象発生前後で大きくプログラムの構成を変えたので原因解明に1週間以上を費やしてしまいました…。原因を追い詰めたファイルを置いておきます。


開発環境:WinAVR-20090313
使用マイコン:ATmega644P
使用リソース:USART 0ch(非同期、19200baud)

現象発生ソースコード: winavr_usart_bug_generate.zip
現象発生しないソースコード: winavr_usart_bug_not_generate.zip


追記 2009.06.10
バグではなかったみたいです。
詳細はこちら
スポンサーサイト

コメントの投稿

非公開コメント

黒ねこ時計 くろック D02
プロフィール

jujurou

Author:jujurou
運営HP:チャコの部屋
Twitter:jujurou

カレンダー
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
最新記事
最新コメント
カテゴリ
ユーザタグ

ぺるけ RaspberryPi Linux トランジスタ式ミニワッター TRminiWatterPart4 MPD OpenOCD イーサネットコンバータ FON2405E DAC buildroot FM3ペリフェラル BeagleBoneBlack FM3評価ボード library OpenGL mingw ODROID-U2 TL-WR700N Edison bitbake KiCad 計測 VMware シングル FM4 ミニワッター 6N6P プリアンプ 

月別アーカイブ
ランキング

FC2 Blog Ranking

カウンター
検索フォーム
リンク
RSSリンクの表示
QRコード
QRコード
ライセンス
クリエイティブ・コモンズ・ライセンス
Twitter
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。