版块
论坛
喜欢
话题
应用
搜索
登录
注册
chang_nicolas的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=89960
Xscal 串口驱动结构体问题
在PPC2003系统的串口驱动中,我们把三个UART的驱动都放在同一个dll中,所以在打开串口时,就会调用open函数,在这函数里面是通过它的IoBase来区分不同的Uart的,例如 if(pHWHead->IOBase == STUART_BASE_U_VIRTUAL) ...
全文
回复
(
11
)
2005-01-24 10:37
来自版块 -
Wince 程序开发
◆
◆
表情
告诉我的粉丝
提 交
cn_silicon
:
晕倒,这个问题你仔细看看COM_OPEN就知道了,仔细看看吧
(2008-01-17 15:14)
回复
blackholeII
:
是通过三个类封状起来的,比如:FFUART,BTUART.STUART,不过生成一个.DLL,在驱动里有明确规定这三个串口对应哪个COM
(2008-01-16 14:43)
回复
wwei_wang
:
我觉得它是有三个副本,可是有一点不明白,open时的pHWHead指针是哪个副本的指针,从哪里获得这个指针的地址呢,它指向哪个副本啊? 我再补充一下:)) (1)驱动起来之后,创建了三个驱动实例,同时创建了三个数据区副本分别用来保存对应设备的配置信息,但代码区是共享的。...
(2005-01-25 16:38)
回复
wxl_50685330
:
每调用LOADLIBARY就会创建一个副本,从而隶属于不同的实例
(2005-01-25 14:30)
回复
chang_nicolas
:
我觉得它是有三个副本,可是有一点不明白,open时的pHWHead指针是哪个副本的指针,从哪里获得这个指针的地址呢,它指向哪个副本啊?
(2005-01-25 13:56)
回复
wxl_50685330
:
你的XXX_OPEN函数需要返回不同的值给上层,用以区分不同的设备实例。那个pHWHead应该有三个副本。DLL的数据区默认被调用的所有进程各自创建一个副本,当然,也可以让所有的进程共享一个。
(2005-01-25 13:44)
回复
wwei_wang
:
对啊,Application调用时就是根据COM1这个来打开的,可是在驱动的open函数里面,它怎么知道上层是打开的COM1呢,而不是COM2或其他?如果假设它可以靠index来判别 例如if(index==1) {//打开com1} if(index==2) {//打开co...
(2005-01-25 08:39)
回复
chang_nicolas
:
对啊,Application调用时就是根据COM1这个来打开的,可是在驱动的open函数里面,它怎么知道上层是打开的COM1呢,而不是COM2或其他?如果假设它可以靠index来判别 例如if(index==1) {//打开com1} if(index==2) {//打开co...
(2005-01-24 16:53)
回复
wwei_wang
:
这个知道,不过我的意思是,IoBase的值是从注册表里读出来的,它这样连续三次init后,iobase的值应该是最后一次init后读出的值,例如是STUART吧,那么在调用open时,pHWHead->IOBase 就会是一直等于 STUART_BASE_U_VIRTUAL...
(2005-01-24 16:41)
回复
chang_nicolas
:
这个知道,不过我的意思是,IoBase的值是从注册表里读出来的,它这样连续三次init后,iobase的值应该是最后一次init后读出的值,例如是STUART吧,那么在调用open时,pHWHead->IOBase 就会是一直等于 STUART_BASE_U_VIRTUAL...
(2005-01-24 14:19)
回复
1
2
下一页 »
chang_nicolas
加关注
写私信
0
关注
0
粉丝
130
帖子
返回顶部