WindowsCE.NET CEPC 的建立

来源:互联网 发布:怎么找淘宝大v合作 编辑:程序博客网 时间:2024/06/06 06:49

来源:http://www.51emb.com/article/view.asp?id=767

WindowsCE.NET继承了Windows操作系统家族的许多优良特性,如良好的用户界面以及它对x86架构PC和工控机的支持也非常完善,因此,基于WindowsCE.NET自带的CEPC平台模板,几乎可以搭建出任何x86平台上可以运行的WindowsCE.NET的映象文件NK.bin。 0)CEPC建立的基本步骤: WindowsCE.NET Platform Builder的Help文档中对于CEPC的搭建过程的描述,可以轻而易举的build出一个NK.bin文件。如果需要实时调试,建议build一个debug版本的NK.bin。这里不在对其详细过程予以赘述,只大致写一下它的基本过程: 1)根据CEPC的模板(New Platform),建立一个CEPC的映象文件NK.bin 2)建立一个CEPC的启动软盘 3)配置PB Host主机与目标机的连接方式,建议使用Ethernet,并准备一根经过跳线的双机对联电缆。当然,前提是你的target PC和Host PC都要有一块网卡,而且target PC上的网卡最好是NE2000 Compatible ISA网卡(当然这种网卡现在几乎绝迹了!),或者使用一块Realtek 8029/8139的PCI网卡(PCI网卡可以由bios自动枚举)。 【Tips】最好使用Realtek8029 PCI网卡。尽管WindowsCE.NET帮助中推荐是NE2000或者8139,但是,我的经验是8139在CEPC下载中经常会出现不能响应的问题。但是8029 always OK! 至此,WindowsCE的帮助文档中关于搭建CEPC的帮助基本上结束了。下面就要进行Connect/Download的过程了。 1)CEPC启动软盘的定制 其实download是否能够成功的关键在于CEPC Boot Floppy Disk的制作,CEPC的启动软盘基本制作可以参考WindowsCE Platform Builder的帮助文件。 而这张软盘上有两个文件对于下载是否成功非常重要: config.sys和autoexec.bat 1.1)config.sys的说明和修改 config.sys是用来配置CEPC的启动菜单的,下面的格式是它的典型 [menu] menuitem=CEPC_LOCAL_1024, Boot CE/PC RES:1024x768 (local nk.bin) menuitem=CEPC_LOCAL_800, Boot CE/PC RES:800x600 (local nk.bin) menuitem=CEPC_USB_800, Boot CE/PC RES:800x600 (local nk.bin in usb disk) menuitem=CEPC_1024, Boot CE/PC (ether via eboot.bin with /L:1024x768x8) menuitem=CEPC_800, Boot CE/PC (ether via eboot.bin with /L:800x600x16) menuitem=CEPC_SERIAL, Boot CE/PC (serial via sboot.bin) menuitem=VESATEST, Run VesaTest program and list valid display modes menuitem=CLEAN, Clean Boot (no commands) menudefault=CEPC_LOCAL_800x600,2 menucolor=7,1 [CEPC_LOCAL_1024] [CEPC_LOCAL_800] [CEPC_USB_800] [CEPC_1024] [CEPC_800] [CEPC_SERIAL] [VESATEST] [CLEAN] [COMMON] buffers=10,0 files=30 break=on lastdrive=Z dos=high,umb device=himem.sys /testmem:OFF 对Config.sys文件的简要说明: [menu]是启动之后显示出来的可选条目,上面设置显示出来的就是如下的菜单: 1. Boot CE/PC RES:1024x768 (local nk.bin) 2. Boot CE/PC RES:800x600 (local nk.bin) ……(以此类推) [CEPC_LOCAL_1024]是对应第一条菜单项的标号,通过它,可以执行Autoexec.bat文件中相应的命令 其他的也类似…… [COMMON]后面的那些指令是一些通过Dos方式引导PC系统的特定语句,不需要更改。 1.2)autoexec.bat的说明和修改 下面说明一下Autoexec.bat,这个文件是在Config.sys运行以后被执行的文件,主要的作用就是包含一些引导CEPC的命令。一个典型的CEPC启动盘的Autoexec.bat的文件的格式大致如下: ========================================================= @REM @REM Copyright (c) Microsoft Corporation. All rights reserved. @REM @REM @REM Use of this source code is subject to the terms of the Microsoft end-user @REM license agreement (EULA) under which you licensed this SOFTWARE PRODUCT. @REM If you did not accept the terms of the EULA, you are not authorized to use @REM this source code. For a copy of the EULA, please see the LICENSE.RTF on your @REM install media. @REM @echo off verify off PROMPT $p$g REM !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! REM !! !! REM !! MAKE SURE YOU SET THE RIGHT IRQ & IOBASE !! REM !! FOR YOUR NETCARD BELOW. !! REM !! !! REM !! NET_IRQ can be specified in either hex or !! REM !! decimal digits (ie either as IRQ=E or IRQ=14).!! REM !! A value of 0 for both NET_IRQ & NET_IOBASE !! REM !! means to find the first net card on the PCI !! REM !! bus and use that !! REM !! !! REM !! NET_IOBASE must be specified in Hex digits. !! REM !! A value of 0 for NET_IOBASE means to auto !! REM !! searchfor the PCI net card using the !! REM !! specified IRQ value. !! REM !! !! REM !! NET_IP can be set to specify a static IP !! REM !! address or left blank to use DHCP to obtain !! REM !! an IP address. Format of set should be: !! REM !! set NET_IP=:10.0.0.1 !! REM !! !! REM !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! set NET_IRQ=11 set NET_IOBASE=0 set NET_IP=192.168.1.234 if "%CONFIG%" == "CEPC_LOCAL_1024" goto CEPC_LOCAL_1024 if "%CONFIG%" == "CEPC_LOCAL_800" goto CEPC_LOCAL_800 if "%CONFIG%" == "CEPC_USB_800" goto CEPC_USB_800 if "%CONFIG%" == "CEPC_1024" goto CEPC_1024 if "%CONFIG%" == "CEPC_800" goto CEPC_800 if "%CONFIG%" == "CEPC_SERIAL" goto CEPC_SERIAL if "%CONFIG%" == "VESATEST" goto VESATEST if "%CONFIG%" == "CLEAN" goto CLEAN :CEPC_LOCAL_1024 REM ################################################################# REM Launch LOADCEPC using a local NK.BIN image. loadcepc /v /l:1024x768x16 c:/cepc/nk.bin goto END :CEPC_LOCAL_800 REM ################################################################# REM Launch LOADCEPC using a local NK.BIN image. loadcepc /v /l:800x600x32 c:/cepc/nk.bin goto END :CEPC_USB_800 REM ################################################################# REM Launch LOADCEPC using a local NK.BIN image. loadcepc /v /l:800x600x32 nk.bin goto END :CEPC_D640 REM ################################################################# REM Set RES=/D:2 to set a 640x480x8 video mode for older style REM display drivers. set RES=/D:2 goto WITHRES :CEPC_1024 REM ################################################################# REM Set RES=/L:1024x768x8 for use with FLAT display driver. REM REM Format REM /L:DXxDYxBPP[:PXxPY] in DECIMAL!!!! REM set RES=/L:1024x768x8 goto WITHRES :CEPC_800 REM ################################################################# REM Set RES=/L:800x600x16 for use with FLAT display driver. REM REM Format REM /L:DXxDYxBPP[:PXxPY] in DECIMAL!!!! REM set RES=/L:800x600x16 goto WITHRES :CEPC_640 REM ################################################################# REM Set RES=/L:640x480x32 for use with FLAT display driver. REM REM Format REM /L:DXxDYxBPP[:PXxPY] in DECIMAL!!!! REM set RES=/L:640x480x32 goto WITHRES :CEPC_PARALLEL REM ################################################################# REM Launch LOADCEPC for a parallel port download. loadcepc /v /p goto END :CEPC_SERIAL REM ################################################################# REM Launch LOADCEPC on SBoot for a serial port download. loadcepc /v sboot.bin goto END :VESATEST REM ################################################################# REM Launch VESATEST program. VESATEST will display the REM VESA BIOS Version number and list all of the available REM video modes that are supported by the FLAT driver. REM REM Note: VESATEST.EXE is an internal tool that is provided AS-IS REM with no testing or support, hence use at your own risk. We do REM not provide any redistribution rights either. vesatest goto END :WITHRES REM ################################################################# REM Here we actually Launch LOADCEPC using the RES, NET_IOBASE, REM and NET_IRQ env vars we just set above based on menu REM selections. loadcepc /v /e:%NET_IOBASE%:%NET_IRQ%:%NET_IP% %RES% eboot.bin goto END :CLEAN :END ========================================================= set NET_IRQ=11 set NET_IOBASE=0 set NET_IP=192.168.1.234 上面这三条语句是用来配置下载映象文件所需要的网卡的信息。网卡的IRQ和IOBASE是用PC的Bios文件分配的,一般来说把他们设置为0,那么Autoexec.bat将会自动根据bios来设置它。如果你有多个网卡,那么只要根据Bios引导之后PCI设备list中的信息,将你用来调试的网卡的IRQ制定给NET_IRQ即可。 if "%CONFIG%" == "CEPC_LOCAL_1024" goto CEPC_LOCAL_1024 …… Autoexec.bat中的这些if语句是根据Config.sys中的菜单选项来选择具体的指令,如果选择了第一个菜单则,跳到label:CEPC_LACAL_1024处执行其后面的指令。 引导CEPC最关键的指令就是loadcepc,至于这个指令的用法,可以通过 >loadcepc /? 显示出所有的开关选项 几个重要的开关选项是: /e 通过eboot来下载引导CEPC /l 选择显示器相应的分辨率,要确定当前显卡支持哪些分辨率,可以通过运行vesatest来测试 /v 显示出load过程中的信息 2)CEPC的引导方式说明 至此,基本上将WindowsCE.NET CEPC启动软盘制作的方法阐述完了,最重要的就是修改两个重要文件config.sys和autoexec.bat。 CEPC的引导可以采用本地引导,网络引导,串口引导,推荐采用网路引导,因为target PC上可以没有。 n 本地引导速度最快,但是你要在target PC或者你的CEPC启动盘上保存有CEPC映象文件NK.bin。 n 网络引导的速度大概在400~600kB/s,你需要在引导之前在Platform Builder里面配置好连接属性。如果你的CEPC启动盘在进行菜单选择之后正确启动,则在available target列表里面会出现相应的平台名字CEPCxxxxx,后面的xxxxx是由调试所有的网卡决定的。当然,一条跳过的双机对联网线是必不可少的。 n 串口引导的速度最慢,不建议采用,速度只有10kB/s以上,而且经常在映象文件很大的情况下容易断线。记住串口下载要在com2,因此target PC上要有两个串口,baud rate: 115.2kbps。因此PC上的串口都是male的,因此,你需要一条经过跳线的串行电缆,就是一头female的txd和另一头femel的rxd连 另外,下载过程中可以通过com1和超级终端收到CEPC启动盘发来的调试信息,com1设置为38.4kbps,可以使用直连电缆。 许多电脑主板都是支持闪盘启动的。其实CEPC的引导和Windows OS的引导非常相似,为什么不可以利用USB闪盘制作一个CEPC的启动盘。 其实,这也是so easy的事情了! 1)你要在bios里面选择引导方式了,将Floppy Disk换成USB-zip就可以了。 2)将CEPC启动软盘上的所有文件copy到USB闪盘上。 3)使用闪盘启动,幸运的话,你会马上看到CEPC的启动菜单的 4)以后所有的过程都和利用软盘启动相同。 当然使用闪盘启动你可以真正的做到standalone CEPC,因为闪盘上的空间足够你放下一个CEPC的映象文件,只需要在config.sys加上一条,如: menuitem=CEPC_USB_800, Boot CE/PC RES:800x600 (local nk.bin in usb disk) 然后在autoexec.bat里面添加相应的if选项和CEPC_USB_800对应的启动指令就可以了。 if "%CONFIG%" == "CEPC_USB_800" goto CEPC_USB_800 …… …… …… :CEPC_USB_800 REM ################################################################# REM Launch LOADCEPC using a local NK.BIN image. loadcepc /v /l:800x600x32 nk.bin goto END