專利名稱:一種在線替換嵌入式linux系統(tǒng)內(nèi)核的方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于嵌入式Iinux軟件中在運(yùn)行時(shí)替換Iinux系統(tǒng)內(nèi)核的方法。涉及的 技術(shù)領(lǐng)域包括各種運(yùn)行嵌入式Iinux操作系統(tǒng)的智能電子設(shè)備。
背景技術(shù):
嵌入式軟件運(yùn)行在各種智能的電子設(shè)備和產(chǎn)品中,而嵌入式Iinux是嵌入式軟件 中的一個(gè)很大的分支。由于軟件的可根據(jù)后續(xù)維護(hù)進(jìn)行功能和性能性的提升,以及用戶 的需求的高度變化性,嵌入式Iinux軟件的升級(jí)漸漸成了一個(gè)必需的功能。目前的嵌入式 Iinux智能系統(tǒng),大多數(shù)儲(chǔ)存在Flash等儲(chǔ)存單元中,嵌入式Iinux內(nèi)核會(huì)將這些Flash存 儲(chǔ)單元按照其物理地址或偏移塊地址劃分成一個(gè)個(gè)分片,內(nèi)核和文件系統(tǒng)及其它二進(jìn)制 文件分別存儲(chǔ)在這些分片中。在嵌入式Iinux軟件的升級(jí)中,一般是通過(guò)主機(jī)系統(tǒng)(比如 windows系列的工作站)和嵌入式智能電子設(shè)備進(jìn)行連接,采用主機(jī)的升級(jí)程序和電子設(shè) 備配合進(jìn)行升級(jí),在嵌入式系統(tǒng)和主機(jī)系統(tǒng)之間的連接通常采用智能電子設(shè)備廠家定制 的特別的數(shù)據(jù)線。在用flash芯片作為存儲(chǔ)單元的嵌入式Iinux系統(tǒng)中,由于內(nèi)核的高復(fù)雜 性,通常做法是將內(nèi)核最小化設(shè)計(jì)后固化在存儲(chǔ)器中,以提供軟件系統(tǒng)最基本的服務(wù), 對(duì)普通的用戶不可見;用戶一般進(jìn)行的升級(jí)只是升級(jí)一些除了內(nèi)核外的其它數(shù)據(jù)。如果 需要對(duì)內(nèi)核進(jìn)行徹底升級(jí),通常需要將嵌入式設(shè)備返回原廠或通過(guò)培訓(xùn)過(guò)的技術(shù)人員提 供專門服務(wù)進(jìn)行升級(jí),給企業(yè)帶來(lái)售后維護(hù)的較大的負(fù)擔(dān),同時(shí)給用戶體驗(yàn)帶來(lái)很差的 滯后性。
發(fā)明內(nèi)容
為了解決此問(wèn)題,本發(fā)明提供一種方法,可以在嵌入式系統(tǒng)運(yùn)行時(shí)通過(guò)比較簡(jiǎn) 單的方式,來(lái)解決Iinux嵌入式系統(tǒng)中內(nèi)核部分的自行升級(jí)問(wèn)題。解決升級(jí)復(fù)雜性,節(jié)約 企業(yè)的售后成本,減輕了用戶購(gòu)置額外設(shè)備的負(fù)擔(dān),同時(shí)提高了用戶的產(chǎn)品體驗(yàn)。本發(fā)明所采用的具體的技術(shù)方案如下首先,需要提供一種支持微處理器啟動(dòng)時(shí)初始化硬件資源的程序,此程序同時(shí) 提供如下功能和限制條件此程序在Iinux內(nèi)核啟動(dòng)前運(yùn)行;支持Iinux內(nèi)核文件系統(tǒng)的 讀寫特性;此程序在flash上對(duì)上述文件系統(tǒng)進(jìn)行分區(qū)的讀寫和創(chuàng)建;支持ram空間向 flash地址的直接燒寫功能。其次,Iinux內(nèi)核能共同支持上述啟動(dòng)程序所創(chuàng)建的分區(qū)。最后,嵌入式系統(tǒng)中需要有足夠的flash空間運(yùn)行在上述文件系統(tǒng)類型下,提供 內(nèi)核文件讀寫和掉電、重新啟動(dòng)保存。本發(fā)明的執(zhí)行流程如圖2所示。本發(fā)明的好處是,在線運(yùn)行的嵌入式系統(tǒng)在不需要額外的物理flash芯片,能進(jìn) 行平滑的進(jìn)行內(nèi)核更新。減少維護(hù)成本和設(shè)備成本,給用戶帶來(lái)更好的用戶體驗(yàn)。
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說(shuō)明。圖1是flash存儲(chǔ)器的分區(qū)圖。圖2是內(nèi)核在線升級(jí)流程圖
具體實(shí)施例方式為使本發(fā)明要解決的技術(shù)問(wèn)題、技術(shù)方案和優(yōu)點(diǎn)更清楚,下面結(jié)合附圖和具體 實(shí)施案例進(jìn)行描述。首先,在啟動(dòng)代碼的內(nèi)存設(shè)備技術(shù)中加入共同的文件系統(tǒng)格式的支持。這通常 由嵌入式智能電子設(shè)備在出廠時(shí)根據(jù)當(dāng)前設(shè)備的要求,由研發(fā)人員默認(rèn)指定。第二,通過(guò)啟動(dòng)代碼的命令,管理flash磁盤分區(qū),劃分出和內(nèi)核可共同訪問(wèn)的 足夠用來(lái)升級(jí)的可讀寫分區(qū)和系統(tǒng)啟動(dòng)所需的其它的分區(qū)。如圖1所示。在分區(qū)的最 后,劃分一個(gè)活動(dòng)分區(qū),以被升級(jí)內(nèi)核時(shí)使用。這些劃分的分區(qū)在試驗(yàn)環(huán)境中調(diào)試好 后,可以直接固定在啟動(dòng)代碼中。劃分好的分區(qū)結(jié)構(gòu)如圖1所示。第三,在嵌入式設(shè)備運(yùn)行時(shí),通過(guò)網(wǎng)絡(luò)或者電子設(shè)備廠家提供的專有數(shù)據(jù)線, 將內(nèi)核文件下載在啟動(dòng)代碼和Iinux系統(tǒng)共同識(shí)別的可讀寫的分區(qū)的根目錄下。并向flash 中寫入一個(gè)啟動(dòng)代碼可識(shí)別的標(biāo)識(shí)位。如圖2所示。第四,重新啟動(dòng)系統(tǒng)后,啟動(dòng)代碼判斷該標(biāo)識(shí)位,啟動(dòng)內(nèi)核升級(jí),具體如下更改活動(dòng)分區(qū)到Iinux系統(tǒng)運(yùn)行時(shí),寫入新的內(nèi)核的分區(qū)。找到在此分區(qū)中存放的新內(nèi)核,并將它燒寫到以前的內(nèi)核啟動(dòng)的地址中。燒寫完成后,啟動(dòng)新的內(nèi)核。第五,新的內(nèi)核在裝載文件系統(tǒng) 啟動(dòng)完成后,判斷當(dāng)前的內(nèi)核版本和之間所寫 的標(biāo)志位,如果符合,刪除內(nèi)核臨時(shí)文件。至此,在線升級(jí)內(nèi)核功能完成。上述流程如圖2所示。
權(quán)利要求
1.本發(fā)明是關(guān)于嵌入式Iinux軟件中在運(yùn)行時(shí)替換Iinux系統(tǒng)內(nèi)核的方法。其特征在 于,嵌入式設(shè)備在運(yùn)行過(guò)程中可以根據(jù)管理員指令或者自動(dòng)升級(jí)內(nèi)核,整個(gè)替換過(guò)程涉 及內(nèi)核、文件系統(tǒng)、啟動(dòng)三部分。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,嵌入式系統(tǒng)的升級(jí),用戶無(wú)需至設(shè)備現(xiàn)場(chǎng)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,替換Iinux內(nèi)核,在嵌入式硬件設(shè)計(jì)中 除了主系統(tǒng)的存儲(chǔ)設(shè)備芯片,無(wú)需其它的存儲(chǔ)備份芯片。
全文摘要
本發(fā)明是關(guān)于嵌入式linux軟件中在運(yùn)行時(shí)替換linux系統(tǒng)內(nèi)核的方法,這種方法比較簡(jiǎn)單,可以畸形linux嵌入式系統(tǒng)中內(nèi)核部分的自行升級(jí)。解決系統(tǒng)內(nèi)核升級(jí)復(fù)雜性,及需要專業(yè)人員的售后成本,減輕了用戶購(gòu)置額外設(shè)備的負(fù)擔(dān),提高了用戶的產(chǎn)品體驗(yàn)。
文檔編號(hào)G06F9/445GK102012825SQ20101054690
公開日2011年4月13日 申請(qǐng)日期2010年11月16日 優(yōu)先權(quán)日2010年11月16日
發(fā)明者楊國(guó)文, 王毅, 王飛舟 申請(qǐng)人:卓越信通電子(北京)有限公司