TOPへ戻る

20070730 there are no sections to be copied!って何だ?

winavr の標準のmakeファイルを使用して、コンパイルすると、
インストールした環境によりますが、コンパイラの途中で

【c:\WinAVR-20070525\bin\avr-objcopy.exe: there are no sections to be copied!】

というメッセージを出力しているとことがあります。

日本語に訳すと、【.eeprom のセクションがないため、eeprom.eep が作れませんでした。】
という感じです。

サンプル

プログラムに.eeprom セクションというのを使用します。

●サンプルソースファイル
#include <avr/eeprom.h> char __attribute__((section(".eeprom"))) val[] = { 1,2,3,4,5,6,7,8,9,0 }; main() { } EEPROM部に、1,2,3,4,5,6,7,8,9,0 というデータを格納する宣言です。

これをコンパイルすると。
Creating load file for EEPROM: eeprom.eep avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \ --change-section-lma .eeprom=0 --n o-change-warnings -O ihex eeprom.elf eeprom.eep || exit 0 Creating Extended Listing: eeprom.lss そして、eeprom.eep という rom ファイルファイルが出来上がります。
書き込みツールの、AVRSP-G の ROMデータという枠で読み込むことができます。

ちなみに
#include <avr/eeprom.h> //char __attribute__((section(".eeprom"))) val[] = { 1,2,3,4,5,6,7,8,9,0 }; char val[] = { 1,2,3,4,5,6,7,8,9,0 }; main() { } これをコンパイルすると。
Creating load file for EEPROM: eeprom.eep avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \ --change-section-lma .eeprom=0 --n o-change-warnings -O ihex eeprom.elf e eprom.eep || exit 0 c:\WinAVR-20070525\bin\avr-objcopy.exe: there are no sections to be copied! Creating Extended Listing: eeprom.lss there are no sections to be copied!って、表示されて eeprom.eep というファイルは
作られません。

.eeprom セクションについては、ココで詳しく書かれています。

あきぼうのPage

2007/07/30 初版

TOPへ戻る