英創(chuàng)公司推出的ARM9嵌入式工控主板產(chǎn)品系列,均預(yù)裝了正版的WinCE5.0操作系統(tǒng)。微軟的WINCE實(shí)時多任務(wù)操作系統(tǒng)是嵌入式領(lǐng)域的主流操作系統(tǒng)之一,它包括了以TCP/IP為特色的完整網(wǎng)絡(luò)通訊協(xié)議,并提供了基于TCP/IP應(yīng)用協(xié)議的服務(wù)器程序,如FTP Server、Web Server等等很實(shí)用的軟件程序。英創(chuàng)提供的工控主板以其專業(yè)性,為客戶提供良好而專業(yè)的硬件和軟件技術(shù)支持,很好地滿足了現(xiàn)代智能電子設(shè)備的需求,而成為許多工業(yè)應(yīng)用終端客戶選擇的合作對象。在進(jìn)行應(yīng)用終端產(chǎn)品的開發(fā)過程中,總免不了會碰到需要對產(chǎn)品的應(yīng)用軟件進(jìn)行更新升級的情況。本文主要針對這一應(yīng)用介紹如何利用FTP Server在英創(chuàng)的ARM9工控主板實(shí)現(xiàn)應(yīng)用程序的遠(yuǎn)程自動更新。
FTP Server是WinCE內(nèi)核提供的應(yīng)用程序,當(dāng)WinCE操作系統(tǒng)一啟動,該程序就會通過“Core Server Support”- “Services.exe”自動加載運(yùn)行。遠(yuǎn)端的PC機(jī)只需要運(yùn)行FTP客戶端程序就可以直接連到目標(biāo)機(jī)(即英創(chuàng)的ARM9工控主板),目前比較常用的有:CuteFTP FileZilla等。
對于應(yīng)用程序的更新,一般應(yīng)用程序還在運(yùn)行,所以無法用直接COPY來更新應(yīng)用程序。在本文中我們將介紹一種實(shí)現(xiàn)遠(yuǎn)程自動更新的方案。
一、程序說明
該方案中一個核心的程序?yàn)閡pdate.exe,該程序是在客戶應(yīng)用程序啟動之前首先啟動的。為了避免和正在運(yùn)行的應(yīng)用程序相沖突,需要更新的程序文件需要上傳至一個指定的目錄,我們這里選擇的是目標(biāo)板的“\\NandFlash”文件夾下,建立一個子目錄\\FTPUpdate。該程序首先第一步是查詢\\FTPUpdate目錄下的是否有需要更新的文件,判斷的依據(jù)是檢查在\\FTPUpdate目錄下是否有標(biāo)志文件“update.***”,如果檢查到有該文件,則目標(biāo)機(jī)馬上進(jìn)行程序文件的自動COPY更新,即將\\FTPUpdate目錄下的所有文件COPY到客戶應(yīng)用所在的目錄下,如果COPY文件成功,程序?qū)⒆詣觿h除標(biāo)志文件。第二步自動啟動客戶的應(yīng)用程序,應(yīng)用程序的名稱和參數(shù)同樣是從用戶編輯的userinfo.txt文件中獲取。第三步啟動一個查詢的線程,每隔5秒自動查詢在\\FTPUpdate目錄下是否有標(biāo)志文件“update.***”,如果檢測到有該文件,目標(biāo)機(jī)將自動重啟動,然后再重復(fù)以上過程,從而達(dá)到遠(yuǎn)程自動更新的目的。
二、應(yīng)用說明
該核心程序update.exe已經(jīng)包含在內(nèi)核中,用戶可以通過編輯userinfo.txt來選擇是否啟動程序自動更新方案。為了保證以前的userinfo.txt兼容,我們只是在 [USER_EXE] 中增加一個選項(xiàng)來選擇,Update=”O(jiān)N”表明啟動程序自動更新方案。如:
[LOCAL_MACHINE] //目標(biāo)機(jī)信息
DefaultGateway='192.168.201.8' //默認(rèn)網(wǎng)關(guān),根據(jù)所在的實(shí)際運(yùn)行網(wǎng)絡(luò)來設(shè)置。該網(wǎng)關(guān)
//地址與dbginfo.txt中的設(shè)置不一定相同
IPAddress='192.168.201.205' //目標(biāo)機(jī)IP地址,由用戶自行設(shè)置。該IP地址與
//dbginfo.txt中的設(shè)置不一定相同
SubnetMask='255.255.255.0' //子網(wǎng)掩碼,根據(jù)所在的實(shí)際運(yùn)行網(wǎng)絡(luò)填寫,該子網(wǎng)
//掩碼與dbginfo.txt中的設(shè)置不一定相同
[USER_EXE] //用戶程序信息
Name='serialtest.exe' //系統(tǒng)開機(jī)自動執(zhí)行的程序,默認(rèn)為serialtest.exe。
//實(shí)際開發(fā)完成以后用戶將自己的應(yīng)用程序文件名填
//在雙引號之間取代目前的默認(rèn)文件名,開機(jī)即可
//自動運(yùn)行(注)
Parameters='COM1 9600' //系統(tǒng)開機(jī)自動執(zhí)行的程序的參數(shù)配置。此處為
//serialtest.exe的參數(shù):測試COM1,波特率
//為9600。開發(fā)完成以后在此處填入實(shí)際應(yīng)用
//程序的參數(shù),如果沒有則不填,但必須保留雙引號
Update=”O(jiān)N” //系統(tǒng)開機(jī)會自動檢測該項(xiàng)參數(shù),如果為“ON”
//(大小寫區(qū)分的,必須為大寫字母),則表明啟動
//程序自動更新;如果無該選擇項(xiàng),或者參數(shù)為其他,
//則均不啟動。
在使用該方案進(jìn)行程序更新時,可以按照以下步驟進(jìn)行:
1、首先需要在目標(biāo)板的“\\NandFlash”文件夾下,建立一個子目錄“\\FTPUpdate”,該目錄用來存放需要更新的應(yīng)用程序相關(guān)文件。
2、在遠(yuǎn)端的PC機(jī)上運(yùn)行FTP客戶端程序,如:CuteFTP、FileZilla等,和目標(biāo)板連接成功后,將需要更新的文件全部成功上傳至\\FTPUpdate目錄下,最后再將標(biāo)志文件“update.***”上傳\\FTPUpdate目錄下。為了保證程序下載的安全性,建議客戶在使用時最好啟動FTP的安全認(rèn)證功能,如要求提供用戶名和密碼,關(guān)于這部分的說明請參見我們公司提供的技術(shù)文檔“WinCE工控主板的網(wǎng)絡(luò)安全管理”。
文章來源:中國傳動網(wǎng)
原文網(wǎng)址:http://www.chuandong.com/cdbbs/2010-1/13/101135C447CA47.html