STM32F103RC带FreeRTOS升级之后无法运行

2019-07-21 08:51发布

本帖最后由 ownbest 于 2018-7-18 10:13 编辑

使用的单片机是STM32F103RCT6,在FALSH里面做了两个程序,一个是Bootloader,负责程序跳转,一个是APP主程序,使用了FreeRTOS系统,跳转之后主程序初始化可以执行,一旦执行到调用  vTaskStartScheduler();这个函数后就死机,屏蔽  vTaskStartScheduler();之后,其他没有修改,在主while(1)里调用函数可以正常执行,主程序从0x8000000单独执行是正常的,,,请大神指点

int main(void)
{
    HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();
    MX_DMA_Init();
    CAN_Normal_Init(1,1,6,16,0);
    MX_ADC1_Init();
    MX_SPI1_Init();
    MX_UART4_Init();//DEBUG
//    MX_IWDG_Init();
    MX_USART1_UART_Init();//AC
    MX_RTC_Init();
    MX_USART2_UART_Init();//3G

    GPRS_RevData.maxlen = UART_DMA_RX_MAX;//初始化接收空间
    GPRS_RevData.curbuf = (uint8_t*)pvPortMalloc(sizeof(uint8_t)*GPRS_RevData.maxlen);
    HAL_UART_Receive_DMA(&huart2,GPRS_RevData.curbuf,UART_DMA_RX_MAX);

    DBG_Print("进入主程序 ");
    osThreadDef(DcuCheckTask, StartDcuCheckTask, osPriorityHigh, 0, 256);
    DcuCheckTaskHandle = osThreadCreate(osThread(DcuCheckTask), NULL);

    /* Start scheduler */
    osKernelStart();

    while (1)
    {
        delay_ms(200);
//HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_6);
            StartDcuCheckTask((void const *)1);
    }
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。