談談WinCE應用程式的升級

來源:互聯網
上載者:User

作者: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來完成應用程式的升級工作。

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.