AVRのメモリセクション

http://www.nongnu.org/avr-libc/user-manual/mem_sections.html

コードセグメント

◯.textセクション -> Flash
プログラム領域のこと .initNと.finiNから成る
最終的にflashに書き込まれるサイズは.textと.dataを足したもの(.bssは足さない)

◯.initNセクション -> Flash
.textの一部


◯.finiNセクション -> Flash

データセグメント

http://en.wikipedia.org/wiki/Data_segment
data segment = 32個の汎用レジスタ + 64個のI/Oレジスタ+ SRAM(.data + .bss + heap)
☆stackは自動変数(ローカル変数)を格納
◯.dataセクション -> Flash & SRAM

◯.bss(Block Started by Symbol)セクション -> SRAM
「初期化されていない」グローバル変数やstaticなローカル変数を格納
プログラム開始前にゼロで初期化される

◯.noinitセクション -> SRAM
.bssの一部 初期化されていない変数を格納
・宣言例

int foo __attribute__ ((section (".noinit")));

外部記憶領域

◯.eepromセクション -> EEPROM
EEPROM領域