最近有个项目要把cortex-M3移植到M0上。
遇到下面问题,请亲们给看看怎么解决。
M3上的一个函数:
[mw_shl_code=c,true]static void stm32_intr_init(void)
{
NVIC_InitTypeDef nvic_init;
EXTI_InitTypeDef exti_init;
extern void *__Vectors;
/*
* Make sure vector table offset is set correctly before enabling
* interrupts.
*/
SCB->VTOR = (u32)&__Vectors;
/* Enable SYSCFG clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); /* 4 bits priority */
#ifndef DEMO_UART
spi_platform_intr_init();
#endif
/*
* Set button to cause external interrupt on either edge.
*/
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);
exti_init.EXTI_Line = BUTTON_EXT_LINE;
exti_init.EXTI_Mode = EXTI_Mode_Interrupt;
exti_init.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
exti_init.EXTI_LineCmd = ENABLE;
EXTI_Init(&exti_init);
nvic_init.NVIC_IRQChannel = BUTTON_IRQ;
nvic_init.NVIC_IRQChannelPreemptionPriority = 15;
nvic_init.NVIC_IRQChannelSubPriority = 0;
nvic_init.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&nvic_init);
}[/mw_shl_code]
把这个函数移植到M0后,有三处处提示有错误。
[mw_shl_code=c,true]static void stm32_intr_init(void)
{
NVIC_InitTypeDef nvic_init;
EXTI_InitTypeDef exti_init;
extern void *__Vectors;
/*
* Make sure vector table offset is set correctly before enabling
* interrupts.
*/
/* SCB->VTOR = (u32)&__Vectors; M0的结构体中没有VTCR这个成员*/
/* Enable SYSCFG clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
/* NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); M0的库文件中也没有这个函数*/
#ifndef DEMO_UART
spi_platform_intr_init();
#endif
/*
* Set button to cause external interrupt on either edge.
*/
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);
exti_init.EXTI_Line = BUTTON_EXT_LINE;
exti_init.EXTI_Mode = EXTI_Mode_Interrupt;
exti_init.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
exti_init.EXTI_LineCmd = ENABLE;
EXTI_Init(&exti_init);
nvic_init.NVIC_IRQChannel = BUTTON_IRQ;
nvic_init.NVIC_IRQChannelPriority = 2;
/*nvic_init.NVIC_IRQChannelSubPriority = 0; M0上也没有这个成员*/
nvic_init.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&nvic_init);
}[/mw_shl_code]
1、SCB->VTOR = (u32)&__Vectors; M0的结构体中没有VTCR这个成员
2、NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); M0的库文件中也没有这个函数
3、nvic_init.NVIC_IRQChannelSubPriority = 0; M0上也没有这个成员。
各位高手们,有把M3的工程移植到M0上的经历的吗。
我这个问题怎么解决呀。
|