我是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 /工具链一起使用) –