ARM 프로그래밍에서 새로 생겼습니다. CoIDE를 사용 중이며, C++에서 8 채널 PWM을 읽는 응용 프로그램을 작성하려고합니다.STM32 C++ operator new (CoIDE)
제 문제는 연산자 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);
그것을 잘 작동하지만, 내가 쓰는 경우 : 첫 번째 줄 이후
static void Default_Handler(void)
{
/* Go into an infinite loop. */
while (1)
{
}
}
:
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();
프로그램에 간다.
here my.st.com에서 하나의 항목을 찾았으며 "링크"및 "컴파일"섹션의 "기타 컨트롤"에 "--specs = nano.specs"를 추가하려고했지만 아무 것도 변경되지 않았습니다.
보통 작고 RAM이 제한적인 장치로 'new()'에 대한 적절한 구현이 없을 수 있습니다. 언급 한 IDE에 대해 모르겠지만 실제 툴체인 구성 방법을 조사해야합니다. 'Default_Handler() '에 도달하면 이것은 당신이 어떤'예외 '에 빠져 있음을 의미합니다. RTOS를 사용하고 있습니까, 그렇다면 어느 것입니까? –
@ g-makulik, 아니요, 아닙니다. 다른 방법을 찾도록 도와 주시겠습니까? 프로 시저가 끝나면 개체가 파괴되므로 전역 변수 나 전역 변수를 'void main'에 구성합니까? 왜냐하면 배열에 객체를 채울 수 없기 때문입니다. –
(십자가) 툴체인은 무엇입니까? GCC? (미안,'--specs = nano가 뭔지 모르겠다.specs'는 IDE/Toolchain을 의미합니다) –