【前奏】-近日入手一块基于OMAP3530双核架构的SBC8100单板机,搭建好WinCE6.0的开发平台后就着手WinCE6.0的定制和移植工作,不得不说,这确实是件耗精力,但充满乐趣的活儿。
【起因】-使用VS2005编译生成image后,要拷贝到单板机的SD卡中再从SD卡中启动,这个过程要拷贝好几个映像文件,每次都要在release目录下搜索,费时费力,而烧写NAND启动映像文件也不同,需要重命名,容易出错,于是想到用bat命令实现自动拷贝,代码部分附在文后,主要使用了echo、set、goto、pause、copy、call等命令。
【幕后】-开发过程中发现如下问题:
1.单板机通过Micro Activesync 4.5与PC连接,在电脑中为一系统文件夹“移动设备”,这样在bat文件中无法直接复制文件到其中。我谷歌了一下,有网友
遇到过同样问题,暂无解决办法。有一个办法使用RAPI,有空再研究吧,也恳请广大网友支招^_^
2.bat命令无法往桌面拷贝文件,显示“命令不可用”,我就是下午简单的看了下bat命令,没有系统的学,故不知其因所在,也请大家指教
3.bat文件无法在移动设备中运行,将bat文件放到移动设备中双击发现只能显示文件属性,本想通过这招实现移动设备和PC中的文件传递,⊙﹏⊙b汗
4.MLO镜像文件没有后缀名,通过Activesync拷贝到单板机中时无法拷入,只好加一个.exe后缀,拷进去再去掉后缀
【花絮】经过几天的努力,今天初步实现了自己定制的WinCE6.0 在SBC8100单板机上跑起来,鼠标、键盘、触屏、音频输出、USB-OTG、SD、WIFI、
QQ、MSN、Flash lite、Silverlight、HIV注册表、全中文界面和中文输入等全部支持,很开心,后面要往驱程这一块走,希望WinCE6.0开发之路越走
越顺,感谢谷歌、百度,感谢广大开发爱好者的无私奉献!
【程序】
@echo 注意:请先确保已做好历史文件备份,该操作将覆盖目录下同名文件
@pause
:main
@echo.
echo 0.拷贝所有镜像到备份目录下(确保已转移历史版本)
echo 1.拷贝SD image到单板机中(确保已同步,文件将拷贝到桌面)
echo 2.拷贝NAND image到单板机中(确保已同步,文件将拷贝到桌面)
echo 3.拷贝SD image到电脑SD卡中(请确保SD卡插入)
echo 4.拷贝NAND image到电脑SD卡中(请确保SD卡插入)
echo 5.退出
@set /p var=input:
call :lab%var%
@:lab0
@echo.
@echo 5 files to copy...please wait!
@echo 1.copy nk.bin...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\nk.bin E:\Arm开发\SBC8100开发\镜像烧写\定制\
@echo 2.copy MLO...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\MLO E:\Arm开发\SBC8100开发\镜像烧写\定制\
@echo 3.copy EBOOTSD.nb0...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\EBOOTSD.nb0 E:\Arm开发\SBC8100开发\镜像烧写\定制\
@echo 4.copy EBOOTNAND.nb0...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\EBOOTNAND.nb0 E:\Arm开发\SBC8100开发\镜像烧写\定制\
@echo 5.copy XLDRNAND.nb0...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\XLDRNAND.nb0 E:\Arm开发\SBC8100开发\镜像烧写\定制\
@echo Copy files done!
@goto main
::拷贝SD image到桌面
@:lab1
@echo.
@echo 3 files to copy...please wait!
@if exist "C:\Documents and Settings\Administrator\桌面\EBOOTNAND.nb0" del "C:\Documents and Settings\Administrator\桌面\EBOOTNAND.nb0"
@if exist "C:\Documents and Settings\Administrator\桌面\XLDRNAND.nb0" del "C:\Documents and Settings\Administrator\桌面\XLDRNAND.nb0"
@echo 1.copy nk.bin...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\nk.bin "C:\Documents and Settings\Administrator\桌面"
@echo 2.copy MLO...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\MLO "C:\Documents and Settings\Administrator\桌面\MLO.exe"
@echo 3.copy EBOOTSD.nb0...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\EBOOTSD.nb0 "C:\Documents and Settings\Administrator\桌面"
@echo Copy files done!
@goto main
::拷贝NAND image到桌面
@:lab2
@echo.
@echo 4 files to copy...please wait!
@if exist "C:\Documents and Settings\Administrator\桌面\EBOOTNAND.nb0" del "C:\Documents and Settings\Administrator\桌面\EBOOTNAND.nb0"
@if exist "C:\Documents and Settings\Administrator\桌面\EBOOTSD.nb0" del "C:\Documents and Settings\Administrator\桌面\EBOOTSD.nb0"
@echo 1.copy nk.bin...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\nk.bin "C:\Documents and Settings\Administrator\桌面"
@echo 2.copy MLO and rename it as"MLO.exe"...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\MLO "C:\Documents and Settings\Administrator\桌面\MLO.exe"
@echo 3.copy EBOOTNAND.nb0 and rename it as"EBOOTSD.nb0"...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\EBOOTNAND.nb0 "C:\Documents and Settings\Administrator\桌面\EBOOTSD.nb0"
@echo 4.copy XLDRNAND.nb0...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\XLDRNAND.nb0 "C:\Documents and Settings\Administrator\桌面"
@echo Copy files done!
@goto main
::拷贝SD image到电脑SD卡中
@:lab3
@echo.
@if exist "j:\" (goto continue3) else (echo 未检测到SD卡,请插入SD卡 && echo )
@goto main
@pause
:continue3
@echo 3 files to copy...please wait!
@if exist "j:\XLDRNAND.nb0" del "j:\XLDRNAND.nb0"
@echo 1.copy nk.bin...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\nk.bin j:\nk.bin
@echo 2.copy MLO...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\MLO j:\MLO
@echo 3.copy EBOOTSD.nb0...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\EBOOTSD.nb0 j:\EBOOTSD.nb0
@echo Copy files done!
@goto main
::拷贝NAND image到电脑SD卡中
@:lab4
@echo.
@if exist "j:\" (goto continue4) else (echo 未检测到SD卡,请插入SD卡 && echo )
@goto main
@pause
:continue4
@echo 4 files to copy...please wait!
@if exist "j:\EBOOTSD.nb0" del "j:\EBOOTSD.nb0"
@echo 1.copy nk.bin...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\nk.bin j:\nk.bin
@echo 2.copy MLO...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\MLO j:\MLO
@echo 3.copy EBOOTNAND.nb0 and rename it as"EBOOTSD.nb0"...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\EBOOTNAND.nb0 j:\EBOOTSD.nb0
@echo 4.copy XLDRNAND.nb0...
@copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\XLDRNAND.nb0 j:\XLDRNAND.nb0
@echo Copy files done!
@goto main
::退出
@:lab5
exit