欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種嵌入式固件在線升級方法與流程

文檔序號:11729161閱讀:1005來源:國知局
一種嵌入式固件在線升級方法與流程
本發(fā)明涉及計算機嵌入式軟件領(lǐng)域,特別涉及一種嵌入式固件在線升級方法。
背景技術(shù)
:傳統(tǒng)的嵌入式終端設備,由于資源和環(huán)境條件的限制,在生產(chǎn)階段就需要將軟件代碼固化,設備出廠后是無法在現(xiàn)場在線修改的。一旦出現(xiàn)升級需求,要么是設備返廠維修,要么是在現(xiàn)場拆機更換部件板或替換程序存儲芯片。為了能夠滿足客戶持續(xù)變化的需求,延長產(chǎn)品的生命周期,需要不斷完善嵌入式終端設備功能,在線升級能力顯得非常重要。常見的升級方式都是整個設備系統(tǒng)的升級,現(xiàn)實環(huán)境中,可能面臨各種異常,如通訊傳輸誤碼、存儲操作故障、傳輸中斷、人工操作失誤等現(xiàn)象,任何一項異常的發(fā)生,都會造成升級過程失敗,那么引起系統(tǒng)癱瘓導致產(chǎn)品失效。一般來說,當產(chǎn)品硬件平臺固定后,引導程序和操作系統(tǒng)被修改的可能性非常小,后期的完善更多是應用程序或者驅(qū)動模塊微調(diào),因此提供一種應用程序和驅(qū)動模塊獨立升級的方法具有重要的意義。技術(shù)實現(xiàn)要素:本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點與不足,提供一種嵌入式固件在線升級方法,能夠快速有效地實現(xiàn)應用程序和驅(qū)動模塊的升級。一種嵌入式固件在線升級方法,包括以下步驟:s1、若用戶有更新需求,則遠程客戶端經(jīng)過升級端口下發(fā)更新文件給嵌入式終端;s2、嵌入式終端的升級服務程序后臺運行,監(jiān)聽升級端口,一旦有需求則遵循雙方認可的協(xié)議,進行更新文件傳輸;s3、嵌入式終端判斷更新文件傳輸成功且更新文件完整后,將更新文件存入更新目錄,然后系統(tǒng)重啟;s4、嵌入式終端啟動進入系統(tǒng)后,嵌入式終端的啟動檢測腳本判斷在更新目錄下是否有更新文件,如果有則拷貝到對應的應用程序目錄和驅(qū)動目錄下;s5、完成拷貝后刪除原來更新目錄下的文件,加載驅(qū)動模塊、主應用程序和升級服務程序,完成升級。優(yōu)選的,遠程客戶端完成文件的過濾、總文件校驗、對文件進行拆包后通過雙方認可的協(xié)議、經(jīng)過升級端口下發(fā)更新文件以及對升級成功或失敗進行顯示。優(yōu)選的,步驟s2中更新文件傳輸過程中采用應答機制加數(shù)據(jù)校驗確保每幀數(shù)據(jù)的正確性和整個文件的完整性。進一步的,數(shù)據(jù)校驗采用奇偶校驗、異或校驗、crc循環(huán)冗余校驗、md5校驗中的一種。優(yōu)選的,遠程客戶端和嵌入式終端雙方認可的升級協(xié)議組成包括:幀頭、幀長度、幀類型、數(shù)據(jù)內(nèi)容以及校驗值。進一步的,文件傳輸具體過程如下:遠程客戶端操作:步驟1:打開遠程客戶端,用戶選擇更新文件,遠程客戶端軟件計算總文件大小n字節(jié)、總文件校驗值和總幀數(shù)m;每一幀數(shù)據(jù)內(nèi)容最大長度為k字節(jié),總幀數(shù)m包括:更新文件控制幀1個,還有更新文件內(nèi)容幀,假若n%k=0,m=n/k,否則m=n/k+1,校驗方式采用crc校驗值;步驟2:開始傳輸,第一幀為更新文件控制幀,包含更新文件控制信息;首先填充升級協(xié)議:幀類型為1,數(shù)據(jù)內(nèi)容包括文件總大小,文件總crc值以及計算出的此幀crc校驗值;然后發(fā)送幀數(shù)據(jù)到嵌入式終端,收到終端應答確認后,繼續(xù)步驟3;否則重復發(fā)送,重復次數(shù)達到三次后,繼續(xù)步驟5;步驟3:開始更新文件內(nèi)容幀傳輸,從第2幀到m幀,與步驟2步驟一樣,幀類型為2,計算此幀crc校驗值,發(fā)送幀數(shù)據(jù)到嵌入式終端,收到終端應答確認后,繼續(xù)下一幀發(fā)送,發(fā)送完成后繼續(xù)步驟4;否則重復發(fā)送,發(fā)送次數(shù)達到三次后,繼續(xù)步驟5;步驟4:等待終端升級狀態(tài)應答,解析并顯示;步驟5:升級結(jié)束;終端升級服務程序操作:步驟1:啟動監(jiān)聽升級端口,有升級需求的話,繼續(xù)步驟2;步驟2:接收遠程客戶端發(fā)送的數(shù)據(jù),計算當前幀crc校驗值與遠程客戶端發(fā)送幀數(shù)據(jù)的校驗值是否一致,若一致則通過校驗,應答給遠程客戶端。解析幀數(shù)據(jù)的幀類型,根據(jù)幀類型提取信息,總文件的全部幀接收完成后,繼續(xù)步驟3;若不一致,應答給遠程客戶端,遠程客戶端重發(fā)該幀數(shù)據(jù);步驟3:計算接收到的總文件數(shù)據(jù)crc校驗值與第一幀更新文件控制信息中的文件總crc校驗值是否一致,如果一致,寫入更新目錄下,將各個文件crc校驗值以及對應的文件名稱存入升級配置文件,更新狀態(tài)為升級成功,應答遠程客戶端;否則,不寫入文件信息,更新狀態(tài)為升級錯誤,應答給遠程客戶端;繼續(xù)步驟4;步驟4:升級結(jié)束。優(yōu)選的,步驟s5中啟動檢測腳本計算拷貝后文件的crc校驗值與升級配置文件中對應的crc校驗值,驗證一致后,刪除原來的更新目錄的文件。優(yōu)選的,數(shù)據(jù)內(nèi)容最大長度k為1024字節(jié)。本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點和有益效果:1、本發(fā)明方法采用應用程序和驅(qū)動模塊里獨立升級的機制,單獨升級更快速可靠,避免升級整個系統(tǒng)文件升級,可以很大程度減少設備的返修率,快速實現(xiàn)功能完善以響應用戶需求。2、本發(fā)明方法支持誤碼重傳且采用應答機制確保傳輸正確性,降低錯誤率。3、本發(fā)明方法升級功能獨立于應用功能,即使出現(xiàn)錯誤導致設備功能異常,也能通過重新升級,快速恢復及更新系統(tǒng)功能,失敗可還原,可靠性高。4、本發(fā)明方法采用嵌入式linux操作系統(tǒng),在應用層實現(xiàn)主應用及驅(qū)動的更新,升級軟件以文件名的形式寫入存儲器,用戶無需關(guān)注對存儲器底層的讀寫操作,只需普通文件的操作,實現(xiàn)簡單,實用性強。附圖說明圖1是實施例在線升級方法的系統(tǒng)框圖;圖2是實施例在線升級方法的流程圖。具體實施方式下面結(jié)合實施例及附圖對本發(fā)明作進一步詳細的描述,但本發(fā)明的實施方式不限于此。一般來說,當產(chǎn)品硬件平臺固定后,引導程序和操作系統(tǒng)被修改的可能性非常小,后期的完善更多是應用程序或者驅(qū)動模塊微調(diào),所以應用程序和驅(qū)動模塊獨立升級是一種更好的解決辦法。本實施例提供一種嵌入式固件在線升級方法,如圖1所示,涉及遠程客戶端和嵌入式終端,兩者通過雙方認可的通信協(xié)議完成固件的在線升級。本方法采用嵌入式linux操作系統(tǒng),在應用層實現(xiàn)主應用及驅(qū)動的更新,升級軟件以文件名的形式寫入存儲器,用戶無需關(guān)注對存儲器底層的讀寫操作,只需普通文件的操作。遠程客戶端負責:文件的過濾;總文件校驗;對文件進行拆包后通過雙方認可的協(xié)議,經(jīng)過升級端口下發(fā)更新文件;對升級成功或失敗進行顯示。嵌入式終端主要包含三部分,升級服務程序,啟動檢測腳本和主應用程序,三者獨立運行。升級服務程序和啟動檢測腳本具有通用性,主應用程序視終端平臺而異。若用戶有更新需求,則遠程客戶端通過升級端口下發(fā)更新文件,嵌入式終端的升級服務程序后臺運行,一直監(jiān)聽升級端口,一旦有需求則遵循雙方認可的協(xié)議,完成文件傳輸,并存入更新目錄。文件傳輸過程中采用應答機制加校驗確保每幀數(shù)據(jù)的正確性和整個文件的完整性?,F(xiàn)有技術(shù)中,數(shù)據(jù)校驗是為保證數(shù)據(jù)完整性的一種手段,發(fā)送方用一種指定的算法對原始數(shù)據(jù)計算出一個校驗值;接收方用同樣的算法計算一次校驗值,如果接收方計算的校驗值和發(fā)送方隨數(shù)據(jù)提供的校驗值一樣,說明數(shù)據(jù)完整。數(shù)據(jù)校驗可以采用通用的校驗方式,如奇偶校驗、異或校驗、crc循環(huán)冗余校驗、md5校驗等,可以根據(jù)情況選擇合適的校驗算法。如圖2所示,嵌入式終端設備啟動進入系統(tǒng)后,啟動檢測腳本判斷在更新目錄下是否有更新文件,如果有則拷貝到對應的應用程序目錄和驅(qū)動目錄下。完成拷貝后刪除原來更新目錄下的文件,加載驅(qū)動模塊,主應用程序,還有升級服務程序。具體的說明如下:遠程客戶端和嵌入式終端雙方認可的升級協(xié)議組成包括:幀頭、幀長度、幀類型、數(shù)據(jù)內(nèi)容以及校驗值,如下表所示:幀頭幀長度幀類型數(shù)據(jù)內(nèi)容校驗值4字節(jié)2字節(jié)2字節(jié)k字節(jié)2字節(jié)幀長度包括幀類型、數(shù)據(jù)內(nèi)容、校驗值節(jié)數(shù)。遠程客戶端操作:步驟1:打開遠程客戶端,用戶選擇更新文件,遠程客戶端軟件計算總文件大小n字節(jié)、總文件校驗值和總幀數(shù)m;每一幀數(shù)據(jù)內(nèi)容最大長度為k字節(jié),總幀數(shù)m包括:更新文件控制幀(1個),還有更新文件內(nèi)容幀(假若n%k=0,m=n/k,否則m=n/k+1),本實施例中k=1024,校驗方式采用crc校驗值。步驟2:開始傳輸,第一幀為更新文件控制幀,包含更新文件控制信息,首先填充升級協(xié)議:幀類型為1,數(shù)據(jù)內(nèi)容包括文件總大小(4個字節(jié)),文件總crc值(2字節(jié))以及計算出的此幀crc校驗值;然后發(fā)送幀數(shù)據(jù)到嵌入式終端,收到終端應答確認后,繼續(xù)步驟3;否則重復發(fā)送,重復次數(shù)達到三次后,繼續(xù)步驟5;步驟3:開始更新文件內(nèi)容幀傳輸,從第2幀到m幀,與步驟2步驟一樣,幀類型為2,數(shù)據(jù)內(nèi)容長度k不能大于1024字節(jié),計算此幀crc校驗值,發(fā)送幀數(shù)據(jù)到嵌入式終端,收到終端應答確認后,繼續(xù)下一幀發(fā)送,發(fā)送完成后繼續(xù)步驟4;否則重復發(fā)送,發(fā)送次數(shù)達到三次后,繼續(xù)步驟5;步驟4:等待終端升級狀態(tài)應答,解析并顯示;步驟5:升級結(jié)束。終端升級服務程序:步驟1:啟動監(jiān)聽升級端口,有升級需求的話,繼續(xù)步驟2;步驟2:接收遠程客戶端發(fā)送的數(shù)據(jù),計算當前幀crc校驗值與遠程客戶端發(fā)送幀數(shù)據(jù)的校驗值是否一致,若一致則通過校驗,應答給遠程客戶端。解析幀數(shù)據(jù)的幀類型,根據(jù)幀類型提取信息,總文件的全部幀接收完成后,繼續(xù)步驟3;若不一致,應答給遠程客戶端,遠程客戶端重發(fā)該幀數(shù)據(jù);步驟3:計算接收到的總文件數(shù)據(jù)crc校驗值與第一幀更新文件控制信息中的文件總crc校驗值是否一致,如果一致,寫入更新目錄下,將各個文件crc校驗值以及對應的文件名稱存入升級配置文件,更新狀態(tài)為升級成功,應答遠程客戶端;否則,不寫入文件信息,更新狀態(tài)為升級錯誤,應答給遠程客戶端;繼續(xù)步驟4;步驟4:升級結(jié)束。啟動檢測腳本:步驟1:啟動檢測腳本判斷更新目錄下是否有更新文件,如果有,判斷是應用程序還是驅(qū)動模塊,如果為應用程序則拷貝到apps目錄下,如果為驅(qū)動模塊,拷貝到drivers目錄下,繼續(xù)步驟2;步驟2:計算拷貝后文件的crc校驗值與升級配置文件中對應的crc校驗值,驗證一致后,刪除原來的更新目錄的文件,繼續(xù)步驟3;步驟3:加載dirvers目錄下的驅(qū)動模塊,啟動app目錄下的升級服務程序、主應用程序。上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實施例的限制,其他的任何未背離本發(fā)明的精神實質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應為等效的置換方式,都包含在本發(fā)明的保護范圍之內(nèi)。當前第1頁12
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
新泰市| 怀集县| 霍山县| 灵璧县| 古交市| 横峰县| 石狮市| 威远县| 正镶白旗| 灯塔市| 湘乡市| 德清县| 元氏县| 桃园市| 富锦市| 张掖市| 泰来县| 鄱阳县| 商河县| 长宁区| 邢台市| 凤翔县| 韩城市| 济阳县| 安达市| 浑源县| 珠海市| 和林格尔县| 台中县| 南汇区| 韩城市| 承德县| 高唐县| 武强县| 凉城县| 黎川县| 益阳市| 图们市| 璧山县| 湘西| 三河市|