Цитата(SSerge @ Jun 14 2009, 02:19)

Ещё интереснее, при установленой галке General Options->Target->Configure system using dialog(not in .XCL file) директивы размещения сегментов берутся из \avr\src\template\cfg1soim.xcl или \avr\src\template\cfg1toim.xcl.
А при снятой - из \avr\config\lnkm8s.xcl или \avr\config\lnkm8t.xcl.
Это видно в "шапке" в начале map-файла.
При снятии/установке галки положение сегментов меняется, но именно в соответствии с порядком следования -Z директив в этих файлах.
Огромное спасибо! Теперь мне стала абсолютно ясна причина, по которой у меня расстановка сегментов не соответствовала файлу конфигурации lnkm8s.xcl - компилятор брал его из другого файла cfg1soim.xcl, поскольку та галка у меня в проекте стояла.
Стало быть разница в укладке сегментов следует из содержимого файлов конфигурации cfg1
soim.xcl и cfg1
toim.xcl.
В модели tiny стеки выше tiny-данных:
-Z(DATA)TINY_I,TINY_Z,TINY_N=_..X_SRAM_TBASE:+_..X_SRAM_TSIZE
-Z(DATA)CSTACK+_..X_CSTACK_SIZE=_..X_SRAM_TBASE:+_..X_SRAM_TSIZE
-Z(DATA)HEAP+_..X_HEAP_SIZE=_..X_SRAM_TBASE:+_..X_SRAM_TSIZE
-Z(DATA)IOSTREAM_N#_..X_SRAM_TBASE:+_..X_SRAM_TSIZE
-Z(DATA)TINY_HEAP+_..X_TINY_HEAP_SIZE=_..X_SRAM_TBASE:+_..X_SRAM_TSIZE
-Z(DATA)RSTACK+_..X_RSTACK_SIZE=_..X_RSTACK_BASE-_..X_RSTACK_END
-Z(DATA)NEAR_I,NEAR_Z=_..X_SRAM_BASE-_..X_SRAM_END
-Z(DATA)NEAR_HEAP+_..X_NEAR_HEAP_SIZE=_..X_SRAM_BASE-_..X_SRAM_END
-Z(DATA)NEAR_N=_..X_SRAM_BASE-_..X_SRAM_END
А в модели small стеки ниже near-данных:
-Z(DATA)TINY_I,TINY_Z,TINY_N=_..X_SRAM_TBASE:+_..X_SRAM_TSIZE
-Z(DATA)CSTACK+_..X_CSTACK_SIZE=_..X_CSTACK_BASE-_..X_CSTACK_END
-Z(DATA)HEAP+_..X_HEAP_SIZE=_..X_SRAM_BASE-_..X_SRAM_END
-Z(DATA)IOSTREAM_N#_..X_SRAM_BASE-_..X_SRAM_END
-Z(DATA)NEAR_HEAP+_..X_NEAR_HEAP_SIZE=_..X_SRAM_BASE-_..X_SRAM_END
-Z(DATA)RSTACK+_..X_RSTACK_SIZE=_..X_RSTACK_BASE-_..X_RSTACK_END
-Z(DATA)NEAR_I,NEAR_Z,NEAR_N=_..X_SRAM_BASE-_..X_SRAM_END
Еще раз спасибо за исчерпывающее разъяснение!
Сообщение отредактировал Xenia - Jun 14 2009, 14:07