作者:ARM-WinCE
简单介绍一下WinCE下应用程序的升级,一般在WinCE启动以后,系统可能包含多个应用程序,其实升级也很简单,就是通过网络下载更新某一个应用程序,这里知识介绍一种方法可以对包括shell或其他应用程序进行升级。
如下图:
这是一个系统启动及应用升级的状态图,简单介绍一下:
Hardware Boot: 上电后,硬件初始化,一般运行一个bootloader,Eboot或者什么,然后加载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来完成应用程序的升级工作。
分享到:
相关推荐
WinCE应用程序开机自动运行 WinCE应用程序开机自动运行 WinCE应用程序开机自动运行 WinCE应用程序开机自动运行 WinCE应用程序开机自动运行 WinCE应用程序开机自动运行 WinCE应用程序开机自动运行 WinCE应用程序开机...
WinCE应用程序开发WinCE应用程序开发WinCE应用程序开发WinCE应用程序开发WinCE应用程序开发WinCE应用程序开发WinCE应用程序开发
wince应用程序开发介绍,开发步骤,编程特点,调试等
WINCE5.0 VS2005 应用例子供WINCE开发参考。
wince之应用程序设计,嵌入式操作系统原理 ——Windows CE 应用程序设计
如何用VS2005或者2008开发wince应用程序!
WinCE6.0 ARM平台的showerr.lib,用于屏蔽WinCE应用程序崩溃提示框。
wince6.0下可用应用程序wince6.0下可用应用程序wince6.0下可用应用程序wince6.0下可用应用程序wince6.0下可用应用程序wince6.0下可用应用程序
wince应用程序 含有多个游戏及其他应用, 贡献源代码,全部经测试可用
wince evc 应用程序开发步骤详细说明,图解,源代码
炜煌系列热敏微型打印机WINCE应用程序
真正实现通过配置文件实现WINCE APP 自动更新的通用程序 要点: 1,UPDATELIST 文件第一行为服务器下载文件夹虚拟路径 2,UPDATELIST 文件第二行为本地APP程序 3,需要在SHSAN.EXE 所在文件夹建立temp 子文件夹
MFC测试程序开发\WinCE应用程序的开发入门
WinCE串口应用程序
wince应用程序开发电子书
研究WINCE时用C#写的一个串口工具DEMO 使用环境.NET3.5+VS2008+WINCE6.0
用Labview开发WINCE应用程序
文档详述了如何在LabVIEW中进行WinCE应用程序的开发,通过本教程可以快速入门。
wince下应用程序如何调用驱动程序,关于流驱动的部分代码。