Цитата(AndreyVN @ Nov 28 2006, 09:34)

Всем привет!
Внизу приведен фрагмент содержимого окна, которое выдает CodeVision после компилляции программы.
Непонятна строка "Hardware Stack area" это что за стек такой???
Судя по размеру, это остаток ОЗУ, но почему его так странно назвали?
Цитата
1129 line(s) compiled
No errors
No warnings
Bit variables size: 0 byte(s)
Data Stack area: 60h to AFh
Data Stack size: 80 byte(s)
Estimated Data Stack usage: 43 byte(s)
Global variables area: B0h to 315h
Global variables size: 614 byte(s)
Hardware Stack area: 316h to 45Fh
Hardware Stack size: 330 byte(s)
EEPROM usage: 0 byte(s) (0,0% of EEPROM)
Program size: 1915 words (46,8% of FLASH)
У АВР есть т.н. Hardware Stack в котором сохраняются адреса возвратов, и переменные помещаемые туда командой PUSH. Вершиину стека адресует SP, который необходимо проинициализировать при старте программы. Т.о. адресное пространство между верхушкой памяти(обычно CV инициализирует SP=SRAM_END) и последней глабальной переменной и есть Hardware Stack area.
А вобще в хелпе CV данный момент подробно расписан-SRAM Memory Organization.
The
Data Stack area is used to dynamically store local variables, passing function parameters and saving registers R0, R1, R15, R22, R23, R24, R25, R26, R27, R30, R31 and SREG during interrupt routine servicing.
The Data Stack Pointer is implemented using the Y register.
The
Hardware Stack area is used for storing the functions return addresses.
The SP register is used as a stack pointer and is initialized at start-up with value of of the _HEAP_START_ -1 address.
During the program execution the Hardware Stack grows downwards to the Global Variables area.