OpenEdv-开源电子网

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

UCOSIII信号量的视频中遇到一个疑问,求解

[复制链接]

5

主题

8

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2016-3-15
在线时间
8 小时
发表于 2017-5-2 10:38:40 | 显示全部楼层 |阅读模式
2金钱
void task1_task(void *p_arg)
{
OS_ERR err;
u8 task1_str[]="First task Running!";
while(1)
{
  printf("\r\n任务1:\r\n");
  LCD_Fill(0,110,239,319,CYAN);
  OSSemPend(&MY_SEM,0,OS_OPT_PEND_BLOCKING,0,&err);
  memcpy(share_resource,task1_str,sizeof(task1_str));
  delay_ms(300);
  printf("%s\r\n",share_resource);
  OSSemPost (&MY_SEM,OS_OPT_POST_1,&err);   
  LED0 = ~LED0;
  OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_PERIODIC,&err);   
}
}

task1这个函数中在请求到信号量后,当执行到delay_ms(300);时会不会引发调度函数啊?后面还有个任务二


void task2_task(void *p_arg)
{
OS_ERR err;
u8 task2_str[]="Second task Running!";
while(1)
{
  printf("\r\n任务2:\r\n");
  LCD_Fill(0,110,239,319,BROWN);
  OSSemPend(&MY_SEM,0,OS_OPT_PEND_BLOCKING,0,&err);
  memcpy(share_resource,task2_str,sizeof(task2_str));
  delay_ms(300);
  printf("%s\r\n",share_resource);
  OSSemPost (&MY_SEM,OS_OPT_POST_1,&err);   
  LED1 = ~LED1;
  OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_PERIODIC,&err);  
}
}




正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-5-2 10:45:59 | 显示全部楼层
回复

使用道具 举报

5

主题

8

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2016-3-15
在线时间
8 小时
 楼主| 发表于 2017-5-2 12:28:02 | 显示全部楼层

那实验现象里面为什么没有在执行task1中的printf("%s\r\n",share_resource);之前执行task2中的printf("\r\n任务2:\r\n");这个函数呢???求解
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2017-5-2 12:37:17 | 显示全部楼层
jy123456 发表于 2017-5-2 12:28
那实验现象里面为什么没有在执行task1中的printf("%s\r\n",share_resource);之前执行task2中的printf("\r ...

因为获取信号量失败了
我有故事,你有酒吗
回复

使用道具 举报

5

主题

8

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2016-3-15
在线时间
8 小时
 楼主| 发表于 2017-5-2 13:26:44 | 显示全部楼层
来俩不甜的 发表于 2017-5-2 12:37
因为获取信号量失败了

printf("\r\n任务2:\r\n");在任务2中不是在获取任务量函数之前就执行了吗?求解,才刚入门

printf("\r\n任务2:\r\n");
LCD_Fill(0,110,239,319,BROWN);
OSSemPend(&MY_SEM,0,OS_OPT_PEND_BLOCKING,0,&err);
回复

使用道具 举报

0

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2016-7-10
在线时间
23 小时
发表于 2019-2-22 12:06:00 | 显示全部楼层
本帖最后由 丁柏文 于 2019-8-5 11:13 编辑

123456
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-23 18:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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