Windows CE S3C440A LED驱动编码分析

简介:       基于TQ2440硬件平台,该平台处理器S3C2440A,在这个平台当中存在四个LED,用于测试,显示其他硬件运行情况等。LED驱动是一个典型的I/O驱动,简单但健全,是学习Windows CE嵌入式平台的典型例子。

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

     image

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

image 

    从这里可以看住,这四个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;
    }

目录
相关文章
|
5月前
|
自然语言处理 Linux Windows
Cmder - 想让你的windows下 cmd 和 SecureCRT 操作 Linux 一样帅吗 附字符集编码 chcp 936、chcp 65001
Cmder - 想让你的windows下 cmd 和 SecureCRT 操作 Linux 一样帅吗 附字符集编码 chcp 936、chcp 65001
58 1
|
5月前
|
Windows
【Azure 环境】在Windows环境中抓取网络包(netsh trace)后,如何转换为Wireshark格式以便进行分析
【Azure 环境】在Windows环境中抓取网络包(netsh trace)后,如何转换为Wireshark格式以便进行分析
110 0
|
5月前
|
Windows
Windows 映射网络驱动器及删除-此网格连接不存在
Windows 映射网络驱动器及删除-此网格连接不存在
480 0
|
6月前
|
安全 测试技术 Windows
LabVIEW版本、硬件驱动和Windows版本之间兼容性
LabVIEW版本、硬件驱动和Windows版本之间兼容性
142 2
|
7月前
|
网络安全 C++ Windows
【Windows驱动开发】(主机)VS2017+(虚拟机)win10系统------双机调试
【Windows驱动开发】(主机)VS2017+(虚拟机)win10系统------双机调试
|
7月前
|
Windows
【Windows驱动开发】注册表的基本操作(创建、打开、修改、读取、枚举)(附源码)
【Windows驱动开发】注册表的基本操作(创建、打开、修改、读取、枚举)(附源码)
|
7月前
|
Windows
【Windows内核驱动函数(1)】IoCreateSymbolicLink()-----创建符号链接函数
【Windows内核驱动函数(1)】IoCreateSymbolicLink()-----创建符号链接函数
|
7月前
|
应用服务中间件 Windows
Windows下CMD和Tomcat设置编码为UTF-8
解决CMD和Tomcat中文乱码问题:通过修改注册表永久设置CMD编码为UTF-8,路径 `\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe`,修改CodePage为65001。Tomcat日志乱码时,在 `\HKEY_CURRENT_USER\Console` 下新建Tomcat项,添加DWORD值PageCode,值设为65001。
261 2
|
7月前
|
机器学习/深度学习 前端开发 Linux
技术心得:分析Windows的死亡蓝屏(BSOD)机制
技术心得:分析Windows的死亡蓝屏(BSOD)机制
|
8月前
|
存储 安全 数据安全/隐私保护
【Windows manage-bde 命令】BitLocker 2.0:一步步解锁您的加密驱动器
【Windows manage-bde 命令】BitLocker 2.0:一步步解锁您的加密驱动器
2563 0