new in Keil Salute!
Попытался в Keil воспользоваться выделением памяти через new. Сделал простейший тестовый код, все настройки по умолчанию:
main.cpp
class CTest{
public:
void Func(){ }
};
int main(void) {
while(1){
int i = 0;
++i;
CTest* p (new CTest());
p->Func();
delete p;
}
return 0;
}
После запуска, еще до вызова main симулятор штука вылетает в SWI_Handler. В документации сказано, что вся инициализациия происходит в начале и исключение может быть при нехватки памяти, но куда она тогда делатсь? Да и переменная динамическая.. Стеки объявлены:
UND_Stack_Size EQU 0x00000000
SVC_Stack_Size EQU 0x00000008
ABT_Stack_Size EQU 0x00000000
FIQ_Stack_Size EQU 0x00000000
IRQ_Stack_Size EQU 0x00000080
USR_Stack_Size EQU 0x00000400
чип - LPC2148, так что рамы остается там еще много.
Честно говоря - непонятно. Может кто пользовал оператор new, интересно было бы узнать, как правильно это делается для keil..
Best regards