OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3860|回复: 5

请教printf时 freertos抢占问题

[复制链接]

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2019-8-26
在线时间
16 小时
发表于 2022-3-12 16:58:09 | 显示全部楼层 |阅读模式
10金钱
1、抢占配置位设为1------#define configUSE_PREEMPTION                     1
2、建立两个任务,优先级分别为osPriorityNormal和osPriorityAboveNormal
        osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 128);
        defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
        osThreadDef(keyTask, keyScan, osPriorityAboveNormal, 0, 128);
        keyTaskHandle = osThreadCreate(osThread(keyTask), NULL);

3、任务函数中只打印一些数据
void StartDefaultTask(void const * argument)
{
  for(;;)
  {
      printf("StartDefaultTask\r\n");
  }
}

void keyScan(void const * argument)
{
  for(;;)
  {
      printf("keyScanTask\r\n");
      osDelay(1);
  }
}


keyScanTask
StartDefaultTask
StartDefaultTask
StartDefaultTask
StartDefaultTask
StartDefaultTask
StartDefaultTask
StartDefaultTask
StartDefaultTask
StartDefaultTask
StartDefaultTask
StartDefaultTask


问题:为什么keyScan任务只执行了一次,keyScan任务优先级高,在时间片轮转时,应该抢占StartDefaultTask任务吧?

最佳答案

查看完整内容[请看2#楼]

结帖,printf本身的问题,自己写了个就OK了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2019-8-26
在线时间
16 小时
 楼主| 发表于 2022-3-12 16:58:10 | 显示全部楼层
结帖,printf本身的问题,自己写了个就OK了。
回复

使用道具 举报

3

主题

312

帖子

0

精华

高级会员

Rank: 4

积分
907
金钱
907
注册时间
2011-10-19
在线时间
196 小时
发表于 2022-3-12 20:18:43 | 显示全部楼层
输出太快了,两个线程都加多点等待才能测试
回复

使用道具 举报

2

主题

141

帖子

0

精华

高级会员

Rank: 4

积分
673
金钱
673
注册时间
2020-11-21
在线时间
67 小时
发表于 2022-3-14 16:26:58 | 显示全部楼层
从初始化代码来看,两个任务的优先级好像是一样的。在第一个任务添加上延时,两个任务就可以相互切换了。
回复

使用道具 举报

2

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
372
金钱
372
注册时间
2018-9-14
在线时间
51 小时
发表于 2022-3-14 17:57:07 | 显示全部楼层
楼主试试在 printf("StartDefaultTask\r\n"); 加上   osDelay(1);  
回复

使用道具 举报

2

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
372
金钱
372
注册时间
2018-9-14
在线时间
51 小时
发表于 2022-3-14 17:58:04 | 显示全部楼层
printf("StartDefaultTask\r\n");  后边加
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 18:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表