Windows CE S3C440A LED驱动编码分析

      基于TQ2440硬件平台,该平台处理器S3C2440A,在这个平台当中存在四个LED,用于测试,显示其他硬件运行情况等。LED驱动是一个典型的I/O驱动,简单但健全,是学习Windows CE嵌入式平台的典型例子。首先我们来看看这个平台这这部分电路图吧!

    

     这四个LED分别加了1K偶的电阻,另一端接3.3V电压,接下来看看核心板的接口。

 

    从这里可以看住,这四个LED分别由GPB5、GPB6、GPB7和GPB8控制,都处于B组GPIO口。接下来介绍具体的编写过程,流驱动的固定接口如下;

    GIO_Deinit、GIO_Init、GIO_IOControl、GIO_Open、GIO_Close等。

   编写过程如下;

    虚拟地址映射——》设置GPB I/O口为输出口——》调用GIO_IOControl进行控制——》关闭驱动。这几个过程中最重要的步骤是第一步,如下列出其代码;

v_pIOPregs = (volatile S3C2440A_IOPORT_REG *)VirtualAlloc(0, sizeof(S3C2440A_IOPORT_REG), MEM_RESERVE, PAGE_NOACCESS);
    if (v_pIOPregs == NULL)
    {
        ERRORMSG(1,(TEXT("For IOPregs : VirtualAlloc faiGPIO!/r/n")));
        RetValue = FALSE;
    }
    else
    {
        if (!VirtualCopy((PVOID)v_pIOPregs, (PVOID)(S3C2440A_BASE_REG_PA_IOPORT >> 8), sizeof(S3C2440A_IOPORT_REG), PAGE_PHYSICAL | PAGE_READWRITE | PAGE_NOCACHE))
        {
            ERRORMSG(1,(TEXT("For IOPregs: VirtualCopy faiGPIO!/r/n")));
            RetValue = FALSE;
        }
    }

    if (!RetValue)
    {
        if (v_pIOPregs)
        {
            VirtualFree((PVOID) v_pIOPregs, 0, MEM_RELEASE);
        }

        v_pIOPregs = NULL;
    }

时间: 2024-10-04 01:04:06

Windows CE S3C440A LED驱动编码分析的相关文章

Windows CE S3C2440A显示驱动编码分析

在Windows CE下显示驱动是一个比较复杂的驱动,不仅仅设计到硬件的操作,还有上层驱动的GDI接口支持,有时候还需要支持DirectDraw等绘图接口.如果所有的编码工作都重新做一遍的话,难度还是挺大的,庆幸的是微软已经把大部分的接口都提供好了,DDI中包含的20个接口函数(以函数指针的方式表示),需要我们实现的也仅仅只有GPEEnableDriver.闲话不多说,我们先来看看S3C2440A_LCD_REG结构体吧,如下所示: typedef struct {     UINT32 LCD

Windows CE嵌入式导航系统研究(内核相关)

1.1 嵌入式车载导航系统的软件设计流程 嵌入式车载系统软件主要包括系统内核.驱动程序.应用程序三部分.设计的过程当中,我们采用瀑布模型进行设计,首先制定Windows CE5.0系统内核,再次编写相关设备驱动,最后编写或移植应用程序. 制定内核时,我们采用SunSaung2440 BSP(板级支持包)进行制定,同时提交组建保证系统支持网络通讯.文件系统.CAB包安装.汉语支持等功能.不仅如此,为方便系统应用程序开发,内核制定之后,我们发布相应的SDK. 图 5.1 软件设计流程 1.2 Win

基于S3C2410的Windows CE 5.0 BSP移植

基于S3C2410的Windows CE 5.0 BSP移植 摘要  嵌入式开发中一个重要的环节是板级支持包(BSP)的开发,实际开发过程更倾向于移植BSP而不是重新开发BSP.本文先介绍了samsung公司的S3C2410微处理器和嵌入式操作系统Windows CE 5.0 特性,分析BSP结构,在此基础上,通过bootloader, OAL, 触摸屏驱动的移植来具体探讨BSP移植过程.   1 引言 在当今后PC时代,嵌入式系统应用得越来越广泛,嵌入式产品充斥着许多领域,日常生活的手机,MP

[转]“我再也不用Windows CE或者嵌入式Windows XP了”

  "我再也不用Windows CE或者嵌入式Windows XP了" 原文:http://www.windowsembedded.com.cn/about_windows_embedded_1.asp 编者注: 指出常见的开发者为何使用嵌入式Windows的原因 摘录自Mike Hall的blog, 列举了他经常听到"我再也不用Windows CE或者嵌入式Windows XP了",奇怪吗?那么为何我将不会再使用Windows CE或者嵌入式Windows XP呢

Windows CE环境下无线网卡的自动安装

摘要:讨论了Windows CE环境下无线网卡的安装,并提出了一种在系统断电重启时自动安装无线网卡的解决方案.对Windows CE的系统定制.应用程序的开发及系统封装进行了介绍. 关键词:嵌入式系统 Windows CE 无线网卡 设备驱动 Windows CE是为多种嵌入式系统和产品而设计的紧凑.高效.可升级的操作系统,并特别为有限的硬件资源设计了多线程.多任务和完全优先的操作系统环境.在无线通信领域有很大的应用前景. 本文重点讨论了Windows CE环境下无线网卡的安装,并提出了一种在系

Windows CE S3C2440A开机启动滚动条编码分析

    和Windows XP一样,Windows CE任然可以绘制美妙的进度条,其实这个操作过程主要是对屏幕缓存进行操作.在S3C2440 CPU BSP代码中已经给出了这段缓冲的地址即IMAGE_FRAMEBUFFER_UA_BASE_eboot,这段缓冲支持的视频编码格式是RGB16,默认颜色为白色,在这个过程当中,并不像EVC一样提供了很多GDI绘图的函数,如绘制线条.矩形等,所有的操作都是从点开始的,由点绘制成线,由线绘制成矩形.可以发现,整个缓冲可以定义为一个二唯数据,每一个元素就是

Windows CE6.0 S3C2440A IIC驱动编码解析

S3C2440A RISC微处理器可以支持多主设备IIC总线串行接口.专用串行总线(SDA)和串行时钟线(SCL)承载总线主机设备和连接IIC总线的外围设备之间的信息.SDA和SCL线都是双向的.本章采用TQ2440开发板进行分析,我们先来看看其硬件电路图: 从这里可以看的出 TQ2440 采用的是AT24C02A IIC器件,其中I2CSCL和I2CSDA分别表示时钟线和数据线.接下来看看IIC寄存器的相关结构体: typedef struct _I2C_CONTEXT {     DWORD

Windows CE下驱动开发基础

这是我从1月6日开始主持天极网论坛嵌入式开发版以来第一次发表文章,加上以前琐碎的文章共计30篇.研究的越多就越感觉自己懂的太少,其实在驱动开发方面我还是个菜鸟,我是想再次抛砖引玉,让做驱动有N年经验的人奉献一点出来,让大家减少一些研究驱动源码而又缺少注释所带来的痛苦. 我想即使读者看过微软的关于驱动开发的培训教材和CE帮助文档中的驱动部分,头脑中仍然一片茫然.要想真正了解驱动程序必须结合一些驱动程序源码,在此我以串口驱动程序(COM16550)中初始化过程为线索简单讲一讲驱动开发的基础知识. W

Windows CE嵌入式导航系统研究(关键技术)

1.1 GPS全球定位技术 GPS(Global Position System):全球定位系统,它是美国从上世纪 70 年代开始研制,历时 20 年,耗资近 200 亿美元,于 1994 年全面建成的利用导航卫星进行测时和测距,具有在海.陆.空进行全方位实时三维导航与定位能力的新一代卫星导航与定位系统.如今,GPS 已经成为当今世界上最实用,也是应用最广泛的全球精密导航.指挥和调度系统. 1.1.1 GPS组成 GPS 系统主要包括有三大组成部分,即空间星座部分.地面控制部分和用户设备部分[6