英創(chuàng)公司推出的ARM9嵌入式工控主板產(chǎn)品系列,均預(yù)裝了正版的WinCE5.0操作系統(tǒng)。微軟的WINCE實(shí)時(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)用終端客戶選擇的合作對(duì)象。在進(jìn)行應(yīng)用終端產(chǎn)品的開(kāi)發(fā)過(guò)程中,總免不了會(huì)碰到需要對(duì)產(chǎn)品的應(yīng)用軟件進(jìn)行更新升級(jí)的情況。本文主要針對(duì)這一應(yīng)用介紹如何利用FTP Server在英創(chuàng)的ARM9工控主板實(shí)現(xiàn)應(yīng)用程序的遠(yuǎn)程自動(dòng)更新。
FTP Server是WinCE內(nèi)核提供的應(yīng)用程序,當(dāng)WinCE操作系統(tǒng)一啟動(dòng),該程序就會(huì)通過(guò)“Core Server Support”- “Services.exe”自動(dòng)加載運(yùn)行。遠(yuǎn)端的PC機(jī)只需要運(yùn)行FTP客戶端程序就可以直接連到目標(biāo)機(jī)(即英創(chuàng)的ARM9工控主板),目前比較常用的有:CuteFTP FileZilla等。
對(duì)于應(yīng)用程序的更新,一般應(yīng)用程序還在運(yùn)行,所以無(wú)法用直接COPY來(lái)更新應(yīng)用程序。在本文中我們將介紹一種實(shí)現(xiàn)遠(yuǎn)程自動(dòng)更新的方案。
1、程序說(shuō)明
該方案中一個(gè)核心的程序?yàn)閡pdate.exe,該程序是在客戶應(yīng)用程序啟動(dòng)之前首先啟動(dòng)的。為了避免和正在運(yùn)行的應(yīng)用程序相沖突,需要更新的程序文件需要上傳至一個(gè)指定的目錄,我們這里選擇的是目標(biāo)板的“\\NandFlash”文件夾下,建立一個(gè)子目錄\\FTPUpdate。該程序首先第一步是查詢\\FTPUpdate目錄下的是否有需要更新的文件,判斷的依據(jù)是檢查在\\FTPUpdate目錄下是否有標(biāo)志文件“update.flg”,如果檢查到有該文件,則目標(biāo)機(jī)馬上進(jìn)行程序文件的自動(dòng)COPY更新,即將\\FTPUpdate目錄下的所有文件COPY到客戶應(yīng)用所在的目錄下,如果COPY文件成功,程序?qū)⒆詣?dòng)刪除標(biāo)志文件。第二步自動(dòng)啟動(dòng)客戶的應(yīng)用程序,應(yīng)用程序的名稱和參數(shù)同樣是從用戶編輯的userinfo.txt文件中獲取。第三步啟動(dòng)一個(gè)查詢的線程,每隔5秒自動(dòng)查詢?cè)赲\FTPUpdate目錄下是否有標(biāo)志文件“update.flg”,如果檢測(cè)到有該文件,目標(biāo)機(jī)將自動(dòng)重啟動(dòng),然后再重復(fù)以上過(guò)程,從而達(dá)到遠(yuǎn)程自動(dòng)更新的目的。
2、應(yīng)用說(shuō)明
該核心程序update.exe已經(jīng)包含在內(nèi)核中,用戶可以通過(guò)編輯userinfo.txt來(lái)選擇是否啟動(dòng)程序自動(dòng)更新方案。
[LOCAL_MACHINE] // 目標(biāo)機(jī)信息
DefaultGateway=‘192.168.201.8’ // 默認(rèn)網(wǎng)關(guān),根據(jù)所在的實(shí)際運(yùn)行網(wǎng)絡(luò)來(lái)設(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ò)填寫(xiě),該子網(wǎng)掩碼與dbginfo.txt中的設(shè)置不一定相同
[USER_EXE] // 用戶程序信息
Name=‘serialtest.exe’ // 系統(tǒng)開(kāi)機(jī)自動(dòng)執(zhí)行的程序,默認(rèn)為serialtest.exe。實(shí)際開(kāi)發(fā)完成以后用戶將自己的應(yīng)用程序文件名填在雙引號(hào)之間取代目前的默認(rèn)文件名,
// 開(kāi)機(jī)即可自動(dòng)運(yùn)行
Parameters=‘COM1 9600’ // 系統(tǒng)開(kāi)機(jī)自動(dòng)執(zhí)行的程序的參數(shù)配置。此處為serialtest.exe的參數(shù):測(cè)試COM1,波特率為9600。開(kāi)發(fā)完成以后在此處填入實(shí)際應(yīng)用程序的參數(shù),
// 如果沒(méi)有則不填,但必須保留雙引號(hào)
Update=”O(jiān)N” // 系統(tǒng)開(kāi)機(jī)會(huì)自動(dòng)檢測(cè)該項(xiàng)參數(shù),如果為“ON”(大小寫(xiě)區(qū)分的,必須為大寫(xiě)字母),則表明啟動(dòng)程序自動(dòng)更新;如果無(wú)該選擇項(xiàng),或者參數(shù)為其他,則均不啟動(dòng)
在使用該方案進(jìn)行程序更新時(shí),可以按照以下步驟進(jìn)行:
1、首先需要在目標(biāo)板的“\\NandFlash”文件夾下,建立一個(gè)子目錄“\\FTPUpdate”,該目錄用來(lái)存放需要更新的應(yīng)用程序相關(guān)文件。
2、在遠(yuǎn)端的PC機(jī)上運(yùn)行FTP客戶端程序,如:CuteFTP、FileZilla等,和目標(biāo)板連接成功后,將需要更新的文件全部成功上傳至\\FTPUpdate目錄下,最后再將標(biāo)志文件“update.flg”上傳\\FTPUpdate目錄下。為了保證程序下載的安全性,建議客戶在使用時(shí)最好啟動(dòng)FTP的安全認(rèn)證功能,如要求提供用戶名和密碼,關(guān)于這部分的說(shuō)明請(qǐng)參見(jiàn)我們公司提供的技術(shù)文檔“WinCE工控主板的網(wǎng)絡(luò)安全管理”。
3、補(bǔ)充說(shuō)明
由于update.exe程序本身不涉及到文件的下載操作,它只是有一個(gè)自動(dòng)更新的程序,主要特點(diǎn)就是要求首先將需要更新的文件下載到指定的目錄下,然后在下載一個(gè)指定文件名的標(biāo)志文件到該目錄,update.exe程序就可以根據(jù)該特征自動(dòng)進(jìn)行程序的更新了。
以上介紹的是目標(biāo)機(jī)作為FTP Server來(lái)實(shí)現(xiàn)的更新文件上傳,同樣的如果目標(biāo)板作為FTP客戶端也可以利用此方案,用戶可以將FTP客戶端程序嵌套在應(yīng)用程序中,直接從遠(yuǎn)端的FTP 服務(wù)器獲取相應(yīng)的更新文件到指定的目錄下,再自動(dòng)生成相應(yīng)的標(biāo)志文件,update.exe程序的操作方式還是一樣的。
為了保證程序更新COPY的可靠性,需要注意的是一定要保證給磁盤(pán)“\\NandFlash”留有足夠的剩余空間,此剩余空間的大小起碼不少于需要更新的文件容量大小。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6085瀏覽量
35295
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論