WinCE中的console重定向

来源:互联网 发布:人工智能研究的难点 编辑:程序博客网 时间:2024/05/18 03:01

欢迎加入Wince技术讨论群QQ#326444254


在WinCE中开发BSP的初期,可能我们还没有显示驱动,也没有键盘,鼠标,USB的驱动。这个时候,如果有一个基于Serial串口的console 会感到很幸福,呵呵。

将console重定向到串口比较简单,首先串口驱动必须是好的。然后需要在platform.reg中添加下面的配置:
[HKEY_LOCAL_MACHINE/Drivers/Console] "OutputTo"=dword:1"COMSpeed"=dword:9600 ; 38400
"OutputTo"的意思是重定向到哪个串口,比如要重定向到COM1,就设置为1。如果定义为0xffffffff表示输出到Debug端口,据说在WinCE6.0中有问题,具体没有试过。
"COMSpeed"是设置串口的波特率,这里要注意,9600的意思是0x9600,也就是38400,别搞错了。
下面的问题是,我们需要在WinCE启动以后自动运行cmd.exe,这样我们才能在串口看到提示符,如何实现呢?
这里采用的方法是使用Autolaunch.exe,Autolaunch是一个用于自动加载程序的程序,Autolaunch工程可以在网上搜索到,这里提供一个参考网址:
http://www.learningce.com/Downloads/796.aspx
它可以作为一个sub project被添加到WinCE6.0的工程当中,然后打开Autolaunch子工程里面的Autolaunch.reg,把cmd.exe添加进去就可以了,参考如下:
[HKEY_LOCAL_MACHINE/Init]"Depend99"=hex:0a,00,14,00,1e,00,32,00[HKEY_LOCAL_MACHINE/Init]"Launch99"="AutoLaunch.exe"
[HKEY_LOCAL_MACHINE/Startup]"Process1"="cmd""Process1Delay"=dword:000003E8
这样,当WinCE启动以后会自动运行Autolaunch.exe,然后Autolaunch会根据Autolaunch.reg中的配置启动cmd.exe,这样就可以在超级终端中看到命令行提示符了。
这个功能我是在WinCE6.0下面用的,感觉重定向到串口以后有一些问题:
1。输入字符没有回现,我必须在超级终端里面使用超级终端的回现功能,而不是WinCE中Console本身的回现。
2。命令太少,也就执行个cd, dir等命令,要是运行ipconfig这样的命令,就不行了,没有任何打印信息出来,感觉没有被执行。当然也运行不了其它的程序。
个人感觉,这个cmd.exe被重定向到串口以后,功能很有限,只能运行一些基本的命令。查找过他的源代码,在/WINCE600/private/winceos/utils/cmd2/下面。
我个人的看法是,最开始开发BSP的时候,这种方法或许会有一些用,当我们有了ethernet的驱动以后,我们就可以用telnet了,这个方法就可以放弃了。