国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種嵌入式設(shè)備軟件升級的方法

      文檔序號:6545872閱讀:234來源:國知局
      一種嵌入式設(shè)備軟件升級的方法
      【專利摘要】本發(fā)明公開了一種嵌入式設(shè)備軟件升級的方法,包括(1)設(shè)備先讀取Boot參數(shù)區(qū)域起始地址的值,根據(jù)該值的不同將升級文件以相對應(yīng)的文件名寫到文件系統(tǒng)區(qū)域,修改Boot參數(shù)區(qū)域起始地址的值;(2)當(dāng)設(shè)備正常啟動(dòng)時(shí)轉(zhuǎn)向步驟(3);當(dāng)升錯(cuò)了軟件轉(zhuǎn)向步驟(4);(3)Boot程序讀取Boot參數(shù)區(qū)域起始地址的值,根據(jù)該值的不同將文件系統(tǒng)區(qū)域中相對應(yīng)的文件內(nèi)容讀入內(nèi)存中,跳到內(nèi)核入口地址開始執(zhí)行;(4)打開串口調(diào)試工具重新上電,用戶在等待期間按回車鍵進(jìn)入用戶命令模式;在用戶命令模式加上顯示及修改Boot參數(shù)區(qū)域起始地址的值命令。本發(fā)明的方法使得設(shè)備軟件升級過程安全可靠,升級出現(xiàn)意外時(shí)提供了恢復(fù)方法。
      【專利說明】一種嵌入式設(shè)備軟件升級的方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及一種嵌入式設(shè)備軟件升級的方法,屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】。
      【背景技術(shù)】
      [0002]一般的嵌入式設(shè)備基本上都提供了軟件升級的功能。為了更好的滿足用戶的需求,當(dāng)設(shè)備的生產(chǎn)廠家在軟件上新增某些功能特性或者是修復(fù)設(shè)備在使用過程中出現(xiàn)的某些問題等等,廠家就會(huì)發(fā)布新的軟件給用戶。用戶可以通過軟件升級的功能來更新設(shè)備的軟件,從而使設(shè)備更加穩(wěn)定可靠的運(yùn)行。
      [0003]雖然嵌入式設(shè)備提供了軟件升級的功能,但是用戶使用這個(gè)功能的時(shí)候可能會(huì)出現(xiàn)問題。很多用戶對設(shè)備了解很少,負(fù)責(zé)維護(hù)管理設(shè)備的人員甚至都不知道他所管理的設(shè)備可以通過軟件升級功能來更新設(shè)備的軟件。用戶對設(shè)備進(jìn)行軟件升級時(shí)可能會(huì)出現(xiàn)各種意外的情況,例如升錯(cuò)了軟件導(dǎo)致設(shè)備壞了,或者升級過程中斷電導(dǎo)致設(shè)備壞了。很多設(shè)備升級壞了以后必須要廠家的人員到現(xiàn)場才能解決問題,某些設(shè)備的停用還可能會(huì)對用戶帶來一定的經(jīng)濟(jì)損失。

      【發(fā)明內(nèi)容】

      [0004]針對現(xiàn)有技術(shù)存在的不足,本發(fā)明目的是提供一種嵌入式設(shè)備軟件升級的方法,使得嵌入式設(shè)備進(jìn)行軟件升級時(shí)更加安全可靠,升級過程出現(xiàn)意外也可以很容易對設(shè)備進(jìn)行恢復(fù)。
      [0005]為了實(shí)現(xiàn)上述目的,本發(fā)明是通過如下的技術(shù)方案來實(shí)現(xiàn):
      [0006]本發(fā)明的嵌入式設(shè)備軟件升級的方法,嵌入式設(shè)備帶有調(diào)試端口,包括以下幾個(gè)步驟:
      [0007](I)當(dāng)設(shè)備進(jìn)行軟件升級時(shí),設(shè)備先讀取Boot參數(shù)區(qū)域起始地址的值,根據(jù)該值的不同將升級文件以相對應(yīng)的文件名寫到文件系統(tǒng)區(qū)域,然后修改Boot參數(shù)區(qū)域起始地址的值,完成升級;
      [0008](2)當(dāng)設(shè)備能夠正常啟動(dòng)時(shí),則轉(zhuǎn)向步驟(3);當(dāng)升錯(cuò)了軟件導(dǎo)致設(shè)備啟動(dòng)不了時(shí),則轉(zhuǎn)向步驟⑷;
      [0009](3)Boot程序讀取Boot參數(shù)區(qū)域起始地址的值,根據(jù)該值的不同將文件系統(tǒng)區(qū)域中相對應(yīng)的文件內(nèi)容讀入內(nèi)存中,然后跳到內(nèi)核入口地址開始執(zhí)行,完成啟動(dòng);
      [0010](4)將調(diào)試端口通過調(diào)試線纜與電腦串口相連接,打開串口調(diào)試工具,重新給設(shè)備上電,Boot程序上電后會(huì)有幾秒鐘等待時(shí)間,用戶在這期間按回車鍵進(jìn)入用戶命令模式;
      [0011]然后,在用戶命令模式加上兩條命令,一個(gè)是顯示Boot參數(shù)區(qū)域起始地址的值,一個(gè)是修改Boot參數(shù)區(qū)域起始地址的值。
      [0012]上述Boot參數(shù)區(qū)域起始地址的值為I或2。
      [0013]步驟(I)中,升級時(shí),如果Boot參數(shù)區(qū)域起始地址的值為1,就將升級軟件內(nèi)容以文件名為B寫到文件系統(tǒng)區(qū)域中,然后將Boot參數(shù)區(qū)域起始地址的值修改為2 ;[0014]升級時(shí),如果Boot參數(shù)區(qū)域起始地址的值為2,就將升級軟件內(nèi)容以文件名為A寫到文件系統(tǒng)區(qū)域中,然后將Boot參數(shù)區(qū)域起始地址的值修改為I ;
      [0015]升級時(shí),如果Boot參數(shù)區(qū)域起始地址的值既不是I也不是2,就將升級軟件內(nèi)容以文件名為A寫到文件系統(tǒng)區(qū)域中,然后將Boot參數(shù)區(qū)域起始地址的值修改為I。
      [0016]步驟(3)中,設(shè)備啟動(dòng)時(shí),如果Boot參數(shù)區(qū)域起始地址的值為1,就將文件系統(tǒng)區(qū)域的文件A讀取到內(nèi)存中,然后跳到內(nèi)核入口地址開始執(zhí)行;
      [0017]如果Boot參數(shù)區(qū)域起始地址的值為2,就將文件系統(tǒng)區(qū)域的文件B讀取到內(nèi)存中,然后跳到內(nèi)核入口地址開始執(zhí)行;
      [0018]如果Boot參數(shù)區(qū)域起始地址的值既不是I也不是2,就將文件系統(tǒng)區(qū)域的文件A讀取到內(nèi)存中,然后跳到內(nèi)核入口地址開始執(zhí)行。
      [0019]步驟(4)中,顯示Boot參數(shù)區(qū)域起始地址的值的命令為s ;
      [0020]修改Boot參數(shù)區(qū)域起始地址的值的命令為w〈param>, param的取值只能是I或2。
      [0021]上述嵌入式設(shè)備上使用的是Flash存儲(chǔ)介質(zhì)。
      [0022]本發(fā)明軟件升級時(shí)根據(jù)Boot參數(shù)區(qū)域起始地址的值來寫相對應(yīng)的文件,然后修改Boot參數(shù)區(qū)域起始地址的值;啟動(dòng)時(shí)Boot程序根據(jù)Boot參數(shù)區(qū)域起始地址的值來讀相對應(yīng)的文件,然后跳到內(nèi)核入口地址開始執(zhí)行;在Boot程序的用戶命令模式提供顯示Boot參數(shù)區(qū)域起始地址值和修改Boot參數(shù)區(qū)域起始地址的值的功能。因此,本發(fā)明所提供的嵌入式設(shè)備軟件升級的方法,使得嵌入式設(shè)備軟件升級過程更加安全可靠,升級出現(xiàn)意外時(shí)也提供了恢復(fù)方法,避免了社會(huì)資源的浪費(fèi)。
      【專利附圖】

      【附圖說明】
      [0023]圖1為本發(fā)明方法中Flash的存儲(chǔ)示意圖;
      [0024]圖2為本發(fā)明方法中軟件升級的工作流程圖;
      [0025]圖3為本發(fā)明方法中設(shè)備啟動(dòng)的工作流程圖
      [0026]圖4為本發(fā)明方法Flash中Boot參數(shù)區(qū)域起始地址的值為I,文件系統(tǒng)區(qū)域中有文件A和文件B的存儲(chǔ)示意圖;
      [0027]圖5為圖4升級完成后Boot參數(shù)區(qū)域起始地址的值為2,文件B的內(nèi)容也被替換為升級軟件的存儲(chǔ)示意圖;
      [0028]圖6為圖4升級過程中斷電Boot參數(shù)區(qū)域起始地址的值為I,文件B的內(nèi)容也被替換為升級軟件或升級軟件的部分內(nèi)容的存儲(chǔ)示意圖;
      [0029]圖7為圖4升級過程中斷電Boot參數(shù)區(qū)域起始地址的值不確定,文件B的內(nèi)容也被替換為升級軟件的存儲(chǔ)示意圖。
      【具體實(shí)施方式】
      [0030]為使本發(fā)明實(shí)現(xiàn)的技術(shù)手段、創(chuàng)作特征、達(dá)成目的與功效易于明白了解,下面結(jié)合【具體實(shí)施方式】,進(jìn)一步闡述本發(fā)明。
      [0031]參見圖1,目前大多數(shù)的嵌入式設(shè)備上都使用Flash存儲(chǔ)介質(zhì),通常需要把Flash分區(qū)使用。Flash —般可以劃分為3個(gè)區(qū),第一個(gè)區(qū)存放Boot程序,第二個(gè)區(qū)存放Boot程序的參數(shù),第三個(gè)區(qū)存放文件系統(tǒng)。Boot程序相當(dāng)于PC機(jī)中的B10S,是設(shè)備加電后運(yùn)行的第一段代碼。簡單地說,Boot程序就是在操作系統(tǒng)內(nèi)核運(yùn)行前運(yùn)行的一段小程序,通過這段小程序,來初始化必要的硬件設(shè)備,創(chuàng)建內(nèi)核需要的一些信息并將這些信息通過相關(guān)機(jī)制傳遞給內(nèi)核,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),最終調(diào)用操作系統(tǒng)內(nèi)核,起到引導(dǎo)和加載內(nèi)核的作用。
      [0032]參見圖2、圖3所示,本發(fā)明具體包括以下的步驟:
      [0033]I)當(dāng)設(shè)備進(jìn)行軟件升級時(shí),設(shè)備先讀取Boot參數(shù)區(qū)域起始地址的值。
      [0034]如果該值為1,就將升級軟件內(nèi)容以文件名為B寫到文件系統(tǒng)區(qū)域中,然后將Boot參數(shù)區(qū)域起始地址的值修改為2。
      [0035]如果該值為2,就將升級軟件內(nèi)容以文件名為A寫到文件系統(tǒng)區(qū)域中,然后將Boot參數(shù)區(qū)域起始地址的值修改為I。
      [0036]如果該值既不是I也不是2,就將升級軟件內(nèi)容以文件名為A寫到文件系統(tǒng)區(qū)域中,然后將Boot參數(shù)區(qū)域起始地址的值修改為I。
      [0037]2)當(dāng)設(shè)備啟動(dòng)時(shí),等待用戶輸入,持續(xù)時(shí)間幾秒鐘,判斷是否有鍵盤輸入,如果有,則進(jìn)入命令行模式;如果否,則Boot程序先讀取Boot參數(shù)區(qū)域起始地址的值。
      [0038]如果該值為1,就將文件系統(tǒng)區(qū)域的文件A讀取到內(nèi)存中,然后跳到內(nèi)核入口地址開始執(zhí)行。
      [0039]如果該值為2,就將文件系統(tǒng)區(qū)域的文件B讀取到內(nèi)存中,然后跳到內(nèi)核入口地址開始執(zhí)行。
      [0040]如果該值既不是I也不是2,就將文件系統(tǒng)區(qū)域的文件A讀取到內(nèi)存中,然后跳到內(nèi)核入口地址開始執(zhí)行。
      [0041]3)為了解決設(shè)備軟件升級時(shí)升錯(cuò)了軟件導(dǎo)致設(shè)備啟動(dòng)不了的情況,需要在Boot程序的用戶命令模式加上兩條命令。一條命令是顯示Boot參數(shù)區(qū)域起始地址的值,命令為s ;一條命令是修改Boot參數(shù)區(qū)域起始地址的值,命令為w〈param>, param的取值只能是I或者2。
      [0042]下面具體說明一下設(shè)備軟件升級過程,可能出現(xiàn)的意外情況,以及設(shè)備出問題時(shí)如何恢復(fù)。
      [0043]參見圖4所示,假定設(shè)備當(dāng)前Boot參數(shù)區(qū)域起始地址的值為1,文件系統(tǒng)中有文件A和文件B。當(dāng)設(shè)備上電時(shí),Boot程序先讀取Boot參數(shù)區(qū)域起始地址的值。由于該值為1,于是Boot程序就將文件A的內(nèi)容讀到內(nèi)存中,然后跳到內(nèi)核入口地址開始執(zhí)行,設(shè)備就完成了啟動(dòng)過程。
      [0044]當(dāng)設(shè)備進(jìn)行軟件升級時(shí),設(shè)備先讀取Boot參數(shù)區(qū)域起始地址的值。由于該值為1,設(shè)備就將升級軟件內(nèi)容寫到文件系統(tǒng)中,文件名為B,也就是說原來的文件B的內(nèi)容被替換成了新的軟件。然后再將Boot參數(shù)區(qū)域起始地址的值修改為2,設(shè)備就完成了軟件升級過程。
      [0045]參見圖5所示,升級完成后Boot參數(shù)區(qū)域起始地址的值為2,文件B的內(nèi)容也被替換為新的軟件。設(shè)備再次重啟時(shí),Boot程序讀取Boot參數(shù)區(qū)域起始地址的值,由于該值為2,于是Boot程序就將文件B的內(nèi)容(就是新的軟件)讀到內(nèi)存中,然后跳到內(nèi)核入口地址開始執(zhí)行,也就是說設(shè)備這時(shí)候運(yùn)行的已經(jīng)是新的軟件。
      [0046]如果在軟件升級過程中出現(xiàn)了意外斷電,這可能會(huì)出現(xiàn)幾種情況:[0047](I)如果在寫文件之前斷電,則設(shè)備的一切和原來保持一致。重新上電以后設(shè)備就可以正常運(yùn)行,而且運(yùn)行的是老的軟件。
      [0048](2)如果在寫文件過程中斷電,則文件B的內(nèi)容就被替換成了升級軟件的一部分。參見圖6所示,與圖4相比設(shè)備改變的只有文件B,重新上電以后設(shè)備就可以正常運(yùn)行,而且運(yùn)行的是老的軟件。
      [0049](3)如果在寫完文件之后修改Boot參數(shù)區(qū)域起始地址的值之前斷電,則文件B的內(nèi)容就被替換成了新的軟件。參見圖6所示,與圖4相比設(shè)備改變的只有文件B,重新上電以后設(shè)備就可以正常運(yùn)行,而且運(yùn)行的是老的軟件。
      [0050](4)如果在修改Boot參數(shù)區(qū)域起始地址的值過程中斷電,則文件B的內(nèi)容就被替換成了新的軟件。參見圖7所示,與圖4相比設(shè)備文件B被改變了。另外由于Flash的特性,要修改Boot參數(shù)區(qū)域起始地址的值,先要進(jìn)行擦除操作,然后才能進(jìn)行寫操作。如果在擦除操作過程中斷電,那么該地址的值就是一個(gè)不確定的值。如果在擦除操作完成后斷電,那么該地址的值就變成了 255(該字節(jié)所有的位都是I)。如果在寫操作過程中斷電,那么該地址的值就是一個(gè)不確定的值。重新上電以后如果Boot參數(shù)區(qū)域起始地址的值不是2,設(shè)備就可以正常運(yùn)行,而且運(yùn)行的是老的軟件;如果Boot參數(shù)區(qū)域起始地址的值是2,設(shè)備也可以正常運(yùn)行,而且運(yùn)行的是新的軟件。
      [0051](5)如果在修改Boot參數(shù)區(qū)域起始地址的值完成后斷電,則文件B就被升級軟件內(nèi)容覆蓋掉了。參見圖5所示,Boot參數(shù)區(qū)域起始地址的值也修改了,這時(shí)實(shí)際上已經(jīng)完成了升級過程。重新上電以后設(shè)備就可以正常運(yùn)行,而且運(yùn)行的是新的軟件。
      [0052]綜合以上幾種情況,可以看到升級過程中斷電對設(shè)備沒有任何影響,都可以正常啟動(dòng)運(yùn)行。
      [0053]如果軟件升級過程中升錯(cuò)了軟件,參見圖5所示,文件B的內(nèi)容就是一個(gè)錯(cuò)誤的軟件。設(shè)備再次重啟時(shí),Boot程序?qū)⑽募﨎的內(nèi)容讀到內(nèi)存中,然后跳到內(nèi)核入口地址開始執(zhí)行,因?yàn)槲募﨎是一個(gè)錯(cuò)誤的軟件,所以設(shè)備就會(huì)啟動(dòng)不了。為了方便開發(fā)、調(diào)試和維護(hù)設(shè)備,大部分的嵌入式設(shè)備都會(huì)帶有調(diào)試端口。這個(gè)時(shí)候用調(diào)試線纜將電腦串口和設(shè)備的調(diào)試端口連接起來,打開超級終端或者其它串口調(diào)試工具,重新給設(shè)備上電。Boot程序上電后會(huì)有幾秒鐘等待時(shí)間,用戶可以在這期間按回車鍵進(jìn)入命令行模式。在命令行模式下,執(zhí)行命令s可以看到當(dāng)前Boot參數(shù)區(qū)域起始地址的值為2。這時(shí)可以執(zhí)行命令wl將Boot參數(shù)區(qū)域起始地址的值修改為I。重新上電以后設(shè)備就可以正常運(yùn)行,而且運(yùn)行的是老的軟件。也就是說升級升錯(cuò)了軟件以后可以通過設(shè)備的調(diào)試端口很容易的將設(shè)備恢復(fù)過來。
      [0054]以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點(diǎn)。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實(shí)施例的限制,上述實(shí)施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會(huì)有各種變化和改進(jìn),這些變化和改進(jìn)都落入要求保護(hù)的本發(fā)明范圍內(nèi)。本發(fā)明要求保護(hù)范圍由所附的權(quán)利要求書及其等效物界定。
      【權(quán)利要求】
      1.一種嵌入式設(shè)備軟件升級的方法,嵌入式設(shè)備帶有調(diào)試端口,其特征在于,包括以下幾個(gè)步驟: (1)當(dāng)設(shè)備進(jìn)行軟件升級時(shí),設(shè)備先讀取Boot參數(shù)區(qū)域起始地址的值,根據(jù)該值的不同將升級文件以相對應(yīng)的文件名寫到文件系統(tǒng)區(qū)域,然后修改Boot參數(shù)區(qū)域起始地址的值,完成升級; (2)當(dāng)設(shè)備能夠正常啟動(dòng)時(shí),則轉(zhuǎn)向步驟(3);當(dāng)升錯(cuò)了軟件導(dǎo)致設(shè)備啟動(dòng)不了時(shí),則轉(zhuǎn)向步驟⑷; (3)所述Boot程序讀取Boot參數(shù)區(qū)域起始地址的值,根據(jù)該值的不同將文件系統(tǒng)區(qū)域中相對應(yīng)的文件內(nèi)容讀入內(nèi)存中,然后跳到內(nèi)核入口地址開始執(zhí)行,完成啟動(dòng); (4)將所述調(diào)試端口通過調(diào)試線纜與電腦串口相連接,打開串口調(diào)試工具,重新給設(shè)備上電,Boot程序上電后會(huì)有幾秒鐘等待時(shí)間,用戶在這期間按回車鍵進(jìn)入用戶命令模式; 然后,在用戶命令模式加上兩條命令,一個(gè)是顯示Boot參數(shù)區(qū)域起始地址的值,一個(gè)是修改Boot參數(shù)區(qū)域起始地址的值。
      2.根據(jù)權(quán)利要求1所述的嵌入式設(shè)備軟件升級的方法,其特征在于, 所述Boot參數(shù)區(qū)域起始地址的值為I或2。
      3.根據(jù)權(quán)利要求2所述的嵌入式設(shè)備軟件升級的方法,其特征在于, 步驟(I)中,升級時(shí),如果Boot參數(shù)區(qū)域起始地址的值為1,就將升級軟件內(nèi)容以文件名為B寫到文件系統(tǒng)區(qū)域中,然后將Boot參數(shù)區(qū)域起始地址的值修改為2 ; 升級時(shí),如果Boot參數(shù)區(qū)域起始地址的值為2,就將升級軟件內(nèi)容以文件名為A寫到文件系統(tǒng)區(qū)域中,然后將Boot參數(shù)區(qū)域起始地址的值修改為I ; 升級時(shí),如果Boot參數(shù)區(qū)域起始地址的值既不是I也不是2,就將升級軟件內(nèi)容以文件名為A寫到文件系統(tǒng)區(qū)域中,然后將Boot參數(shù)區(qū)域起始地址的值修改為I。
      4.根據(jù)權(quán)利要求3所述的嵌入式設(shè)備軟件升級的方法,其特征在于, 步驟(3)中,設(shè)備啟動(dòng)時(shí),如果Boot參數(shù)區(qū)域起始地址的值為1,就將文件系統(tǒng)區(qū)域的文件A讀取到內(nèi)存中,然后跳到內(nèi)核入口地址開始執(zhí)行; 如果Boot參數(shù)區(qū)域起始地址的值為2,就將文件系統(tǒng)區(qū)域的文件B讀取到內(nèi)存中,然后跳到內(nèi)核入口地址開始執(zhí)行; 如果Boot參數(shù)區(qū)域起始地址的值既不是I也不是2,就將文件系統(tǒng)區(qū)域的文件A讀取到內(nèi)存中,然后跳到內(nèi)核入口地址開始執(zhí)行。
      5.根據(jù)權(quán)利要求4所述的嵌入式設(shè)備軟件升級的方法,其特征在于, 步驟(4)中,顯示Boot參數(shù)區(qū)域起始地址的值的命令為s ; 修改Boot參數(shù)區(qū)域起始地址的值的命令為w〈param>, param的取值只能是I或2。
      6.根據(jù)權(quán)利要求1至5任意一項(xiàng)所述的嵌入式設(shè)備軟件升級的方法,其特征在于, 所述嵌入式設(shè)備上使用的是Flash存儲(chǔ)介質(zhì)。
      【文檔編號】G06F9/445GK103995717SQ201410191622
      【公開日】2014年8月20日 申請日期:2014年5月7日 優(yōu)先權(quán)日:2014年5月7日
      【發(fā)明者】梁志寶 申請人:南京國電南自電網(wǎng)自動(dòng)化有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1