- ベストアンサー
Atmel studio6.2でのEEPROMのデバッグ時に注意すべきポイント
- Atmel studio6.2を使用してAtmel88pマイコンのプログラミングを行っていると、JTAGICE3を使用したリアルタイムデバッグ時にEEPROMの内部データが初期化されてしまう問題が発生します。
- デバッグモードに切り替える際に、マイコンのデータ内容をいちいち打ち込む必要がありますが、デバッグモード時にEEPROM内容を保存しているeepファイルを読み込む機能は存在しますか?
- AVR Studio4.19ではこの機能が存在していたかもしれませんが、Atmel studio6.2での詳細な機能について教示いただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
The EESAVE fuse must be configured manually to preserve EEPROM, since it cannot be configured automatically when using debugWIRE. 書いてあるとおりです。和訳↓ 「EEPROM保持の為には手動でEESAVEヒューズを設定しなければなりません。デバッグワイヤ使用時は自動で設定できないからです。」 それと、この設定はデバッグ開始時にEEPROMを「チップ消去の対象にしない」だけですのでeepファイルが生成される = 初期値が存在する場合は結局上書きされて、前回デバッグ時の状態は消えてしまいます。 eepファイルの中身は全領域00となっているので、デバッグ開始時はすべて00になるのは当然です。 消去だけされて初期値がロードされていなければFFになります。 eepファイルはintel hex形式ですので手動で書き換えることは可能ですが、今回の場合そういう問題ではないと思います。 変数と初期化、デバッガの動作などもう少し理解を深めてください。
その他の回答 (1)
- kabasan
- ベストアンサー率44% (264/588)
project → property toolタブ preserve EEPROM にチェック それと、ソース内でEEPROM変数を宣言していれば生成するelfファイルにeep.hexの情報も含まれているので、チップ消去で消されてもプログラムロード時にEEPROMも書き込んでくれます。
お礼
回答頂きありがとうございます。 Preserve EEPROMにチェックを入れてみました。 ですが、一度デバッグのRUNを停止して、Atmel studio6.2を起動し直して、再度デバッグすると、今まで設定していたEEPROM内のでデータ内容がすべて0x00になっている状態です。 少し気になる点として、 ・プロジェクトフォルダ内のDebugフォルダ内の.eepという拡張子のファイルは次のようなテキスト内容になっています。 (test02.eepファイルの内容) :1000000000000000000000000000000000000000F0 :1000100000000000000000000000000000000000E0 :1000200000000000000000000000000000000000D0 :1000300000000000000000000000000000000000C0 :1000400000000000000000000000000000000000B0 :1000500000000000000000000000000000000000A0 :100060000000000000000000000000000000000090 :100070000000000000000000000000000000000080 :100080000000000000000000000000000000000070 :100090000000000000000000000000000000000060 :1000A0000000000000000000000000000000000050 :1000B0000000000000000000000000000000000040 :1000C0000000000000000000000000000000000030 :1000D0000000000000000000000000000000000020 :1000E0000000000000000000000000000000000010 :1000F0000000000000000000000000000000000000 :1001000000000000000000000000000000000000EF :1001100000000000000000000000000000000000DF :1001200000000000000000000000000000000000CF :1001300000000000000000000000000000000000BF :1001400000000000000000000000000000000000AF :10015000000000000000000000000000000000009F :10016000000000000000000000000000000000008F :10017000000000000000000000000000000000007F :10018000000000000000000000000000000000006F :10019000000000000000000000000000000000005F :1001A000000000000000000000000000000000004F :0C01B00000000000000000000000000043 :00000001FF デバッグを開始する際は、このeepファイルという内容がEEPROMの内容として反映するような状態でしょうか?今回のeeprom内容の件と何か関係がありますでしょうか? このeepファイルの内容を書き換える方法などはありますでしょうか? また、 Preserve EEPROMにチェックを入れた際に次のような警告メッセージが出てきます。 (警告メッセージ内容) Note: The EESAVE fuse must be configured manually to preserve EEPROM, since it cannot be configured automatically when using debugWIRE. このような警告メッセージが出てくるのですが、これも今回のEEPROMにデータをロードできないものと関係ありますでしょうか? どうぞ、引き続きよろしくお願い致します。 *このプロジェクトの作業内容は下のURLで公開しております。 https://sourceforge.jp/projects/cc1101driver/scm/svn/tree/2557/branches/test002_AVRS6_20140819/test02/
お礼
回答頂きありがとうございます。いろいろと助かります。