4908|6

62

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

大家在遇到全局变量时都会去保证原子性吗? [复制链接]

从理论上来,所有的全局变量,大到一个结构体,小到一个bit,在操作时都应该使用某种方法,保证操作的原子性。但是在现实当中,看一下code,就会发现大量的全局变量就在毫无防范的使用。在嵌入式系统里面,不管用信号量,还是开关中断,代价好像都大了些,但是嵌入式操作系统一般又不会提供对整型变量原子操作的调用。想问一下各位大师,平时都是怎么做的?会在定义一个简单的全局flag的时候,去想办法保证原子性吗?

最新回复

本公司专业承接PCB印制线路板厂家。主要生产单,双以及多层线路板,盲孔,高频板等。最小孔径0.15mm,是小线距0.1mm. 表面处理:防氧化,镀金,镀锡.无铅工艺等等.质量保证,交货及时.最快24小时交货,月产量1.2万个平方米.本企业已经过ISO9000:2000/ISO14001质量休系/环保体系国际认证和UL认证.以及欧洲环保认证(ROHS认证).双赢互利是我们的一贯经营理念。我们期盼与业内朋友放眼世界、展望未来、携手并进、齐享高科技的结晶,共创辉煌! (24小时提供PCB相关技术支持!欢迎您与我们联系) 联系人:萧先生 深圳市奔强电路有限公司 www.szbq168.com TEL:0755-29606209    13798334626 MSN:xhg26270001pcb@hotmail.com SKYPE:LTDLFPCB      QQ:426617608 邮箱:BQPCB@VIP.163.COM   详情 回复 发表于 2007-11-8 10:19
点赞 关注

回复
举报

77

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
bit,char或者32位中对齐的int等应该是单指令操作的,可能天然具有原子性的吧.
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
LS我说的应该不对.能收回吗?
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

4
 
能不用就不用全局变量

要是用了就得小心...

不然那是非常痛苦的
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(中级)

5
 
嵌入式系统中,全局变量确实是一个讨厌的捣蛋鬼,故嵌入式系统要高度重视全局变量的使用:
1、全局变量最好只用于保存全局配置,只在初始化阶段修改,运行过程中只读。
2、不要用全局变量在线程(任务)间传递数据,而是使用操作系统提供的消息、邮箱等手段。
3、如果实在要使用全局变量,必须使用信号量保护,并且像软件版本一样严格管理全局变量。
4、如果是一个较大型的项目,全局变量应该由专人管理(一般就是总设计师),任何模块要经批准才能使用全局变量。
5、讲一个我自己的做法,也许可以参考一下。我写程序时,一般会定义一个ucpu_t(无符号)和scpu_t(有符号)类型,用于定义cpu可以用一条指令加载或存储的数据类型,当某全局变量只在一个线程中修改,其他线程只读的条件下,只要你不笨到把这个全局变量放到循环终止条件之中,一般不需要信号量保护。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

6
 
说提这个考虑是多线程或多核操作时,变量可能被别的改变,而引发不确定性。
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

7
 
本公司专业承接PCB印制线路板厂家。主要生产单,双以及多层线路板,盲孔,高频板等。最小孔径0.15mm,是小线距0.1mm. 表面处理:防氧化,镀金,镀锡.无铅工艺等等.质量保证,交货及时.最快24小时交货,月产量1.2万个平方米.本企业已经过ISO9000:2000/ISO14001质量休系/环保体系国际认证和UL认证.以及欧洲环保认证(ROHS认证).双赢互利是我们的一贯经营理念。我们期盼与业内朋友放眼世界、展望未来、携手并进、齐享高科技的结晶,共创辉煌! (24小时提供PCB相关技术支持!欢迎您与我们联系)
联系人:萧先生
深圳市奔强电路有限公司 www.szbq168.com
TEL:0755-29606209    13798334626
MSN:xhg26270001pcb@hotmail.com
SKYPE:LTDLFPCB      QQ:426617608
邮箱:BQPCB@VIP.163.COM
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表