`
javahigh1
  • 浏览: 1226758 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

谈谈WinCE应用程序的升级

阅读更多

作者:ARM-WinCE

简单介绍一下WinCE下应用程序的升级,一般在WinCE启动以后,系统可能包含多个应用程序,其实升级也很简单,就是通过网络下载更新某一个应用程序,这里知识介绍一种方法可以对包括shell或其他应用程序进行升级。

如下图:

这是一个系统启动及应用升级的状态图,简单介绍一下:

Hardware Boot: 上电后,硬件初始化,一般运行一个bootloaderEboot或者什么,然后加载WinCE内核。

OS Bootup: WinCE内核被拷贝到RAM中运行。

Application Bootloader: WinCE运行以后,自动运行一个小程序,可以称它为Application Bootloader,该应用程序对系统硬件进行基本的初始化和检测,比如初始化声音和显示,检测以太网连接等。然后调用CreateProcess来启动主应用程序,比如shell.exe或者其他的UI应用程序。然后等待消息,等待什么消息呢?等待主应用程序启动后发出的运行正常的消息,该窗口消息应该是一个广播,这样Application Bootloader就知道调用CreateProcess启动的进程已经运行正常了,否则将通过网络发送出错信息或者在LCD上面显示错误信息等。

Application这个就是我们的主应用程序了,一般可能是基于UI的。主应用程序会接收来自网络的Update Command命令,然后进行应用配置或者应用程序的升级。

Application Configuration Update: 这个是指关于应用程序的配置信息,应用程序启动以后,会读取配置文件中的配置信息,比如是不是要全屏显示,显示的图片,图片是否可触摸,图片屏幕上的位置等。这个根据需要,可能你的应用程序根本不需要这个,那么你就忽略它。

Configuration Update: 升级命令为配置信息的升级,那么下载并更新配置文件,主应用程序会重新读取配置文件中的信息,然后重新运行。

Application Update: 如果主应用程序接收到的命令是升级应用程序,那么检测是否升级主应用程序。如果不是,那么直接下载并更新本地应用程序即可。如果是要升级主应用程序,那么首先将主应用程序备份,然后下载最新的主应用程序,并进行CRC校验。下载成功后,发送消息给Application Bootloader表示要运行最新的。Application Bootloader会调用TerminateProcess函数终止当前主应用程序的运行并予以删除,重命名最新的,然后调用CreateProcess来启动更新后的主应用程序。

基本把原理说完了,只是介绍了一种方法,通过一个Application Bootloader来完成应用程序的升级工作。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics