基于NAND-Flash雙啟動引導的啟動方法及裝置的制造方法
【技術領域】
[0001 ] 本發(fā)明涉及電子產(chǎn)品技術領域,尤其涉及一種基于NAND-Flash雙啟動引導的啟動方法及裝置。
【背景技術】
[0002]作為操作系統(tǒng)的引導程序,Boot要完成對系統(tǒng)硬件的最小初始化,并且把系統(tǒng)程序代碼加載到系統(tǒng)程序代碼運行時所處的位置;最后Boot將控制權交給系統(tǒng)程序,使CPU從系統(tǒng)程序的入口點開始執(zhí)行。在許多應用場合中,Boot支持的功能越來越多。為了在系統(tǒng)原有的Boot上合入功能和解決相關的bug, Boot在線升級功能變得尤為必要。
[0003]為了防止Boot升級中由于新版本的Boot不能正常工作而導致系統(tǒng)故障,一般需要將升級前的Boot保留來進行備份。這樣就要求在存儲器中要有兩個Boot,也就是雙Boot,并且兩個Boot可以自動切換。目前比較常見的Boot存儲器一般是NOR-Flash存儲器,由于NOR-Flash存儲器相對NAND-Flash存儲器而言,NOR-Flash存儲器的單位存儲容量所對應的成本高,以及容量相對小等特點,NAND-Flash存儲器更有優(yōu)勢。
[0004]上述內容僅用于輔助理解本發(fā)明的技術方案,并不代表承認上述內容是現(xiàn)有技術。
【發(fā)明內容】
[0005]本發(fā)明的主要目的在于實現(xiàn)NAND-Flash雙啟動引導的啟動控制,避免初始引導區(qū)不能被同時升級的問題,提高系統(tǒng)運行的穩(wěn)定性。
[0006]為實現(xiàn)上述目的,本發(fā)明提供的一種基于NAND-Flash雙啟動引導的啟動方法包括以下步驟:
[0007]在系統(tǒng)啟動時,獲取預置的啟動標志及啟動引導的物理地址表;
[0008]根據(jù)所述啟動標志及啟動引導的物理地址表,獲得所述啟動標志對應的目標物理地址,并判斷所述目標物理地址是否為CPU默認讀取的特定物理地址;
[0009]若是,則將邏輯器件與CPU連接的NAND-Flash接口接收到的信號發(fā)送至所述NAND-Flash存儲器中,以讀取位于所述目標地址的第一啟動引導,并根據(jù)第一啟動引導進行啟動;
[0010]若否,則將所述邏輯器件與CPU連接的NAND-Flash接口接收到的信號中地址信號解析后按照所述目標物理地址進行翻譯,將翻譯后的所述信號發(fā)送至所述NAND-Flash存儲器中,以讀取位于所述目標地址的第二啟動引導,并根據(jù)第二啟動引導進行啟動。
[0011]優(yōu)選地,所述將翻譯后的所述信號發(fā)送至所述NAND-Flash存儲器中之后還包括:
[0012]接收CPU在獲取第二啟動引導的第一個block時發(fā)送的停止翻譯指令;
[0013]根據(jù)所述停止翻譯指令,將所述邏輯器件與CPU連接的NAND-Flash接口接收到的信號發(fā)送至所述NAND-Flash存儲器中,以繼續(xù)讀取第二啟動引導,根據(jù)第二啟動引導進行啟動。
[0014]優(yōu)選地,在根據(jù)第一啟動引導啟動后或根據(jù)第二啟動引導啟動后還包括:
[0015]判斷系統(tǒng)啟動是否成功;
[0016]當系統(tǒng)啟動不成功時,修改啟動標志,并重新啟動系統(tǒng),以切換啟動引導。
[0017]優(yōu)選地,所述判斷啟動是否成功之后還包括:
[0018]當系統(tǒng)啟動成功,且系統(tǒng)存在更新時,下載映像文件和啟動引導;
[0019]根據(jù)下載的啟動引導更新非當前啟動所采用的啟動引導也就是將下載的所述啟動引導儲存至所述NAND-Flash存儲器的物理地址區(qū)域中;
[0020]當更新成功時,修改所述啟動標志及啟動引導的物理地址表,以控制系統(tǒng)按照更新后的啟動引導進行下次啟動;當更新失敗時,不修改所述啟動標志及啟動引導的物理地址表。
[0021 ] 優(yōu)選地,在所述將所述邏輯器件與CPU連接的NAND-Flash接口接收到的信號中地址信號解析后按照所述目標物理地址進行翻譯之前還包括:
[0022]判斷所述目標物理地址是否為非法啟動地址;
[0023]當所述目標地址為非法啟動地址時,則將邏輯器件與CPU連接的NAND-Flash接口接收到的信號發(fā)送至所述NAND-Flash存儲器中,以使CPU讀取預設的非啟動相關的存儲數(shù)據(jù)。
[0024]此外,為實現(xiàn)上述目的,本發(fā)明還提供一種基于NAND-Flash雙啟動引導的啟動裝置包括:
[0025]獲取模塊,用于在系統(tǒng)啟動時,獲取預置的啟動標志及啟動引導的物理地址表;
[0026]第一判斷模塊,用于根據(jù)所述啟動標志及啟動引導的物理地址表,獲得所述啟動標志對應的目標物理地址,并判斷所述目標物理地址是否為CPU默認讀取的特定物理地址;
[0027]第一啟動控制模塊,用于當所述啟動標志對應的目標物理地址為CPU默認讀取的特定物理地址時,將邏輯器件與CPU連接的NAND-Flash接口接收到的信號發(fā)送至所述NAND-Flash存儲器中,以讀取位于所述目標地址的第一啟動引導,并根據(jù)第一啟動引導進行啟動;
[0028]第二啟動控制模塊,用于當所述啟動標志對應的目標物理地址不為CPU默認讀取的特定物理地址時,將所述邏輯器件與CPU連接的NAND-Flash接口接收到的信號中地址信號解析后按照所述目標物理地址進行翻譯,將翻譯后的所述信號發(fā)送至所述NAND-Flash存儲器中,以讀取位于所述目標地址的第二啟動引導,并根據(jù)第二啟動引導進行啟動。
[0029]優(yōu)選地,所述基于NAND-Flash雙啟動引導的啟動裝置還包括:
[0030]接收模塊,用于接收CPU在獲取第二啟動引導的第一個block時發(fā)送的停止翻譯指令;
[0031]所述第二啟動控制模塊,還用于根據(jù)所述停止翻譯指令,將所述邏輯器件與CPU連接的NAND-Flash接口接收到的信號發(fā)送至所述NAND-Flash存儲器中,以繼續(xù)讀取第二啟動引導,根據(jù)第二啟動引導進行啟動。
[0032]優(yōu)選地,所述基于NAND-Flash雙啟動引導的啟動裝置還包括:
[0033]第二判斷模塊,用于判斷系統(tǒng)啟動是否成功;
[0034]fe制t吳塊,用于當系統(tǒng)啟動不成功時,修改啟動標志,并重新啟動系統(tǒng),以切換啟動引導。
[0035]優(yōu)選地,所述基于NAND-Flash雙啟動引導的啟動裝置還包括:
[0036]下載模塊,用于當系統(tǒng)啟動成功,且系統(tǒng)存在更新時,下載映像文件和啟動引導;
[0037]處理模塊,用于根據(jù)下載的啟動引導更新-非當前的啟動引導也就是將下載的所述啟動引導儲存至所述NAND-Flash存儲器的物理地址區(qū)域中;
[0038]修改模塊,用于當更新成功時,修改所述啟動標志及啟動引導的物理地址表,以控制系統(tǒng)按照更新后的啟動引導進行下次啟動;當更新失敗時,不修改所述啟動標志及啟動引導的物理地址表。
[0039]優(yōu)選地,所述基于NAND-Flash雙啟動引導的啟動裝置還包括:
[0040]第三判斷模塊,用于判斷所述目標物理地址是否為非法啟動地址;
[0041]所述第一啟動控制模塊,還用于當所述目標地址為非法啟動地址時,將邏輯器件與CPU連接的NAND-Flash接口接收到的信號發(fā)送至所述NAND-Flash存儲器中,以使CPU讀取預設的非啟動相關的存儲數(shù)據(jù)。
[0042]本發(fā)明通過在系統(tǒng)啟動時,獲取預置的啟動標志及啟動引導的物理地址表,以判斷所述啟動標志對應的目標物理地址是否為CPU默認讀取的特定物理地址,從而以第一啟動弓I導進行啟動或以第二啟動弓I導進行啟動,進而實現(xiàn)了 NAND-Flash雙啟動引導的啟動控制。由于是采用基于NAND-Flash存儲器的地址翻譯的方法來映射啟動引導(Boot)的存儲裝置,因此可以對NAND-Flash上整個Boot進行升級,不需要額外設置初始引導區(qū),可以避免初始引導區(qū)不能被同時升級的問題,提高了系統(tǒng)運行的穩(wěn)定性與便捷性。
【附圖說明】
[0043]圖1為本發(fā)明基于NAND-Flash雙啟動引導的啟動方法第一實施例的流程示意圖;
[0044]圖2為本發(fā)明基于NAND-Flash雙啟動引導的啟動方法第二實施例的流程示意圖;
[0045]圖3為本發(fā)明基于NAND-Flash雙啟動引導的啟動方法第三實施例的流程示意圖;
[0046]圖4為本發(fā)明基于NAND-Flash雙啟動引導的啟動方法第四實施例的流程示意圖;
當前第1頁
1 
2 
3 
4