サイト内検索byGoogle
カスタム検索
AVRチャレンジ十二日目
EEPROMまわりの続き
EEPROM回りの書き方が、実はwebや各所のコードでかなり違う。どうもコンパイラの世代で書式が変わっている可能性がある。結果としてAVRwikiあたりがおそらく正解。
とりあえずコンパイラエラーが出ない状況まで追い込んでそこからが大変。STK500経由でEEPROMをダンプすると、指定の番地に値は書き込まれているのだが、その値を読み出せていない。それどころか本来指定した初期値がどっかにすっ飛んでリミットの端っこから始まる状態に。ちなみにダンプしたHEXファイルをテキストエディタで覗くと未使用部分は全てFFになっている。
しばらくソースコードとにらめっこして考えることにする。
それよりデバッグ中で煩雑に動かすからしょうがないのだが、EEPROMのwriteルーチンに単純なアップカウンタを仕込んでチェックした結果、書き換え回数の数値が妙に多い。
公称10万回書き換え可能ということだが、チェックで0-255の1byteをスクロールさせる度に値を比較して書き込むとそれだけでざっと256回消費する。1000回はあっという間に使うとして、同一アドレスでの書き換えは意外に早く10万回にいっちゃうものなのかもしれない。これはあとで対策を考える。
いいかげんデバッガの使い方覚えようね・・・
--追記--
EEPROM回りも実験に成功したので、最低限の事はどうにかなった。あとは実験で使ったソースコードを綺麗に?マージしてバラックで組んだ実機での検証になる。今日はここまでにして明日以降はユニバーサル基板と格闘の予定。
で、余裕のあるときにEEPROMの番地を順番にローテーションさせるプログラムを考えることにする。
EEPROM回りの書き方が、実はwebや各所のコードでかなり違う。どうもコンパイラの世代で書式が変わっている可能性がある。結果としてAVRwikiあたりがおそらく正解。
とりあえずコンパイラエラーが出ない状況まで追い込んでそこからが大変。STK500経由でEEPROMをダンプすると、指定の番地に値は書き込まれているのだが、その値を読み出せていない。それどころか本来指定した初期値がどっかにすっ飛んでリミットの端っこから始まる状態に。ちなみにダンプしたHEXファイルをテキストエディタで覗くと未使用部分は全てFFになっている。
しばらくソースコードとにらめっこして考えることにする。
それよりデバッグ中で煩雑に動かすからしょうがないのだが、EEPROMのwriteルーチンに単純なアップカウンタを仕込んでチェックした結果、書き換え回数の数値が妙に多い。
公称10万回書き換え可能ということだが、チェックで0-255の1byteをスクロールさせる度に値を比較して書き込むとそれだけでざっと256回消費する。1000回はあっという間に使うとして、同一アドレスでの書き換えは意外に早く10万回にいっちゃうものなのかもしれない。これはあとで対策を考える。
いいかげんデバッガの使い方覚えようね・・・
--追記--
EEPROM回りも実験に成功したので、最低限の事はどうにかなった。あとは実験で使ったソースコードを綺麗に?マージしてバラックで組んだ実機での検証になる。今日はここまでにして明日以降はユニバーサル基板と格闘の予定。
で、余裕のあるときにEEPROMの番地を順番にローテーションさせるプログラムを考えることにする。




