我刚入门,对c和wince都不熟,想在wince 5.0 下编一个控制IO口灯循环闪烁的程序,各位大侠能否赐教?
我的平台是ep9315开发板,GPIO的地址是0x8084_00xx。我只知道:先编写一个dll文件能访问IO口,然后在应用程序中调用dll文件来实现。三星2440上的程序或linux下的程序有多大的参考价值?
请大家给些个意见。
1。 如果是full kernel模式的话,直接应用程序中像单片机一样操作0x8084_00xx就可以了
如果是非full kernel mode的话,通过virtualalloc/virtualcopy后直接操作0x8084_00xx也可以
2。 如果你的io灯不带锁存功能的话,就要你循环的点灯了,类似于数码馆的操作
ep9315开发板开发板环境下,可以直接往端口赋值的。
如:
0x8084_00xx=0x01;
可以写GPIO的驱动 应用程序调用 也可以直接在驱动中写LED程序,应用程序调用 这个问题 以前讨论过,楼主查查以前的帖子吧
WinCE5.0 下不需要写驱动,直接在应用层 映射成虚地址来操作即可。
确实如此,弄一个驱动,在IOcontrol函数里面,对各个LED灯进行控制...生成一个DLL后,加入到NK中,再再一个小应用程序,来调用DLL的流接口...
谢谢大家! 第一次提问就有这多人帮忙!
总结了一下,好像有这么几种方法,我明天去试试。
1. 如果是full kernel模式的话,直接应用程序中像单片机一样操作0x8084_00xx就可以了
如果是非full kernel mode的话,通过virtualalloc/virtualcopy后直接操作0x8084_00xx也可以
2. 如果你的io灯不带锁存功能的话,就要你循环的点灯了,类似于数码馆的操作
3. 写个GPIO的流驱动,用EVC或C#调用即可
4. 弄一个驱动,在IOcontrol函数里面,对各个LED灯进行控制...生成一个DLL后,加入到NK中,再再一个小应用程序,来调用DLL的流接口
方法1实现了,方法3.4明天再试试。
哎 以前没编过程序,头疼啊
恩。方法1可以,我以前也操作过GPIO
http://blog.eeworld.net/joyzml/archive/2009/12/10/4977533.aspx
大多数开发商做的BSP的驱动很相似,因为大都是EOM给的,然后自己稍微改一下,所以,你的应该也不例外,参考一下别的BSP,改改地址就差不多!!
3 最通用 不止可以控制LED IO口都是可以控制的 麻烦这一次 以后就轻松了,呵呵
cfanlwn 说的好。
控制LED不是目的,灵活控制io和流驱动才是目的
多谢大家,我继续试试