プロが教えるわが家の防犯対策術!

現在、Atmel studio6.2でAtmel88pマイコンのプログラミングを行っています。JTAGICE3でリアルタイムデバッグをやっています。通常のプログラミングモードからデバッグモードにマイコンを切り替える際に、EEPROMの内部データが初期化されてしまいます。

マイコンのデバッグを開始する際に一番最初にEEPROMのデータ内容を読み込んでいるので、このデータをいちいち打ち込まなければいけないのですが、EEPROM内容を保存しているeepファイルなどを読み込む機能はデバッグモード時にありますでしょうか?


AVR Studio4.19の時はこの機能があったと思うのですが、ご教示頂きますよう、よろしくお願い致します。

A 回答 (2件)

project → property


toolタブ
preserve EEPROM にチェック

それと、ソース内でEEPROM変数を宣言していれば生成するelfファイルにeep.hexの情報も含まれているので、チップ消去で消されてもプログラムロード時にEEPROMも書き込んでくれます。
    • good
    • 0
この回答へのお礼

回答頂きありがとうございます。

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 …

お礼日時:2014/09/03 11:52

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形式ですので手動で書き換えることは可能ですが、今回の場合そういう問題ではないと思います。
変数と初期化、デバッガの動作などもう少し理解を深めてください。
    • good
    • 0
この回答へのお礼

回答頂きありがとうございます。いろいろと助かります。

お礼日時:2014/09/10 13:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!