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