一種系統(tǒng)升級方法及嵌入式系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及嵌入式系統(tǒng)技術領域,尤其涉及一種系統(tǒng)升級方法及嵌入式系統(tǒng)。
【背景技術】
[0002]現有技術中,如果一個嵌入式系統(tǒng)需要進行升級,通常要在系統(tǒng)被啟動起來之后進行,例如一些家用路由器通過連接到web網絡服務器的方式進行升級。在這種升級過程中,若在向閃存(Flash)分區(qū)燒錄升級文件時出現突發(fā)狀況而被迫停止,則可能會對系統(tǒng)區(qū)域造成破壞,更為嚴重的情況可能會導致系統(tǒng)無法正常運行。而即使在工廠里由于重工更新系統(tǒng)版本時,也需要通過串口輸入命令來進行系統(tǒng)版本的升級,因此會增加系統(tǒng)升級的工作量。
【發(fā)明內容】
[0003]根據現有技術中存在的問題,現提供一種系統(tǒng)升級方法及嵌入式系統(tǒng)的技術方案,旨在解決現有技術中必須在嵌入式系統(tǒng)啟動后才能進行系統(tǒng)升級的問題,減少系統(tǒng)升級的相關工作量,保證系統(tǒng)升級過程的穩(wěn)定性,簡化系統(tǒng)升級的過程。
[0004]上述技術方案具體包括:
[0005]一種系統(tǒng)升級方法,適用于嵌入式系統(tǒng);其中,于所述嵌入式系統(tǒng)上電運行后,執(zhí)行下述步驟:
[0006]步驟SI,采用所述嵌入式系統(tǒng)內設置的一配置加載單元對所述嵌入式系統(tǒng)內的預設按鍵進行初始化操作;
[0007]步驟S2,判斷所述預設按鍵是否處于被按下狀態(tài),并在所述預設按鍵處于被按下狀態(tài)時轉向步驟S3 ;
[0008]步驟S3,采用所述配置加載單元從一外部的服務器中下載預設的系統(tǒng)升級文件;
[0009]步驟S4,根據所述系統(tǒng)升級文件對所述嵌入式系統(tǒng)進行升級,并啟動所述嵌入式系統(tǒng),隨后退出。
[0010]優(yōu)選的,該系統(tǒng)升級方法,其中,所述步驟SI還包括,采用所述配置加載單元對所述嵌入式系統(tǒng)內的各基礎硬件進行初始化操作。
[0011]優(yōu)選的,該系統(tǒng)升級方法,其中,所述步驟SI中,對所述預設按鍵進行初始化操作包括:
[0012]將所述預設按鍵連接所述嵌入式系統(tǒng)的處理器的引腳設置為處于通用輸入/輸出狀態(tài);以及
[0013]將所述預設按鍵連接所述處理器的引腳的輸入/輸出方向設置為向所述處理器輸入信號。
[0014]優(yōu)選的,該系統(tǒng)升級方法,其中,所述步驟S2中,通過判斷所述預設按鍵連接所述嵌入式系統(tǒng)的處理器的引腳的輸出電平,判斷所述預設按鍵是否處于被按下狀態(tài):
[0015]若所述預設按鍵的所述引腳的所述輸出電平對應于所述預設按鍵處于被按下狀態(tài)的電平,則判斷所述預設按鍵處于被按下狀態(tài)。
[0016]優(yōu)選的,該系統(tǒng)升級方法,其中,所述預設按鍵處于被按下狀態(tài)的電平為高電平。
[0017]優(yōu)選的,該系統(tǒng)升級方法,其中,所述步驟S2中,所述預設按鍵處于被按下狀態(tài)的電平為低電平。
[0018]優(yōu)選的,該系統(tǒng)升級方法,其中,所述步驟S2具體包括:
[0019]步驟S21,判斷所述預設按鍵是否處于被按下狀態(tài),并在所述預設按鍵處于被按下狀態(tài)時轉向步驟S22 ;
[0020]步驟S22,等待預設的時間間隔后,再次判斷所述預設按鍵是否處于被按下狀態(tài),并在所述預設按鍵處于被按下狀態(tài)時轉向步驟S23 ;
[0021]步驟S23,確認所述預設按鍵處于被按下狀態(tài)。
[0022]優(yōu)選的,該系統(tǒng)升級方法,其中,所述預設的時間間隔的取值范圍為10ms-20ms。
[0023]優(yōu)選的,該系統(tǒng)升級方法,其中,所述嵌入式系統(tǒng)中的所述配置加載單元與外部的所述服務器之間實現網絡連接;
[0024]所述步驟S3中,采用所述配置加載單元,根據預先配置的IP地址,從相應的所述服務器中下載獲得預設的所述系統(tǒng)升級文件。
[0025]優(yōu)選的,該系統(tǒng)升級方法,其中,所述步驟S4中,將下載獲得的所述系統(tǒng)升級文件燒錄至所述嵌入式系統(tǒng)的內核分區(qū)以及閃存分區(qū)中。
[0026]優(yōu)選的,該系統(tǒng)升級方法,其中,所述步驟S4中,在根據所述系統(tǒng)升級文件對所述嵌入式系統(tǒng)進行升級完畢后,轉入所述嵌入式系統(tǒng)的內核態(tài),并啟動所述嵌入式系統(tǒng)。
[0027]優(yōu)選的,該系統(tǒng)升級方法,其中,所述步驟S2中,若所述預設按鍵未處于被按下狀態(tài),則直接轉入所述嵌入式系統(tǒng)的內核態(tài),并啟動所述嵌入式系統(tǒng)。
[0028]一種嵌入式系統(tǒng),其中,采用上述的系統(tǒng)升級方法。
[0029]上述技術方案的有益效果是:解決現有技術中必須在嵌入式系統(tǒng)啟動后才能進行系統(tǒng)升級的問題,減少系統(tǒng)升級的相關工作量,保證系統(tǒng)升級過程的穩(wěn)定性,簡化系統(tǒng)升級的過程。
【附圖說明】
[0030]圖1是現有技術中,嵌入式系統(tǒng)的內部邏輯存儲區(qū)域示意圖;
[0031]圖2是本發(fā)明的較佳的實施例中,一種系統(tǒng)升級方法的總體流程示意圖;
[0032]圖3是本發(fā)明的較佳的實施例中,于圖2的基礎上,對預設按鍵是否處于被按下狀態(tài)進行判斷的流程示意圖。
【具體實施方式】
[0033]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0034]需要說明的是,在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互組合。
[0035]下面結合附圖和具體實施例對本發(fā)明作進一步說明,但不作為本發(fā)明的限定。
[0036]現有的嵌入式系統(tǒng),其內部邏輯存儲結構通常如圖1所示,其中包括了配置加載分區(qū)(BootLoader),內核分區(qū)(Kernel)以及閃存分區(qū)(Flash,FS)。
[0037]I)在嵌入式系統(tǒng)中,BootLoader分區(qū)是在操作系統(tǒng)內核運行之前運行的。BootLoader可以初始化硬件設備、建立內存空間映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適狀態(tài),以便為最終調用操作系統(tǒng)內核準備好正確的環(huán)境。
[0038]2)在嵌入式系統(tǒng)中,Kernel分區(qū)是指嵌入式系統(tǒng)的主內核分區(qū),是帶動嵌入式系統(tǒng)正常運行的核心。
[0039]3)在嵌入式系統(tǒng)中,FS分區(qū)是一種電可擦可編程只讀存儲器,用于保存嵌入式系統(tǒng)的一些配置信息。
[0040]則本發(fā)明的較佳的實施例中,基于現有技術中存在的上述問題,現提供一種系統(tǒng)升級方法,適用于嵌入式系統(tǒng)。該系統(tǒng)升級方法的總體流程如圖2所示,具體包括:
[0041 ] 步驟SI,采用嵌入式系統(tǒng)內設置的一配置加載單元對嵌入式系統(tǒng)內的預設按鍵進行初始化操作;
[0042]本發(fā)明的較佳的實施例中,所謂配置加載單元,可以為嵌入式系統(tǒng)中設置的BootLoader,即運行BootLoader分區(qū)中的初始化程序,對嵌入式系統(tǒng)中的預設按鍵進行初始化操作。
[0043]本發(fā)明的較佳的實施例中,所謂預設按鍵,可以是一個預先指定的按鍵,例如在嵌入式系統(tǒng)中設定一個系統(tǒng)升級按鍵,并將該系統(tǒng)升級按鍵作為預設按鍵。
[0044]本發(fā)明的較佳的實施例中,對于預設按鍵的初始化操作,可以包括:
[0045]將預設按鍵連接嵌入式系統(tǒng)的處理器的引腳設置為處于通用輸入/輸出狀態(tài);以及
[0046]將預設按鍵連接處理器的引腳的輸入/輸出方向設置為向處理器輸入信號。
[0047]即本發(fā)明的較佳的實施例中,對于預設按鍵的初始化操作為:將預設按鍵連接處理器(CPU)的引腳設置為處于通用輸入/輸出(General Purpose Input/Output,GP10)狀態(tài),并且將該引腳的1/0方向設置為輸入CPU。
[0048]本發(fā)明的較佳的實施例中,上述步驟SI中,采用BootLoader,在嵌入式系統(tǒng)上電后首先對嵌入式系統(tǒng)內的各基礎硬件進行初始化操作,則上文中所述的對嵌入式系統(tǒng)的預設按鍵進行初始化操作的過程被包括在對各基礎硬件進行初始化操作的過程中進行。
[0049]步驟S2,判斷預設按鍵是否處于被按下狀態(tài),并在預設按鍵處于被按下狀態(tài)時轉向步驟S3 ;
[0050]本發(fā)明的較佳的實施例中,如圖3所示,上述步驟S2具體包括:
[0051]步驟S21,判斷預設按鍵是否處于被按下狀態(tài),并在預設按鍵處于被按下狀態(tài)時轉向步驟S22 ;
[0052]本發(fā)明的一個較佳的實施例中,判斷預設按鍵是否處于被按下狀態(tài)的方法包括:
[0053]通過判斷預設按鍵連接嵌入式系統(tǒng)的處理器的引腳的輸出電平,判斷預設按鍵是否處于被按下狀態(tài):
[0054]若預設按鍵的引腳的輸出