我是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();
程序進入。
我在my.st.com上發現了一個主題here,並試圖在「鏈接」和「編譯」部分添加「--specs = nano.specs」到「Misc Controls」,但沒有任何更改。
通常,對於'new()'可能沒有合適的實現,只有這樣一個小型RAM受限設備。不知道你提到的IDE,但你應該研究你的實際工具鏈是如何配置的。當你到達'Default_Handler()'時,這意味着你被困在一些'異常'中。你使用RTOS,如果是的話,哪一個? –
@ g-makulik,不,我不知道。你能幫我找到另一種方式嗎?是全局變量還是全部配置在'void main'中,因爲我無法在構造函數中填充數組,因爲在過程結束時對象將被銷燬。 –
什麼是你的(十字)工具鏈? GCC? (對不起,我不知道'--specs = nano。specs'將與您的IDE /工具鏈一起使用) –