Я новичок в программировании на ARM, использую CoIDE, пытаюсь написать приложение для считывания ШИМ с 8 каналов на C++.
Моя проблема заключается в использовании оператора new
; если я напишу:
RxPort rxPort = RxPort(RCC_AHB1Periph_GPIOA, GPIOA, GPIO_Pin_6, GPIO_PinSource6, GPIO_AF_TIM3, RCC_APB1Periph_TIM3, TIM3, TIM_Channel_1, TIM_IT_CC1, TIM3_IRQn);
он работает нормально, но если я пишу:
RxPort* rxPort1 = new RxPort;
rxPort1->setTimerParameters(RCC_APB1Periph_TIM3, TIM3, TIM_Channel_1, TIM_IT_CC1, TIM3_IRQn);
rxPort1->setGPIOParameters(RCC_AHB1Periph_GPIOA, GPIOA, GPIO_Pin_6, GPIO_PinSource6, GPIO_AF_TIM3);
rxPort1->init();
программа идет на:
static void Default_Handler(void)
{
/* Go into an infinite loop. */
while (1)
{
}
}
после первой строки.
Я нашел одну тему на my.st.com here, and tried to add "--specs=nano.specs " в "Misc Controls" в разделе "Link" и "Compile", но ничего не меняется.
new()
с таким маленьким устройством с ограниченным объемом оперативной памяти. Не знаю об упомянутой вами IDE, но вам следует выяснить, как настроена ваша фактическая цепочка инструментов. Когда вы доберетесь доDefault_Handler()
, это означает, что вы застряли в каком-то «исключении». Используете ли вы RTOS, если да, то какую? - person πάντα ῥεῖ   schedule 09.10.2013--specs=nano.specs
в вашей IDE/Toolchain) - person πάντα ῥεῖ   schedule 09.10.2013malloc
/free
- person πάντα ῥεῖ   schedule 09.10.2013arm-none-eabi-gdb
— это просто приложение-отладчик BTW. Вы сами создаете набор инструментов или используете готовый? - person πάντα ῥεῖ   schedule 09.10.2013void main()
. - person Aleksandr K.   schedule 09.10.2013new()
в своих реализациях, потому что это явно не поддерживается для вашей среды. - person πάντα ῥεῖ   schedule 09.10.2013