• ベストアンサー

Atmel Studioのhexとelfの違い。

Atmel Studio6.2でATmega88pマイコンのプログラムを行っています。プログラムをビルドした場合、elfファイルとhexファイルの2つDebugフォルダの中に作成されますが、Device Programmerで書き込みする際はどちらのファイルを書き込めば良いのかご教示頂きますよう、お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • kabasan
  • ベストアンサー率44% (264/588)
回答No.1

hexはフラッシュ、eepそれぞれ別に生成され、ヒューズ情報は生成されませんが、 elfには全情報が含まれている為、1回の書き込みで全て終わります。 どちらを使うかはお好みで。 あ、ヒューズ情報が含まれるのはコード内でヒューズ設定を宣言した場合のみです。

techhouse
質問者

お礼

回答頂きありがとうございます。返事が遅くなり大変申し訳ありませんでした。活用させていただきます。

関連するQ&A

  • AVR StudioのEEPROMのhexファイル

    いままでAVR Studio4というAtmelマイコンの開発環境をwindows 7のPCで使用していました。最近、PCを買い換えてwindows8になってからマイコンの書き込みで使っていたUSB接続のAVRICEデバッガがwindows8のドライバで対応していないなどがあり、AVR Studio6をインストールしたらこれらのデバッガが使えるようになったので使っていました。 しかし、複数のAtmega88のEEPROM領域に初期値として書き込んでいたhexファイルがあったのですが、なぜかAVR Studio6でダウンロード使用とすると書き込みがエラーしたりします。 まったく同じファイルをAVR Stuio4でダウンロード使用とするとこれは可能でした。 このEEPROMへのファイルのダウンロードに関してVer4とVer6ではなにか仕様に変化がありましたでしょうか? ご存じの方いらっしゃいましたらご教授頂きますようお願い致します。

  • Atmel Studioでdelay関数でエラー

    現在Atmel Studio6.2でATmega88のプログラミングをやっています。 LEDを1秒間隔で点滅させるプログラムをやってみてます。 http://sourceforge.jp/projects/cc1101driver/scm/svn/tree/2510/branches/CC1101_source_ATmega88_AVRS6/AVRGCC1/ このプログラムでdelay関数として #include <util/delay.h> このヘッダーファイルをインクルードして int main() { hw_setup(); while(1) { B_CTL_HIGH; _delay_ms(1000); B_CTL_LOW; _delay_ms(1000); } } このようなプログラムを組んで見たところ次のようなエラーが出てきます。 (エラー内容) Error 1 __builtin_avr_delay_cycles expects a compile time integer constant c:\program files (x86)\atmel\atmel toolchain\avr8 gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay.h 163 28 CC1101_ATmega88 このエラーの解決方法をご教示頂きますよう、お願い致します。

  • Atmel Studioのeepromアドレス

    現在Atmel Studio6.2でATmega88pマイコンのプログラミングを行っています。 https://sourceforge.jp/projects/cc1101driver/scm/svn/blobs/head/branches/test002_AVRS6_20140819/test02/test02/src/main.c AVR studio4.19 + winAVR Cコンパイラで作成していたコードをAtmel Studio6.2に移してコンパイルを行ったところ、EEPROMアドレスへのデータ書き込みが逆になってしまう現象が起きました。 #define EEPROM __attribute__((section(".eeprom"))) ctl_data EEPROM gctl_data; reg_slave EEPROM greg_slave[100]; int EEPROM eprom_level[14]; char EEPROM eprom_fixid[3]; char EEPROM test_mode; char EEPROM monitor_state; int EEPROM wdt_cnt; int EEPROM cnt_loop_break; このようなコードを”AVR studio4.19 + winAVR”の時からしているのですが、このときは ctl_data EEPROM gctl_data; こちらがEEPROMアドレスの0x0000番地から始まっていたのですが、Atmel Studio6.2の場合は、 int EEPROM cnt_loop_break; こちら側が0x0000番地に配置するようになっていて、逆になってしまっています。 この場合、一番最初のアドレスに割り当てするには、コードも逆にして記述する必要がありますでしょうか? どうぞ、ご教示頂きますようお願いいたします。

  • AVR Studio 6.2で書き込みができない

    現在AVR Studio6.2でATmega88Pマイコンのプログラミングを行っています。JTAGICE3を使用してリアルタイムデバッグをおこなっていました。一旦Device Programming機能でファームウェアをATmega88に書き込もうと思ったのですが、ATmega88とJTAGICE3の接続を確認するため、Device signatureを読み取ろうとしたのですが、次のようなエラーが出てきます。 Unable to enter programming mode. Please verify device selection,interface settings,target power and connections to the target device. Look in the details section for more information. たぶんなんですが、今までデバッグを行っていたので、デバッグのヒューズビットがONの状態になっているため、書き込みモードに移行できていないと思われるのですが、 AVR Studio4の場合はデバッグモード時にデバッグモードを無効にする機能があったと思うのですが、Atmel Studio6.2ではこの機能はありますでしょうか? http://d.hatena.ne.jp/oibore_shinsuke/20130421/1366530168 こちらのサイトの方も同じような症状を言っているように思うのですが、こちらの方法をやってみましたが、私の場合は解決できていません。 どうぞ、ご教示頂きますようよろしくお願い致します。

  • AVRマイコンの書き込みについて

    最近Atmel studio6と言うソフトとArduino IDEと言うのが調べれば調べるほど ごちゃ混ぜになって、何が何だか分からなくなってきました。 どこが同じで、どこが違うのでしょうか。 AVRマイコンのAtmega328p-puにAtmel studio6で書き込む様に書いてあるので、AVrisp mkIIというライターを買いましたが、別の記事を見たらブートローダー というソフトをあらかじめインストールして置かないといけないとか 他の記事に書いてあったのですが。 AVRマイコンに関しては、まったくど素人で分かりませんので教えてください。

  • Atmel studo6.2デバッグ時EEPROM

    現在、Atmel studio6.2でAtmel88pマイコンのプログラミングを行っています。JTAGICE3でリアルタイムデバッグをやっています。通常のプログラミングモードからデバッグモードにマイコンを切り替える際に、EEPROMの内部データが初期化されてしまいます。 マイコンのデバッグを開始する際に一番最初にEEPROMのデータ内容を読み込んでいるので、このデータをいちいち打ち込まなければいけないのですが、EEPROM内容を保存しているeepファイルなどを読み込む機能はデバッグモード時にありますでしょうか? AVR Studio4.19の時はこの機能があったと思うのですが、ご教示頂きますよう、よろしくお願い致します。

  • Atmel Studio 7について

    AVRマイコンをC言語で勉強中の者です Atmel Studio 7の使い方で教えてほしいのですが 以下の画像のようなbit_is_clear()や_BV()のようなマクロはインテリジェンスが効かないのですが仕様ですか?それとも設定の問題ですか? 赤線にカーソルを合わせると「Unrecognized Symbol~」というメッセージが出てます ビルドしてマイコンでの動作は問題ないです よろしくお願いします

  • Microsoft Visual Studio 2008 Express Edtion で”ソリューションのビルド”について

    Microsoft Visual Studio 2008 Express Edtionでメニューから”ソリューションのビルド”を実行した際に、”Debug”フォルダが作成されて、その中にexeファイルが出力されたのですが、このファイルをコピーして他のPCに貼り付けてあげれば、ビルドしたプログラムは動作してくれるのでしょうか。

  • atmegaxマイコンのPDI端子

    現在Atmel Studio6.2 + JTAGICE3でプログラミングを行っています。ATxmega64Aマイコンを使用してプログラミングを行っていこうと思っているのですが、ファームウェアの書き込みやデバッグなどを今まで使用していたATmega88マイコンなどではmiso,mosi端子などを使用して行っていましたが、ATxmega64AマイコンにはPDI,PDO端子というのが設けられていますが、 この端子だけでJTAGICE3でのファームウェアの書き込みやデバッグは可能でしょうか? miso,mosiの端子は書き込みやデバッグでは必要なくなり、SPI通信専用端子として使用できるようことでしょうか? どうぞ、ご教示頂きますよう、よろしくお願い致します。

  • Visual Studioでのビルド

    Visual Stuido Express2012を使用しているのですがビルドについて質問があります。 DBViewerというプロジェクト名でC#のアプリを作成しているのですが ビルドしてできたexeファイルが下記の2通りの場所に存在しています。 exeファイルも両方動作します。 下のパスの方がフォルダの中身がスッキリしていてるのですがこの違いは 何なのでしょうか。また、リリースには下のパスのフォルダを使用するのが 正しいのでしょうか。 C:\Visual Studio 2012\Projects\DBViewer\DBViewer\obj\Debug C:\Visual Studio 2012\Projects\DBViewer\DBViewer\bin\Debug