原创 全局变量的保护

2006-10-30 23:59 6380 14 18 分类: MCU/ 嵌入式

全局变量的保护
各个任务之间通过全局变量交换信息时,如果其
中某一任务在引用同一个全局变量期间,该变量在另
一任务中被重新赋值,那么就可能发生一些意想不到
的事情。一般我们采用这样的方法解决可能的问题。
首先在任务中定义若干个局部变量;之后将相应的全
局变量赋值这些局部变量。任务随后引用的是这些局
部变量,而不是全局变量,这样就避免了问题的发生。
具体程序设计流程如下所示:
Void Task{
int Local_ var;
UGL_ FOREVER{
SemTake(semStart,WAIT_FOREVER);
Local_var= Globle_var:
Subcall_1(Local_var);
Subcall_2(Local_var);


......
}/* UGL_FOREV ER */


对于数组等全局变量采用固定数组,会有利于防
止数组超界。

PARTNER CONTENT

文章评论4条评论)

登录后参与讨论

用户170333 2008-9-22 18:29

必须要使用信号量保护

用户16649 2006-12-28 10:04

我在编程时遇到这样一个关于临界资源访问的问题不知道在如何解决才好,版主有何建议?

问题是这样的:

一个全局的临界资源,程序中有n个任务要访问它,其中只有1个任务写资源,其他n-1个任务读这个资源。通常情况下,只要在每个任务中对资源读写操作使用互斥信号量保护就可以了,但这样会造成n-1个读资源的任务之间由于要获取信号量产生阻塞现象,而我不希望读任务之间存在这种竞争现象,仅希望所有的读操作和写操作之间存在竞争现象。

不知道如何实现??(

                                

shenyandetongxing_551209819 2006-12-7 12:19

是的。不过最好还是在编程中注意对全局变量的赋值。

用户977049 2006-12-7 09:35

请问将全局变量赋给局部变量后,这时应该释放信号量吧?即:

对于全局变量的访问:

semTake(semStart, WAIT_FOREVER);

Local_var = Globle_var;

semGive(semStart);

....

对于全局变量的更新:

......

semTake(semStart, WAIT_FOREVER);

Globle_var = Local_var;

semGive(semStart);

是这样吗,版主?

相关推荐阅读
shenyandetongxing_551209819 2010-02-25 21:34
MyEclipse 建立第一个工程
1.打开MyEclipse--新建个工程File--New--Project--WebProject 2.在ProjectName中输入hello--Finish 3.然后为工程添加struts框架,...
shenyandetongxing_551209819 2010-02-06 22:42
人力资源管理软件(技术储备)
JAVA的SSH开发框架Struts、Spring、Hibernate在各层的作用1、Struts 负责 web层ActionFormBean 接收网页中表单提交的数据,然后通过Action 进行处理...
shenyandetongxing_551209819 2010-02-06 02:51
个人资源管理软件(需求)
先提提需求吧,这是重中之重,这不是简单就能完成的,需要不断的修改和完善。既然是个人资源管理就要首先搞清楚个人资源包括哪些部分:1  人脉资源,也就是我们常说的关系,人是社会型动物就不可能生活在真空里,...
shenyandetongxing_551209819 2010-02-06 02:33
HR软件设计开始(关注个人资源管理与分析)
最近对HR很感兴趣,上网搜了一下,HR的软件也不少,其中风头正劲的用友公司做的挺多,但是看了看都是针对企业级的。但自己平常的工作和进步帮助不大。想整一个关于人力资源、人际关系进行总结、分析的软件,让自...
shenyandetongxing_551209819 2010-02-06 02:30
对HR和B/S模式的东西感兴趣
最近对HR很感兴趣,上网搜了一下,HR的软件也不少,其中风头正劲的用友公司做的挺多,但是看了看都是针对企业级的。但自己平常的工作和进步帮助不大。想整一个关于人力资源、人际关系进行总结、分析的软件,让自...
shenyandetongxing_551209819 2008-10-01 16:18
由于工作原因,改行!!
已经好久没有上我的博客了,还有很多朋友支持我,很欣慰:)现在由于工作原因很长一段时间内将挥泪告别嵌入式。现在如果有做PKI或PMI的跟我一起交流啊:)...
EE直播间
更多
我要评论
4
14
关闭 站长推荐上一条 /3 下一条