Здравствуйте, имею следующую проблему
на stm32f4-discovery пытаюсь запустить FreeRTOS, компилятор - keil.
Если шедулер пустой - все работает.
Если создаю какой-либо таск - проц улетает в HardFault.
Например вот так:
Код
#include "stm32f4xx.h"
#include "FreeRTOS.h"
#include "task.h"
void vInitGPIO(void *pvParameters);
int main()
{
xTaskCreate(vInitGPIO,(signed char*)"LED1",configMINIMAL_STACK_SIZE,NULL,2,(xTaskHandle*)NULL);
vTaskStartScheduler();
for(;;){}
return 1;
}
void vInitGPIO(void *pvParameters)
{
GPIO_InitTypeDef gpio_init;
RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOD, ENABLE);
gpio_init.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14| GPIO_Pin_15;
gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
gpio_init.GPIO_Mode = GPIO_Mode_OUT;
gpio_init.GPIO_PuPd = GPIO_PuPd_DOWN;
GPIO_Init(GPIOD, &gpio_init);
}
размер стека задачи
Код
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 130 )
размер стека контроллера
Код
Stack_Size EQU 0x00000200
Ходил отладчиком по диспетчеру - вывалится может в любом месте.
Кто сталкивался?
на 100-ой серии FreeRTOS юзаю без проблем. а здесь какое-то попадалово, может есть какие либо нюансы, о которых следует знать?