6791|18

82

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何让两个驱动共用一个全局变量 [复制链接]


我想在两个驱动里调用一个全局变量,并且 一个驱动调用这个变量并改变它,然后另外一个程序的这个变量也随之改变,不知道能做到这样吗??

最新回复

你好,能告诉我下两个驱动如何共用一个全局变量吗?还是一头雾水- -  详情 回复 发表于 2009-11-3 15:45
点赞 关注

回复
举报

83

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
可以将那个全局变量也包成一个dll,然后 export几个操作这些全局变量的function,这样的话可以加入信号量来保护这些变量,比如同步问题。
good luck!!!
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
那有没有简单些的办法啊
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

4
 
应该不难吧?没人会?
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

5
 
用同步线程,可以实现~
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

6
 
使用头文件共享,

BSP有例子的。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

7
 
gooogman 还是很有经验的
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

8
 
学习一下
 
 
 

回复

101

帖子

0

TA的资源

一粒金砂(初级)

9
 
这种情况大多数的系统中, 应是可以用别的机制来避免, 所以建议 lz 将使用的情境说出来, 或许大家可以想个更好的方法.

1. 用 Driver Global 的方式, 也就是 5F 所建议的, 但在 wince5.0 的 bsp 上已经快绝迹了.

2. CreateFileMapping + MapViewOfFile.

3. 若是在同一 process 内 (before wince5.0=>device.exe, after wince6.0=>kernel mode), 则想个办法取得其位址则可直接使用.

Paul, Chao @ Techware
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

10
 
可以在RAM区共同访问同一块内存地址,如同BSP中的ARGS,防止访问冲突等问题可以加临界段
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

11
 
多谢paul_chao大侠的详细解答。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

12
 
请问gooogleman那个bsp的例子在哪,或是说如何在头文件共享?

谢谢!
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

13
 
顶一个!
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

14
 
共享内存

去考虑Windows下进程间数据共享的东东吧,这比较基础。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

15
 
http://blog.eeworld.net/PerfectToday/archive/2009/08/19/4462720.aspx
通过DLL实现数据共享

实现

第一步:在DLL的.CPP文件中定义共享数据段

#pragma data_seg("SHARED_OPCDATASET")

/* volatile */ OPCDATASET  m_gOPCDATASET[OPCDATASET_MAX_LEN] = {0};

#pragma data_seg()

#pragma comment(linker,"/SECTION:SHARED_OPCDATASET,RWS")




第二步:将共享段变量导出

extern  "C"

{

//导出共享段变量

OPCDATASET_API OPCDATASET extern m_gOPCDATASET[OPCDATASET_MAX_LEN];

}

第三步:在不同进程中调用

#include "OPCDataSet.h"

#pragma comment(lib, "COPCDataSet.lib")
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

16
 
路过学习,顺便帮顶!
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

17
 
学习,很有用啊。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

18
 
解决了,方法有点怪。就是把一个闲置的的寄存当标志。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

19
 
你好,能告诉我下两个驱动如何共用一个全局变量吗?还是一头雾水- -
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表