//=====================================================================
//TITLE:
// 自己动手写TCC7901的GPIO驱动
//AUTHOR:
// norains
//DATE:
// Monday 12-July-2010
//Environment:
// Windows CE 5.0 + TCC7901
//=====================================================================
如果你使用的是WinCE,然后又涉及到GPIO的操作,你会很尴尬地发现,WinCE根本就没有针对于GPIO的接口。如果你想采用标准流驱动的GPIO口,很大的可能必须你自己丰衣足食,运气好一点的,或许你所使用的BSP就附带有其相应驱动。而对于TCC7901而言,很遗憾,属于前者。
不过幸运的是,TCC7901对于寄存器的操作还算方便,所以写起驱动来,也并不是一件困难的事情。
既然不困难,那么我们就自己动手,将TCC7901的驱动来完善吧!
这篇文章假设朋友们已经对WinCE的流驱动结构有一定的了解,所以在此不对驱动的结构来进行解说,而是直奔主题。
因为对于TCC7901的GPIO驱动来说,主要功能无非是设置或获取工作方式以及相应的数据,故我们对于控制码的定义可以定义为如下五种:
控制码有了,那么我们的控制函数就可以简单的如此:
该函数用到了一些常量,其实和控制码一样,也是枚举类型:
我们先回头,看看IOControl的所调用的GPIO_SetFuncGPIO函数:
不知道大家看了,是不是觉得有点恐怖,一大版的case。但其实这也没办法,因为这些GPIO口的功能设置,每个之间基本上不存在相似性,所以只能通过case这种土办法。
虽然在这函数中,我们看到了函数的调用,但其实际上却是一堆宏定义而已:
这些宏定义实际上都只是针对于TCC7901寄存器的操作,这里不再对寄存器操作的原理做叙述,有兴趣的朋友可以查看我的另一篇文章:《应用程序中读写TCC7901的寄存器》(http://blog.csdn.net/norains/archive/2010/07/12/5729377.aspx)
对于别的所调用的函数,代码也并不复杂:
既然是驱动,那肯定是少不了注册表了:
[HKEY_LOCAL_MACHINE/Drivers/Builtin/Pio]
"Prefix"="PIO"
"Dll"="gpio.dll"
"Order"=dword:0
"Index"=dword:1
当我们编译好系统,将GPIO的驱动正确加载之后,我们就可以非常简单地通过CreateFile来对GPIO进行相应的操作啦!
分享到:
相关推荐
TCC7901是Telechip走向高清市场的一个中间过度产品。对多媒体支持是telechip的特点。
韩国telechips公司TCC7901的BSP,做相关平台可以学习一下哦~
Telechips Windows® CE BSP Telechips BSP (Board Support Package) for TCC79x
CC8900 TCC8901 TCC8902 平台下的 GPS 驱动用于CE6.0
tcc8900 tcc8900 tcc8900 tcc8900 tcc8900 tcc8900 tcc8900 tcc8900
基于TCC8801的嵌入式Linux ALSA音频驱动设计与研究.pdf
TCC8900 TCC8901 TCC8902 平台下的 Camera 驱动用于CE6.0,可以支持如下Camera方案:MT9D112 TVP5150A TVP5150A_PAL TW9900 TW9900_PAL
5.将simsun.tcc文件传到/usr/share/fonts/truetype/simsun/目录中 6.cd simsun 7.执行 mkfontscale, 生成了fonts.scale文件 8.执行 mkfontdir, 生成了fonts.dir文件 9.chkfontpath --add /usr/share/fonts/...
支付宝TCC模型支付宝TCC模型支付宝TCC模型支付宝TCC模型支付宝TCC模型
TCC实现分布式事物,实现多数据源,多应用事物统一管理。代码过多,需经验丰富
DVB_RCS TCC 编解码源码,非常难得
车载多媒体导航用,汽车级SOC。 Android支持:4.4~6.0 特性:10秒快速启动,快速倒车视频显示,集成噪声与回音消除算法
TCC8900 DATASHEET TCC8900 DATASHEET
TCC89XX TCC8900_CHIP_SPEC_V0.01_B_Preliminary.pdf
Telechips TCC8803 Cortex-A8
TCC-Transaction分布式事务DEMO,基于Mysql数据库的事务,包括分布式提交和回滚,例子完成,可以正常跑,基于Maven构建的项目
telechips tcc8900芯片手册,全
TCC8801开发板电路图,需要进一步支持请发邮件给我。
TCC8900原厂底板原理图_TCC89_91_92XX_DEMO_V1.2_RELEASE.pdf telechips TCC8900 demo board 原版原理图
本文档的内容主要分为以下四个部分: ...2、从 TCC 的业务模型与并发控制分享如何设计一个 TCC 接口,并且适配 TCC 模型; 3、如何控制异常; 4、性能优化,使得 TCC 模式能够满足更高的业务需求。