Issue with NVIC_Configure() on STM32F100

saccrue wrote on Saturday, June 29, 2013:

I’m stuck on an issue. I have an STM32F100 VL Discovery board and I have setup FreeRTOS on it. I have two tasks and all works well on scheduling and running them. I added a USART driver to send characters to a terminal program through the USART. That seems to work fine, one of my tasks puts a character out to the serial port periodically.
The issue I am having is trying to setup an ISR to receive characters from the terminal program on my PC. If I uncomment the line to NVIC_Configure() I get a hard fault after the scheduler starts. If I comment out the line, all works as before.
void NVIC_Configuration()
{
   NVIC_InitTypeDef NVIC_InitStructure;

   /* Configure the NVIC Preemption Priority Bits */
   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
  
   /* Enable the USART3 Interrupt */
   NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;
   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
   NVIC_Init(&NVIC_InitStructure);
}

Any ideas? The same code with FreeRTOS commented out works fine. So, there is something i’m missing about setting up the ISR and the presence of FreeRTOS.

davedoors wrote on Saturday, June 29, 2013:

Search for “If you are using an STM32” on this page http://www.freertos.org/RTOS-Cortex-M3-M4.html. It is in red.

saccrue wrote on Saturday, June 29, 2013:

Bam. Thanks.