一種適用于arm架構(gòu)移動(dòng)設(shè)備的多操作系統(tǒng)切換方法
【專利摘要】本發(fā)明公開了一種適用于ARM架構(gòu)移動(dòng)設(shè)備的多操作系統(tǒng)切換方法,屬于移動(dòng)設(shè)備的操作系統(tǒng)【技術(shù)領(lǐng)域】。在ARM架構(gòu)的移動(dòng)設(shè)備開機(jī)后,先進(jìn)行內(nèi)存、網(wǎng)絡(luò)設(shè)備、看門狗、I/O等設(shè)備的初始化,之后進(jìn)入操作系統(tǒng)選擇界面,Bootloader會(huì)根據(jù)用戶選定的操作系統(tǒng)設(shè)置相應(yīng)啟動(dòng)參數(shù),同時(shí)向服務(wù)器端發(fā)送啟動(dòng)中斷,服務(wù)器截?cái)嘣撝袛嘈盘?hào)后,會(huì)搜索對(duì)應(yīng)的系統(tǒng)內(nèi)核、文件系統(tǒng),并將系統(tǒng)內(nèi)核以文件形式加載到客戶端,燒錄進(jìn)既定的Flash分區(qū)再啟動(dòng),文件系統(tǒng)直接采用nfs網(wǎng)絡(luò)協(xié)議掛載到根目錄下,完成操作系統(tǒng)的網(wǎng)絡(luò)啟動(dòng)。本發(fā)明無需在ARM架構(gòu)的移動(dòng)終端設(shè)備上預(yù)先安裝操作系統(tǒng),實(shí)現(xiàn)了本地?zé)o操作系統(tǒng),而通過網(wǎng)絡(luò)啟動(dòng)多操作系統(tǒng)的目的。
【專利說明】一種適用于ARM架構(gòu)移動(dòng)設(shè)備的多操作系統(tǒng)切換方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及移動(dòng)設(shè)備的操作系統(tǒng)【技術(shù)領(lǐng)域】,特別是一種適用于ARM架構(gòu)移動(dòng)設(shè)備的多操作系統(tǒng)切換方法。
【背景技術(shù)】
[0002]ARM架構(gòu)是一個(gè)32位元精簡(jiǎn)指令集中央處理器架構(gòu),由于具有體積小、低功耗、低成本等特點(diǎn),ARM架構(gòu)的處理器廣泛應(yīng)用于各種嵌入式設(shè)備中,如目前市場(chǎng)上大部分智能手機(jī),平板電腦等移動(dòng)設(shè)備都屬于ARM架構(gòu)。
[0003]現(xiàn)有的ARM架構(gòu)移動(dòng)設(shè)備上多操作系統(tǒng)切換方法主要有兩種,一種是使用虛擬機(jī)方法,另一種是同一設(shè)備上預(yù)裝多個(gè)操作系統(tǒng)的方法。
[0004]使用虛擬機(jī)的方法,先在硬件設(shè)備上安裝虛擬機(jī)所需要的Host操作系統(tǒng)和虛擬機(jī)管理軟件,再安裝所需運(yùn)行的多操作系統(tǒng),在虛擬機(jī)管理軟件的支持下,實(shí)現(xiàn)多操作系統(tǒng)的切換。缺點(diǎn)在于Host操作系統(tǒng)和虛擬機(jī)管理軟件均大量占用系統(tǒng)資源,且需預(yù)裝操作系統(tǒng)。
[0005]另一種在同一設(shè)備上預(yù)裝多個(gè)操作系統(tǒng)的方法,需要預(yù)先將存儲(chǔ)器進(jìn)行分區(qū),將需要安裝的操作系統(tǒng)鏡像文件存儲(chǔ)在不同的分區(qū)上,操作系統(tǒng)啟動(dòng)前進(jìn)行分區(qū)的選擇。缺點(diǎn)主要在于所選擇的操作系統(tǒng)需要預(yù)先安裝好,對(duì)硬件的存儲(chǔ)空間也有一定的要求。
【發(fā)明內(nèi)容】
[0006]本發(fā)明所要解決的技術(shù)問題是,針對(duì)現(xiàn)有技術(shù)不足,提供一種適用于ARM架構(gòu)移動(dòng)設(shè)備的多操作系統(tǒng)切換方法,不需要在移動(dòng)設(shè)備上預(yù)安裝或存儲(chǔ)任何操作系統(tǒng),即可利用服務(wù)器端啟動(dòng)所需要的操作系統(tǒng),實(shí)現(xiàn)多操作系統(tǒng)支持和切換。
[0007]為解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是:一種適用于ARM架構(gòu)移動(dòng)設(shè)備的多操作系統(tǒng)切換方法,該方法為:
1)在ARM架構(gòu)智能移動(dòng)設(shè)備的Bootloader層設(shè)計(jì)操作系統(tǒng)選擇的圖形用戶界面;
2)在ARM架構(gòu)智能移動(dòng)設(shè)備的Bootloader層移植IXD驅(qū)動(dòng),在IXD上顯示上述圖形用戶界面,并通過LCD選擇需要啟動(dòng)的操作系統(tǒng);
3)在ARM架構(gòu)智能移動(dòng)設(shè)備的Bootloader中移植無線網(wǎng)卡驅(qū)動(dòng),使ARM架構(gòu)智能移動(dòng)設(shè)備與服務(wù)器端建立網(wǎng)絡(luò)連接,使用文件傳輸協(xié)議加載操作系統(tǒng)內(nèi)核到ARM架構(gòu)智能移動(dòng)設(shè)備;
4)對(duì)ARM架構(gòu)智能移動(dòng)設(shè)備的Flash進(jìn)行分區(qū),為不同的操作系統(tǒng)劃分專用的Flash區(qū)域;
5)在Bootloader中寫入不同操作系統(tǒng)引導(dǎo)代碼,將需要啟動(dòng)的操作系統(tǒng)內(nèi)核從服務(wù)器下載到內(nèi)存中,然后從內(nèi)存中加載到相應(yīng)的Flash分區(qū)中執(zhí)行,采用nfs網(wǎng)絡(luò)協(xié)議將需要啟動(dòng)的操作系統(tǒng)的文件系統(tǒng)直接掛載在nfs共享目錄下,完成操作系統(tǒng)啟動(dòng);
6)在服務(wù)器上配置好tftp和nfs網(wǎng)絡(luò)服務(wù),采用tftp和nfs網(wǎng)絡(luò)協(xié)議為ARM架構(gòu)智能移動(dòng)設(shè)備端提供服務(wù),通過配置網(wǎng)絡(luò)服務(wù)環(huán)境,為用戶提供各種服務(wù);
7)編譯經(jīng)以上步驟I)?步驟6)修改過后的Boot loader,并將編譯后的Boot loader下載到Flash的Boot loader分區(qū)內(nèi)。
[0008]所述步驟3)中,使用tftp文件傳輸協(xié)議加載操作系統(tǒng)內(nèi)核到ARM架構(gòu)智能移動(dòng)設(shè)備。
[0009]與現(xiàn)有技術(shù)相比,本發(fā)明所具有的有益效果為:本發(fā)明可以在一個(gè)沒有預(yù)裝操作系統(tǒng)的ARM架構(gòu)移動(dòng)通信設(shè)備上,通過圖形界面選擇所需啟動(dòng)的操作系統(tǒng),進(jìn)而從服務(wù)器端加載內(nèi)核并啟動(dòng),實(shí)現(xiàn)了多操作系統(tǒng)的支持和切換,而且操作系統(tǒng)運(yùn)行在移動(dòng)通信設(shè)備上,但所有程序和數(shù)據(jù)存儲(chǔ)在服務(wù)器端,這種本地計(jì)算,遠(yuǎn)程存儲(chǔ)的模式,具有較好的數(shù)據(jù)安全性。
【專利附圖】
【附圖說明】
[0010]圖1為本發(fā)明一實(shí)施例方法流程圖;
圖2為IXD驅(qū)動(dòng)流程圖;
圖3本發(fā)明一實(shí)施例網(wǎng)卡驅(qū)動(dòng)主程序流程圖;
圖4本發(fā)明一實(shí)施例網(wǎng)卡驅(qū)動(dòng)中斷服務(wù)程序流程圖;
圖5為NAND Flash分區(qū)結(jié)構(gòu)圖;
圖6為引導(dǎo)程序流程圖;
圖7為本發(fā)明一實(shí)施例移動(dòng)設(shè)備NAND Flash分區(qū)結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0011]本發(fā)明的總體思路為:在ARM架構(gòu)的移動(dòng)設(shè)備開機(jī)后,先進(jìn)行內(nèi)存、網(wǎng)絡(luò)設(shè)備、看門狗、1/0等設(shè)備的初始化,之后進(jìn)入操作系統(tǒng)選擇界面,Bootloader會(huì)根據(jù)用戶選定的操作系統(tǒng)設(shè)置相應(yīng)啟動(dòng)參數(shù),同時(shí)向服務(wù)器端發(fā)送啟動(dòng)中斷,服務(wù)器截?cái)嘣撝袛嘈盘?hào)后,會(huì)搜索對(duì)應(yīng)的系統(tǒng)內(nèi)核、文件系統(tǒng),并將系統(tǒng)內(nèi)核以文件形式加載到客戶端,燒錄進(jìn)既定的Flash分區(qū)再啟動(dòng),文件系統(tǒng)直接采用nfs網(wǎng)絡(luò)協(xié)議掛載到根目錄下,完成操作系統(tǒng)的網(wǎng)絡(luò)啟動(dòng)。
[0012]本發(fā)明具體步驟如下:
S1:在ARM架構(gòu)智能移動(dòng)設(shè)備的Boot loader層設(shè)計(jì)一個(gè)操作系統(tǒng)選擇的圖形用戶界面:在Boot loader層添加開機(jī)圖形用戶界面,顯示可選的多操作系統(tǒng)列表,添加菜單和按鍵選擇功能,增強(qiáng)人機(jī)交互性。
[0013]S2:在ARM架構(gòu)智能移動(dòng)設(shè)備的Boot loader層移植LCD驅(qū)動(dòng):參照附圖2,在Bootloader層增加IXD驅(qū)動(dòng)程序,在IXD上顯示SI的圖形用戶界面,用戶通過IXD按鍵選擇所需要啟動(dòng)的操作系統(tǒng)。
[0014]S3:在ARM架構(gòu)智能移動(dòng)設(shè)備的Boot loader中移植無線網(wǎng)卡驅(qū)動(dòng):參照附圖3和附圖4,在Boot loader中增加無線網(wǎng)卡驅(qū)動(dòng),實(shí)現(xiàn)在無操作系統(tǒng)的情況下與服務(wù)器端建立網(wǎng)絡(luò)連接,然后使用tftp文件傳輸協(xié)議加載操作系統(tǒng)內(nèi)核到移動(dòng)設(shè)備。
[0015]S4:對(duì)ARM架構(gòu)智能移動(dòng)設(shè)備的Flash進(jìn)行分區(qū):使用Flash分區(qū)技術(shù),為不同的操作系統(tǒng)劃分專用的Flash區(qū)域,用于引導(dǎo)系統(tǒng)時(shí)能正確啟動(dòng)需要的操作系統(tǒng),并且在分區(qū)時(shí)需要充分考慮到不同系統(tǒng)對(duì)Flash的使用和影響,將Boot loader置于Flash的開始部分、操作系統(tǒng)內(nèi)核通常放在文件系統(tǒng)之前。
[0016]S5:設(shè)計(jì)引導(dǎo)程序管理機(jī)制,對(duì)完成S4以后所形成的多個(gè)分區(qū)進(jìn)行管理,參照附圖5,實(shí)現(xiàn)多系統(tǒng)支持:不同系統(tǒng)的啟動(dòng)參數(shù)以及環(huán)境變量并不相同,Boot loader中要先寫好不同操作系統(tǒng)引導(dǎo)代碼,參照附圖6,當(dāng)用戶選擇某一系統(tǒng)時(shí),通過啟動(dòng)這一系統(tǒng)的引導(dǎo)代碼,傳遞系統(tǒng)啟動(dòng)參數(shù),在Flash中無任何操作系統(tǒng)鏡像的情況下,將該系統(tǒng)內(nèi)核通過網(wǎng)絡(luò)從服務(wù)器下載到內(nèi)存中,從內(nèi)存中加載到相應(yīng)的Flash分區(qū)中執(zhí)行,完成系統(tǒng)啟動(dòng)。
[0017]S6:設(shè)置服務(wù)器端和網(wǎng)絡(luò)環(huán)境:準(zhǔn)備一臺(tái)PC作為服務(wù)器,事先配置好tftp和nfs網(wǎng)絡(luò)服務(wù),采用tftp和nfs網(wǎng)絡(luò)協(xié)議為移動(dòng)設(shè)備端提供資源存儲(chǔ)和管理、用戶管理、系統(tǒng)監(jiān)控等服務(wù),通過配置網(wǎng)絡(luò)服務(wù)環(huán)境,建立用戶目錄來配合客戶端為用戶提供操作系統(tǒng)、應(yīng)用管理等各種服務(wù)。
[0018]S7:編譯運(yùn)行:將經(jīng)過以上六個(gè)步驟修改過后的Boot loader進(jìn)行編譯,并下載到Flash 的 Boot loader 分區(qū)內(nèi)。
[0019]完成以上七個(gè)步驟便可上電啟動(dòng),運(yùn)行Boot loader,進(jìn)入圖形用戶界面,Bootloader會(huì)根據(jù)用戶選定的操作系統(tǒng)設(shè)置相應(yīng)啟動(dòng)參數(shù),同時(shí)向服務(wù)器端發(fā)送啟動(dòng)中斷,月艮務(wù)器截?cái)嘣撝袛嘈盘?hào)后,會(huì)搜索對(duì)應(yīng)的系統(tǒng)內(nèi)核、文件系統(tǒng),并以文件形式加載到客戶端,燒錄進(jìn)Flash分區(qū)再啟動(dòng),文件系統(tǒng)直接采用nfs協(xié)議掛載到根目錄下,完成操作系統(tǒng)的網(wǎng)絡(luò)啟動(dòng)。
[0020]以下結(jié)合具體實(shí)例說明本發(fā)明的方法。
[0021]該實(shí)例采用型號(hào)為0K6410的一款A(yù)RM架構(gòu)智能移動(dòng)終端開發(fā)板作為移動(dòng)設(shè)備,該開發(fā)板可用于開發(fā)平板電腦、手機(jī)等,硬件配置為:ARM架構(gòu)CPU,型號(hào)為S3C6410 ;無線網(wǎng)卡,型號(hào)Marvell 8686 ;按鍵模塊;存儲(chǔ)模塊為2G容量的NAND Flash。采用Uboot作為具體的Boot loader層實(shí)例;使用上述S1?S7的步驟,實(shí)現(xiàn)在未安裝任何操作系統(tǒng)的情況下,對(duì)Linux和Android兩個(gè)常用的嵌入式系統(tǒng)進(jìn)行支持和切換。具體實(shí)施步驟如圖1中的SI" S7所示。
[0022]實(shí)例S1:在Uboot中添加圖形用戶界面:找一個(gè)jpeg文件,通過命令行處理為8bit的bmp圖片。將bmp文件放入/tools/logos中,并修改Makef iIe文件,替換相關(guān)bmp文件名,修改配置文件。在Uboot的main函數(shù)中添加幾組switch語句用來選擇按鍵,準(zhǔn)備轉(zhuǎn)入啟動(dòng)部分代碼。
[0023]實(shí)例S2:在Uboot啟動(dòng)之后,進(jìn)入到菜單選擇界面。這里要添加一個(gè)IXD驅(qū)動(dòng)模塊:在driver/video目錄下新建s3c6410_fb.c,用來設(shè)置與LCD相關(guān)的寄存器,并修改相關(guān)配置文件。
[0024]實(shí)例S3:引用驅(qū)動(dòng)移植技術(shù),在帶有SDIO接口驅(qū)動(dòng)的Uboot上移植網(wǎng)卡驅(qū)動(dòng)程序,進(jìn)入board /smdk6410.c目錄,將默認(rèn)網(wǎng)卡驅(qū)動(dòng)替換成無線網(wǎng)卡Marvell8686的驅(qū)動(dòng),并修改相關(guān)配置文件,這樣就添加了對(duì)無線網(wǎng)卡的支持,為后續(xù)網(wǎng)絡(luò)啟動(dòng)和引導(dǎo)操作系統(tǒng)做鋪墊。
[0025]實(shí)例S4:參照附圖7,該方法中引用了 NAND Flash分區(qū)技術(shù),對(duì)Flash存儲(chǔ)器進(jìn)行區(qū)域劃分,將Flash上第一個(gè)2M空間留給客戶端啟動(dòng)引導(dǎo)程序,即修改過的Uboot,隨后5M是Linux的操作系統(tǒng)內(nèi)核分區(qū),再5M是Android的操作系統(tǒng)內(nèi)核分區(qū)。[0026]實(shí)例S5:客戶端Uboot設(shè)置bootargs啟動(dòng)參數(shù):通過tftp協(xié)議,將Android/Linux系統(tǒng)內(nèi)核下載到本地SDRAM中運(yùn)行,再通過nfs協(xié)議,掛載服務(wù)器端的根文件系統(tǒng)。設(shè)置啟動(dòng)參數(shù)內(nèi)容包括nfs共享目錄,服務(wù)器和客戶端的ip設(shè)置,tftp下載地址,啟動(dòng)地址等。Android/Linux系統(tǒng)的nfs共享目錄在服務(wù)器端的nfs目錄下,tftp下載地址在0x50008000,使用bootm命令進(jìn)行啟動(dòng)。
[0027]實(shí)例S601:在裝有Linux系統(tǒng)的服務(wù)器上安裝tftp和nfs服務(wù),tftp服務(wù)文件目錄為/tftproot, nfs共享目錄為/nfs。
[0028]實(shí)例S602:將Android和Linux的內(nèi)核鏡像拷貝到服務(wù)器端/tftproot路徑下,將文件系統(tǒng)拷貝到/nfs路徑下。
[0029]實(shí)例S7:編譯經(jīng)過以上步驟修改過后的Uboot代碼,并將Uboot鏡像文件拷入到NAND Flash的前2M空間內(nèi)。
【權(quán)利要求】
1.一種適用于ARM架構(gòu)移動(dòng)設(shè)備的多操作系統(tǒng)切換方法,其特征在于,該方法為: 1)在ARM架構(gòu)智能移動(dòng)設(shè)備的Bootloader層設(shè)計(jì)操作系統(tǒng)選擇的圖形用戶界面; 2)在ARM架構(gòu)智能移動(dòng)設(shè)備的Bootloader層移植IXD驅(qū)動(dòng),在IXD上顯示上述圖形用戶界面,并通過LCD選擇需要啟動(dòng)的操作系統(tǒng); 3)在ARM架構(gòu)智能移動(dòng)設(shè)備的Bootloader中移植無線網(wǎng)卡驅(qū)動(dòng),使ARM架構(gòu)智能移動(dòng)設(shè)備與服務(wù)器端建立網(wǎng)絡(luò)連接,使用文件傳輸協(xié)議加載操作系統(tǒng)內(nèi)核到ARM架構(gòu)智能移動(dòng)設(shè)備; 4)對(duì)ARM架構(gòu)智能移動(dòng)設(shè)備的Flash進(jìn)行分區(qū),為不同的操作系統(tǒng)劃分專用的Flash區(qū)域; 5)在Bootloader中寫入不同操作系統(tǒng)引導(dǎo)代碼,將需要啟動(dòng)的操作系統(tǒng)內(nèi)核從服務(wù)器下載到內(nèi)存中,然后從內(nèi)存中加載到相應(yīng)的Flash分區(qū)中執(zhí)行,采用nfs網(wǎng)絡(luò)協(xié)議將需要啟動(dòng)的操作系統(tǒng)的文件系統(tǒng)直接掛載在nfs共享目錄下,完成操作系統(tǒng)啟動(dòng); 6)在服務(wù)器上配置好tftp和nfs網(wǎng)絡(luò)服務(wù),采用tftp和nfs網(wǎng)絡(luò)協(xié)議為ARM架構(gòu)智能移動(dòng)設(shè)備端提供服務(wù),通過配置網(wǎng)絡(luò)服務(wù)環(huán)境,為用戶提供各種服務(wù); 7)編譯經(jīng)以上步驟I)?步驟6)修改過后的Bootloader,并將編譯后的Boot loader下載到Flash的Boot loader分區(qū)內(nèi)。
2.根據(jù)權(quán)利要求1所述的適用于ARM架構(gòu)移動(dòng)設(shè)備的多操作系統(tǒng)切換方法,其特征在于,所述步驟3)中,使用tftp文件傳輸協(xié)議加載操作系統(tǒng)內(nèi)核到ARM架構(gòu)智能移動(dòng)設(shè)備。
3.根據(jù)權(quán)利要求1所述的適用于ARM架構(gòu)移動(dòng)設(shè)備的多操作系統(tǒng)切換方法,其特征在于,所述ARM架構(gòu)移動(dòng)設(shè)備型號(hào)為0K6410 ;Boot loader采用Uboot。
4.根據(jù)權(quán)利要求3所述的適用于ARM架構(gòu)移動(dòng)設(shè)備的多操作系統(tǒng)切換方法,其特征在于,對(duì)Linux和Android兩個(gè)嵌入式系統(tǒng)進(jìn)行切換的方法如下: 1)在Uboot中添加圖形用戶界面:找一個(gè)jpeg文件,通過命令行處理為8bit的bmp圖片;將bmp文件放入/tools/logos中,并修改Makefile文件,替換相關(guān)bmp文件名,修改配置文件;在Uboot的main函數(shù)中添加多組switch語句用來選擇按鍵,準(zhǔn)備轉(zhuǎn)入啟動(dòng)部分代碼; 2)在Uboot啟動(dòng)之后,進(jìn)入到菜單選擇界面;添加一個(gè)LCD驅(qū)動(dòng)模塊; 3)引用驅(qū)動(dòng)移植技術(shù),在帶有SDIO接口驅(qū)動(dòng)的Uboot上移植網(wǎng)卡驅(qū)動(dòng)程序,將默認(rèn)網(wǎng)卡驅(qū)動(dòng)替換成無線網(wǎng)卡Marvel 18686的驅(qū)動(dòng),并修改相關(guān)配置文件; 4)利用NANDFlash分區(qū)技術(shù)對(duì)Flash存儲(chǔ)器進(jìn)行區(qū)域劃分,將Flash上第一個(gè)2M空間留給客戶端啟動(dòng)引導(dǎo)程序,即修改過的Uboot ; 5)客戶端Uboot設(shè)置bootargs啟動(dòng)參數(shù):通過tftp協(xié)議,將Android/Linux系統(tǒng)內(nèi)核下載到本地SDRAM中運(yùn)行,再通過nfs協(xié)議,掛載服務(wù)器端的根文件系統(tǒng); 6)在裝有Linux系統(tǒng)的服務(wù)器上安裝tftp和nfs服務(wù),tftp服務(wù)文件目錄為/tftproot, nfs 共享目錄為 /nfs ; 7)將Android和Linux的內(nèi)核鏡像拷貝到服務(wù)器端/tftproot路徑下,將Android和Linux的文件系統(tǒng)拷貝到/nfs路徑下; 8)編譯經(jīng)過以上步驟修改過后的Uboot代碼,并將Uboot鏡像文件拷入到NANDFlash的前2M空間內(nèi)。
【文檔編號(hào)】G06F9/44GK103761088SQ201410013575
【公開日】2014年4月30日 申請(qǐng)日期:2014年1月13日 優(yōu)先權(quán)日:2014年1月13日
【發(fā)明者】張堯?qū)W, 熊永華, 吳敏, 陳建二, 王建新, 王國軍, 周悅芝, 王慧昭, 梁偉 申請(qǐng)人:中南大學(xué)