初级会员
- 积分
- 135
- 金钱
- 135
- 注册时间
- 2020-11-30
- 在线时间
- 22 小时
|
30金钱
int32_t main(void)
{
int a;
LL_PERIPH_WE(EXAMPLE_PERIPH_WE); //关闭写入保护
BSP_CLK_Init(); //小华官网提供的系统时钟配置
Uart1Initialize(115200UL, USART_DATA_WIDTH_8BIT, USART_STOPBIT_1BIT, USART_CLK_DIV64, \ USART_OVER_SAMPLE_8BIT, USART_PARITY_NONE);
LL_PERIPH_WP(EXAMPLE_PERIPH_WP); //打开写入保护
/* Add your code here */
a = xTaskCreate((TaskFunction_t)main_task, (const char * )"main_task", (uint16_t)1280, NULL, 1, NULL );
printf("a = %d\r\n", a); vTaskStartScheduler();
for (;;) {
}
}
int main_task(void)
{
int a; taskENTER_CRITICAL();
a = xTaskCreate( led_task, "led_task", 256, NULL, 6, NULL );
printf("a = %d\r\n", a);
xTaskCreate(anthor_task, "anthor_task", 256, NULL, 7, NULL);
printf("b = %d\r\n", a);
taskEXIT_CRITICAL();
while(1)
{
}
}
在以上的主函数中,main_task任务是创建成功的,串口等外设是正常使用,但freertos进入到main_task中,仅仅创建了创建main_task里面的anthor_task任务,led_task任务不清楚有没有被创建,但肯定是没发生调度,个人猜测是系统没发生调度,我的FreeRTOSConfig.h里面的配置都是配置好的,请问各位大佬,我可能是哪个移植环节出错了呢?
|
最佳答案
查看完整内容[请看2#楼]
这个问题我已经解决了,初始时的任务创建完其他任务不删除自身是不影响的,因为任务在发生调度之后根本没办法进入到最后的while(1)中
|