高级会员

- 积分
- 658
- 金钱
- 658
- 注册时间
- 2013-11-22
- 在线时间
- 131 小时
|

楼主 |
发表于 2016-12-20 10:04:21
|
显示全部楼层
本帖最后由 zhp 于 2016-12-20 10:07 编辑
比如有2个共享资源
u32 global_var1, global_var2;
普通任务想读这两个全局变量;
普通任务{
while(1)
{
func_1();
//任务进入临界区,读取全局变量 global_var1,global_var2;不允许写全局变量 global_var1,global_var2
func_2();
//任务退出临界区
func_3();
delay();
}
}
中断函数1
{
func_a();
//进入临界区,写全局变量 global_var1
func_b();
//退出临界区
func_c();
}
中断函数2
{
func_q();
//进入临界区,写全局变量 global_var2
func_w();
//退出临界区
func_e();
}
这个用信号量可以做吗?
|
|