//=====================================================================
//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
代替AWCC驱动的TCC软件
基于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 原版原理图