一種智能嵌入式設備多操作系統(tǒng)切換方法
【技術領域】
[0001]本發(fā)明涉及一種智能嵌入式設備多操作系統(tǒng)切換方法,屬于計算機系統(tǒng)技術領域。
【背景技術】
[0002]智能嵌入式設備如智能手機、平板電腦等,因其具有輕薄、便攜等特點獲得了快速普及。通常一臺智能嵌入式設備只能運行一類操作系統(tǒng),而各操作系統(tǒng)功能偏向均有所區(qū)另lj,如Android、1S主要側重于娛樂,Windows則更加適合辦公。業(yè)界為了實現(xiàn)多類型操作系統(tǒng)在智能嵌入式設備上運行,通常采用在引導啟動程序中添加用戶選擇菜單,獲取用戶選擇參數(shù)后選擇性啟動操作系統(tǒng)的方法。引導加載程序為操作系統(tǒng)啟動前負責實現(xiàn)操作系統(tǒng)引導啟動的簡單程序,基于此程序實現(xiàn)的多操作系統(tǒng)切換方案受到引導加載程序的制約,其可擴展性、可管理性均十分有限。
【發(fā)明內(nèi)容】
[0003]為了解決現(xiàn)有技術的不足,本發(fā)明提供了一種智能嵌入式設備多操作系統(tǒng)切換方法,解決了基于引導加載程序開發(fā)的多操作系統(tǒng)傳統(tǒng)切換方案可擴展性、可管理性不強的冋題。
[0004]本發(fā)明為解決其技術問題所采用的技術方案是:提供了一種智能嵌入式設備多操作系統(tǒng)切換方法,包括以下步驟:
[0005]步驟1:將存儲器分區(qū),存儲器地址依次劃分為U-Boot分區(qū)與系統(tǒng)分區(qū),將各操作系統(tǒng)的鏡像文件依次存放在系統(tǒng)分區(qū)內(nèi),且各操作系統(tǒng)的鏡像文件間設有安全間隔,根據(jù)各操作系統(tǒng)的鏡像文件的存儲地址建立系統(tǒng)鏡像文件分區(qū)表,根據(jù)該系統(tǒng)鏡像文件分區(qū)表在U-Boot分區(qū)中為各操作系統(tǒng)分別建立地址映射宏定義;所述地址映射宏定義包括NandFlash地址0S_ADDR、鏡像文件大小0S_LEN、鏡像文件位的內(nèi)存地址0S_RAM_ADDR及跳轉地址 0S_RAM_B00T_0FF ;
[0006]步驟2:在U-Boot分區(qū)中添加EEPROM標志位操作函數(shù),并定義各操作系統(tǒng)的標志位以及切換管理系統(tǒng)標志位;
[0007]步驟3:在U-Boot分區(qū)中分別添加各個操作系統(tǒng)的加載啟動函數(shù),各加載啟動函數(shù)用于將Nand Flash地址處的鏡像文件加載至內(nèi)存地址0S_RAM_ADDR中,并跳轉至內(nèi)存地址0S_RAM_ADDR啟動操作系統(tǒng)內(nèi)核;
[0008]步驟4:在QT環(huán)境設置操作系統(tǒng)啟動菜單,所述操作系統(tǒng)啟動菜單用于選擇不同的操作系統(tǒng);
[0009]步驟5:在操作系統(tǒng)啟動菜單中選擇一個操作系統(tǒng)來啟動,U-Boot調(diào)用EEPROM標志位操作函數(shù)讀取該操作系統(tǒng)的標志位,調(diào)用該標志位對應的操作系統(tǒng)的加載啟動函數(shù),啟動操作系統(tǒng)。
[0010]步驟5中,啟動操作系統(tǒng)前,調(diào)用EEPROM標志位操作函數(shù),將標志位改寫為切換管理系統(tǒng)標志位。
[0011]本發(fā)明基于其技術方案所具有的有益效果在于:
[0012](I)本發(fā)明通過使用切換管理系統(tǒng)對智能嵌入式設備多類型操作系統(tǒng)按照啟動邏輯進行統(tǒng)一的分區(qū)、引導操作,使得本方法能夠方便的完成多類型操作系統(tǒng)的切換;
[0013](2)本發(fā)明將各操作系統(tǒng)的鏡像文件依次存放在存儲器的系統(tǒng)分區(qū)內(nèi)并設置安全間隔,根據(jù)各操作系統(tǒng)的鏡像文件的存儲地址建立系統(tǒng)鏡像文件分區(qū)表,在U-Boot分區(qū)中根據(jù)系統(tǒng)鏡像文件分區(qū)表為各操作系統(tǒng)分別建立地址映射宏定義,并為各操作系統(tǒng)分別添加加載啟動函數(shù),定義與各操作系統(tǒng)對應的標志位,可以降低傳統(tǒng)“刷機”操作過程中的故障率,保證多類型操作系統(tǒng)切換的穩(wěn)定性;
[0014](3)本發(fā)明在QT環(huán)境設置操作系統(tǒng)啟動菜單,可提供更加人性化交互界面以及擴展性較強的切換系統(tǒng),彌補基于引導加載程序開發(fā)的選擇菜單交互體驗不強與可擴展性差的缺點。
【附圖說明】
[0015]圖1是實現(xiàn)本發(fā)明所述方法的系統(tǒng)結構示意圖。
[0016]圖2是本發(fā)明所述方法的流程圖。
[0017]圖3是本發(fā)明實施例存儲器地址分區(qū)表。
[0018]圖4是操作系統(tǒng)啟動菜單界面示意圖。
【具體實施方式】
[0019]下面結合附圖和實施例對本發(fā)明作進一步說明。
[0020]本發(fā)明提供了一種智能嵌入式設備多操作系統(tǒng)切換方法,參照圖2,包括以下步驟:
[0021]步驟1:將存儲器分區(qū),存儲器地址依次劃分為U-Boot分區(qū)與系統(tǒng)分區(qū),將各操作系統(tǒng)的鏡像文件依次存放在系統(tǒng)分區(qū)內(nèi),且各操作系統(tǒng)的鏡像文件間設有安全間隔,根據(jù)各操作系統(tǒng)的鏡像文件的存儲地址建立系統(tǒng)鏡像文件分區(qū)表,根據(jù)該系統(tǒng)鏡像文件分區(qū)表在U-Boot分區(qū)中為各操作系統(tǒng)分別建立地址映射宏定義;所述地址映射宏定義包括NandFlash地址0S_ADDR、鏡像文件大小0S_LEN、鏡像文件位的內(nèi)存地址0S_RAM_ADDR及跳轉地址 0S_RAM_B00T_0FF ;
[0022]步驟2:在U-Boot分區(qū)中添加EEPROM標志位操作函數(shù),并定義各操作系統(tǒng)的標志位以及切換管理系統(tǒng)標志位;
[0023]步驟3:在U-Boot分區(qū)中分別添加各個操作系統(tǒng)的加載啟動函數(shù),各加載啟動函數(shù)用于將Nand Flash地址處的鏡像文件加載至內(nèi)存地址0S_RAM_ADDR中,并跳轉至內(nèi)存地址0S_RAM_ADDR啟動操作系統(tǒng)內(nèi)核;
[0024]步驟4:在QT環(huán)境設置操作系統(tǒng)啟動菜單,所述操作系統(tǒng)啟動菜單用于選擇不同的操作系統(tǒng);
[0025]步驟5:在操作系統(tǒng)啟動菜單中選擇一個操作系統(tǒng)來啟動,U-Boot調(diào)用EEPROM標志位操作函數(shù)讀取該操作系統(tǒng)的標志位,調(diào)用該標志位對應的操作系統(tǒng)的加載啟動函數(shù),啟動操作系統(tǒng)。
[0026]步驟5中,啟動操作系統(tǒng)前,調(diào)用EEPROM標志位操作函數(shù),將標志位改寫為切換管理系統(tǒng)標志位。
[0027]利用本發(fā)明的智能嵌入式設備多操作系統(tǒng)切換方法可以應用于如圖1所示的基于Linux的智能嵌入式設備。智能嵌入式設備硬件配置為:FriendlyARM公司Mini6410開發(fā)板(Samsung S3C6410 處理器,ARM1176JZF-S 內(nèi)核,主頻 533MHz/667MHz,IGB Nand Flash存儲器,256B IIC接口 EEPROM存儲器)
[0028]智能嵌入式設備軟件配置:
[0029]Linux QT (內(nèi)核版本:2.6.38,文件系統(tǒng)使用VFS) ,Android 2.3.4 (文件系統(tǒng)使用VFS), Windows CE 6.0, U-Boot 1.1.5。
[0030]第一步,將存儲器分區(qū),如圖3所示,從Nand Flash地址O開始的256KB存儲區(qū)域存放U-Boot程序,在U-Boot分區(qū)后存儲空間為系統(tǒng)分區(qū),以安全間隔存儲Windows CE、切換管理系統(tǒng)、Linux、Android系統(tǒng)內(nèi)核及文件系統(tǒng)鏡像文