? ARM9工控主板WinCE应用程序的远程FTP自动更新--技术天地

ARM9工控主板WinCE應用程序的遠程FTP自動更新

 2009/2/25    

        英創公司推出的ARM9嵌入式工控主板產品系列,均預裝了正版的WinCE5.0操作系統。微軟的WINCE實時多任務操作系統是嵌入式領域的主流操作系統之一,它包括了以TCP/IP為特色的完整網絡通訊協議,并提供了基于TCP/IP應用協議的服務器程序,如FTP Server、Web Server等等很實用的軟件程序。英創提供的工控主板以其專業性,為客戶提供良好而專業的硬件和軟件技術支持,很好地滿足了現代智能電子設備的需求,而成為許多工業應用終端客戶選擇的合作對象。在進行應用終端產品的開發過程中,總免不了會碰到需要對產品的應用軟件進行更新升級的情況。本文主要針對這一應用介紹如何利用FTP Server在英創的ARM9工控主板實現應用程序的遠程自動更新。

 

        FTP Server是WinCE內核提供的應用程序,當WinCE操作系統一啟動,該程序就會通過“Core Server Support”- “Services.exe”自動加載運行。遠端的PC機只需要運行FTP客戶端程序就可以直接連到目標機(即英創的ARM9工控主板),目前比較常用的有:CuteFTP FileZilla等。

 

        對于應用程序的更新,一般應用程序還在運行,所以無法用直接COPY來更新應用程序。在本文中我們將介紹一種實現遠程自動更新的方案。

 

1、程序說明

        該方案中一個核心的程序為update.exe,該程序是在客戶應用程序啟動之前首先啟動的。為了避免和正在運行的應用程序相沖突,需要更新的程序文件需要上傳至一個指定的目錄,我們這里選擇的是目標板的“\\NandFlash”文件夾下,建立一個子目錄\\FTPUpdate。該程序首先第一步是查詢\\FTPUpdate目錄下的是否有需要更新的文件,判斷的依據是檢查在\\FTPUpdate目錄下是否有標志文件“update.flg”,如果檢查到有該文件,則目標機馬上進行程序文件的自動COPY更新,即將\\FTPUpdate目錄下的所有文件COPY到客戶應用所在的目錄下,如果COPY文件成功,程序將自動刪除標志文件。第二步自動啟動客戶的應用程序,應用程序的名稱和參數同樣是從用戶編輯的userinfo.txt文件中獲取。第三步啟動一個查詢的線程,每隔5秒自動查詢在\\FTPUpdate目錄下是否有標志文件“update.flg”,如果檢測到有該文件,目標機將自動重啟動,然后再重復以上過程,從而達到遠程自動更新的目的。

 

2、應用說明

        該核心程序update.exe已經包含在內核中,用戶可以通過編輯userinfo.txt來選擇是否啟動程序自動更新方案。

 

[LOCAL_MACHINE] // 目標機信息
DefaultGateway='192.168.201.8' // 默認網關,根據所在的實際運行網絡來設置。該網關地址與dbginfo.txt中的設置不一定相同
IPAddress='192.168.201.205' // 目標機IP地址,由用戶自行設置。該IP地址與dbginfo.txt中的設置不一定相同
SubnetMask='255.255.255.0' // 子網掩碼,根據所在的實際運行網絡填寫,該子網掩碼與dbginfo.txt中的設置不一定相同
[USER_EXE] // 用戶程序信息
Name='serialtest.exe' // 系統開機自動執行的程序,默認為serialtest.exe。實際開發完成以后用戶將自己的應用程序文件名填在雙引號之間取代目前的默認文件名,

                      // 開機即可自動運行
Parameters='COM1 9600' // 系統開機自動執行的程序的參數配置。此處為serialtest.exe的參數:測試COM1,波特率為9600。開發完成以后在此處填入實際應用程序的參數,

                       // 如果沒有則不填,但必須保留雙引號
Update=”ON” // 系統開機會自動檢測該項參數,如果為“ON”(大小寫區分的,必須為大寫字母),則表明啟動程序自動更新;如果無該選擇項,或者參數為其他,則均不啟動

 

        在使用該方案進行程序更新時,可以按照以下步驟進行:

        1、首先需要在目標板的“\\NandFlash”文件夾下,建立一個子目錄“\\FTPUpdate”,該目錄用來存放需要更新的應用程序相關文件。

        2、在遠端的PC機上運行FTP客戶端程序,如:CuteFTP、FileZilla等,和目標板連接成功后,將需要更新的文件全部成功上傳至\\FTPUpdate目錄下,最后再將標志文件“update.flg”上傳\\FTPUpdate目錄下。為了保證程序下載的安全性,建議客戶在使用時最好啟動FTP的安全認證功能,如要求提供用戶名和密碼,關于這部分的說明請參見我們公司提供的技術文檔“WinCE工控主板的網絡安全管理”。

 

3、補充說明

        由于update.exe程序本身不涉及到文件的下載操作,它只是有一個自動更新的程序,主要特點就是要求首先將需要更新的文件下載到指定的目錄下,然后在下載一個指定文件名的標志文件到該目錄,update.exe程序就可以根據該特征自動進行程序的更新了。

 

        以上介紹的是目標機作為FTP Server來實現的更新文件上傳,同樣的如果目標板作為FTP客戶端也可以利用此方案,用戶可以將FTP客戶端程序嵌套在應用程序中,直接從遠端的FTP 服務器獲取相應的更新文件到指定的目錄下,再自動生成相應的標志文件,update.exe程序的操作方式還是一樣的。

 

        為了保證程序更新COPY的可靠性,需要注意的是一定要保證給磁盤“\\NandFlash”留有足夠的剩余空間,此剩余空間的大小起碼不少于需要更新的文件容量大小。