6137|15

76

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

C#如何在WINCE系统下控制外部IO [复制链接]

我用的是三星2440芯片,有人说用VirtualAlloc()与VirtualCopy()函数实现,我查了很多资料不知道怎么写好,比如我的IO口是GB5,GB6,GB7,GB8下面是他们的相关地址:
PORT B CONTROL REGISTERS (GPBCON, GPBDAT, GPBUP)      
GPBCON             0x56000010           
GPBDAT            0x56000014           
GPBUP             0x56000018         
其中GB5,GB6,GB7,GB8所在位为:
GPB8                [17:16]         
GPB7                [15:14]      
GPB6                [13:12]        
GPB5                [11:10]  
如用VirtualAlloc()与VirtualCopy()函数实现?
此帖出自WindowsCE论坛

最新回复

C#不用驱动可直接操纵2440所有硬件。  详情 回复 发表于 2010-2-7 00:15
点赞 关注
 

回复
举报

69

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
没有兄弟知道吗?
此帖出自WindowsCE论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
帮顶,没玩过三星的
此帖出自WindowsCE论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

4
 
难道这个没人做过?
此帖出自WindowsCE论坛
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

5
 
郁闷 我在线等高手帮忙!
此帖出自WindowsCE论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

6
 
周末了 ,高手都不在吗?
此帖出自WindowsCE论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

7
 
是的,在 WinCE 5.0 中,地址映射后,可以直接读写 IO ;

不过不知道能不能在 C# 中使用。


一般都放到驱动中读写硬件。
此帖出自WindowsCE论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

8
 
你想在汇编里面去写呢?还是在驱动里面去写?是在stepldr/eboot里写还是在driver里面写?

EBOOT里面:
    volatile S3C2443_IOPORT_REG *s2443IOP = (S3C2443_IOPORT_REG *)(S3C2443_BASE_REG_PA_IOPORT);
              s2443IOP->GPFDAT=(s2443IOP->GPFDAT&~(0x1f<<3))|(0<<3)|(0<<4)|(0<<5)|(0<<6)|(0<<7);        //D4~0


driver里面:
        v_pIOPregs = (volatile S3C2450_IOPORT_REG *)VirtualAlloc(0, sizeof(S3C2450_IOPORT_REG), MEM_RESERVE, PAGE_NOACCESS);
                if (!VirtualCopy((PVOID)v_pIOPregs, (PVOID)(S3C2450_BASE_REG_PA_IOPORT >> 8), sizeof(S3C2450_IOPORT_REG), PAGE_PHYSICAL | PAGE_READWRITE | PAGE_NOCACHE))
{。、。}
                                   v_pIOPregs->GPCDAT  &= ~(0x1 << 7);


不知道看明白了没有?
此帖出自WindowsCE论坛
 
 
 

回复

85

帖子

1

TA的资源

一粒金砂(初级)

9
 
C#中应该不行。
可以用C++写成DLL,再用C#调用 
此帖出自WindowsCE论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 8 楼 feishanm 的回复:
C#中应该不行。
可以用C++写成DLL,再用C#调用 


恩,之前我也是这样做的
此帖出自WindowsCE论坛
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

11
 
c#应该可以的 通过虚拟地址衍射.我就是不知道怎么实现..
此帖出自WindowsCE论坛
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

12
 
feishanm的想法也是可以 就是有点麻烦 我evc没怎么用过..
此帖出自WindowsCE论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

13
 
先用PLATFORM BULIDER或EVC 写一个IO流驱动程序,竖最好做成系统自动加载的.然后在VS2005 C#程序调用如下函数就可访问到IO了:
[DllImport("coredll.dll")]
        private static extern IntPtr CreateFile(
            String lpFileName,                        //file   name   
            UInt32 dwDesiredAccess,                   //access mode   
            UInt32 dwShareMode,                       //share  mode   
            IntPtr lpSecurityAttributes,              //Security  Attributes
            UInt32 dwCreationDisposition,             //how   to  create   
            UInt32 dwFlagsAndAttributes,              //file   attributes   
            IntPtr hTemplateFile                      //handle   to   template   file   
        );

        [DllImport("coredll.dll")]
        public static extern bool ReadFile(
            System.IntPtr h_comm,      
            int[] text,
            int length,
            ref   int length2,
            IntPtr overlap
        );   

        [DllImport("coredll.dll")]
        public static extern bool WriteFile(
            System.IntPtr h_comm,  
            ref Byte WTtext,//Byte[] text,
            int length,
            ref int length2,
            IntPtr overlap
        );
如楼主还不清楚可留下邮箱,我发一个给你.
   
此帖出自WindowsCE论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

14
 
TO:andyhere
IO流驱动程序程序能发给我看下吗?,还有系统自动加载是怎么实现的,兄弟我的邮箱是pengxiyin@hotmail.com
此帖出自WindowsCE论坛
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

15
 
已經傳到你的郵箱.
此帖出自WindowsCE论坛
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

16
 
C#不用驱动可直接操纵2440所有硬件。
此帖出自WindowsCE论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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