为了帮助用户提高生产效率,我们在《应用程序及配置文件的生产自动拷贝》一文中介绍了用户应用程序如何自动拷贝到主板Flash中的方法,以及如何自动更新用户自定义的开机画,文中提到的方法需要编写应用程序来实现。本文将介绍利用批处理文件来实现同样的功能,而不需要编写专用的应用程序,实现起来更为简单灵活。
英创主板处于“调试模式”启动时,会查询系统的usbdisk根目录下是否有名为autotest.txt的配置文件,如果配置文件存在则会执行文件中指定的exe程序,下面的autotest.txt表示启动WinCE系统自带的命令行工具,并执行实现自动化配置的批处理文件autodeploy.bat。
[LOCAL_MACHINE]
DHCP="DisableDHCP"
DefaultGateway="192.168.201.19"
IPAddress="192.168.201.215"
SubnetMask="255.255.255.0"
[USER_EXE]
Name="\windows\cmd.exe"
Parameters="/c \usbdisk\AutoDeploy.bat"
下面是autodeploy.bat文件,看起来内容很多,但大多是输出提示信息,起关键作用的只有三行(红色字体,对应的注释为绿色文字),比如更新开机只需要执行\windows\lu \usbdisk\splash800480.bmp。拷贝用户程序数据只需要利用标准的copy命令即可。
@echo off
set info============== ESADT V1.0 ==============
echo %info%
\usbdisk\AutoDeploy\RETAILMSG.exe
\usbdisk\AutoDeploy\RETAILMSG.exe %info%
set info=== Emtronix system auto deploy tool ===
echo %info%
\usbdisk\AutoDeploy\RETAILMSG.exe %info%
set info===== Code by Emtronix Dec 12, 2019 ====
echo %info%
\usbdisk\AutoDeploy\RETAILMSG.exe %info%
echo.
rem 重新使能自动化配置功能
\usbdisk\AutoDeploy\ReEnableAutoTest.exe
rem 在以下添加用户要执行的内容
set info=Update splash
echo %info%
\usbdisk\AutoDeploy\RETAILMSG.exe %info%
rem 使用lu工具更新开机画面
\windows\lu \usbdisk\splash800480.bmp
echo.
rem 将U盘指定目录下的全部内容拷贝到nandflash
copy \usbdisk\userProgram\*.* \nandflash
echo.
set info=Deploy complete.
echo %info%
\usbdisk\AutoDeploy\RETAILMSG.exe %info%
rem 执行完成后暂停
pause
我们将上面例子用到的文件做成了一个工具包(内容如下所示),用户需要根据自己的需要编辑autodeploy.bat文件,然后将autodeploy.bat和autotest.txt文件放在U盘根目录,由于在autodeploy.bat中指定的程序路径为usbdisk\autodeploy,所以需要在U盘根目录下新建一个autodeploy文件夹,然后将要批处理中要执行的文件拷贝到autodeploy文件夹中。
将配置好的U盘连接到英创工控主板(为了防止出错,请只连接一个FAT32格式的U盘),让系统工作在"调试模式"启动,系统就会自动执行用户编写的批处理文件,自动完成相应的配置工作。在操作过程中建议连接显示屏和调试串口,以观察命令的执行情况。如果用户发现自己的批处理文件没有被执行,而检查了配置文件和U盘连接又全部正常,可手动执行一次ReEnableAutoTest.exe程序后再试。
对于只是希望简单拷贝应用程序的用户来说,还有利用系统的update功能,连批处理文件也不需要编写。实现原理为:当系统处于“运行模式”启动时,如果nandflash目录下没有userinfo.txt文件,或userinfo.txt文件中没有指定exe程序时,系统会自动查找\usbdisk\update路径是否存在,如存在则将该路径下的所有文件(及子目录)拷贝到nandflash下,拷贝完成后系统会自动重启。对于用户新购买的主板可利用此方法快速的部署用户程序。
成都英创信息技术有限公司 028-8618 0660