最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種雙Boot切換的實現(xiàn)方法

文檔序號:6492222閱讀:752來源:國知局
一種雙Boot切換的實現(xiàn)方法
【專利摘要】本發(fā)明公開了一種雙Boot切換的實現(xiàn)方法及裝置,方法包括:在射頻識別RFID設(shè)備上電復位后,EPLD通過讀取可擦除可編程存儲器中的啟動標志字節(jié),對使用主Boot啟動還是使用備Boot啟動進行選擇;?EPLD將CPU的地址線映射到NOR?Flash上用于主Boot啟動的第一地址空間或用于備Boot啟動的第二地址空間;?CPU從對應于上述選擇結(jié)果的第一地址空間或第二地址空間執(zhí)行相應的Boot啟動。本發(fā)明通過EPLD的控制和對CPU總線控制器的操作,實現(xiàn)了雙Boot切換的功能。
【專利說明】—種雙Boot切換的實現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及嵌入式射頻識別RFID領(lǐng)域,特別涉及一種雙引導程序Boot切換的實現(xiàn)方法及其相關(guān)裝置。
【背景技術(shù)】
[0002]在嵌入式設(shè)備中,需要通過Boot引導操作系統(tǒng),典型的應用是通用引導程序U-Boot引導操作系統(tǒng)Linux內(nèi)核,同時對于RFID設(shè)備,如路側(cè)單元RSU,需要掛在龍門架等不便于直接維護的地方,所以對系統(tǒng)的固件Firmware,尤其是Boot穩(wěn)定性的要求就顯得尤為重要。
[0003]為了保證RFID設(shè)備的正常啟動和實現(xiàn)Boot升級功能,需要加入雙Boot切換功能,即在設(shè)備的處理器上電復位后實現(xiàn)從兩個不同的啟動地址執(zhí)行Boot代碼,使之可以靈活選擇啟動雙Boot中的任何一個引導操作系統(tǒng),同時,還可以避免由于Boot文件損壞導致系統(tǒng)無法啟動。
[0004]由于不同架構(gòu)的處理器在上電復位后的啟動機制各不相同,對于RFID產(chǎn)品,大多使用的是PowerPC架構(gòu)處理器,如何實現(xiàn)雙Boot切換的功能,成為亟待解決的技術(shù)問題。

【發(fā)明內(nèi)容】

[0005]本發(fā)明的目的在于提供一種雙Boot切換的實現(xiàn)方法及裝置,用于解決在PowerPC架構(gòu)處理器實現(xiàn)雙Boot切換問題。
[0006]根據(jù)本發(fā)明的一個方面,提供的一種雙Boot切換的實現(xiàn)方法包括:
[0007]步驟A)在RFID設(shè)備上電復位后,可擦除可編程邏輯器件EPLD通過讀取可擦除可編程存儲器中的啟動標志字節(jié),對使用主Boot啟動還是使用備Boot啟動進行選擇;
[0008]步驟B) EPLD將中央處理器CPU的地址線映射到CPU總線控制器存儲器NOR Flash上用于主Boot啟動的第一地址空間或用于備Boot啟動的第二地址空間;
[0009]步驟C)CPU從對應于上述選擇結(jié)果的第一地址空間或第二地址空間執(zhí)行相應的Boot啟動。
[0010]優(yōu)選地,所述步驟C)包括:
[0011]CPU從對應于上述選擇結(jié)果的第一地址空間或第二地址空間執(zhí)行相應的Boot代碼;
[0012]在執(zhí)行相應的Boot代碼后,初始化CPU總線控制器,將CPU的片選信號CSO和CSx的空間同時映射到NOR Flash上,同時選中NOR Flash。
[0013]優(yōu)選地,所述步驟C)還包括:
[0014]CPU在NOR Flash執(zhí)行一段Boot代碼后,將NOR Flash的Boot代碼搬移至內(nèi)存,并在內(nèi)存執(zhí)行。
[0015]優(yōu)選地,所述步驟C)還包括:CPU在內(nèi)存執(zhí)行Boot代碼到初始化NOR Flash驅(qū)動期間,CPU總線控制器將所述CSO置為無效。[0016]優(yōu)選地,所述第一地址空間和所述第二地址空間預先設(shè)置在所述NOR Flash的低地址空間。
[0017]優(yōu)選地,還包括:
[0018]在RFID設(shè)備的系統(tǒng)啟動后,CPU通過使用所述CSx對NOR Flash的全部空間進行訪問操作。
[0019]根據(jù)本發(fā)明的另一方面,提供的一種雙Boot切換的實現(xiàn)裝置,包括可擦除可編程存儲器和NOR Flash,還包括:
[0020]EPLD,用于在RFID設(shè)備上電復位后,通過讀取可擦除可編程存儲器中的啟動標志字節(jié),對使用主Boot啟動還是使用備Boot啟動進行選擇,將CPU的地址線映射到NORFlash上用于主Boot啟動的第一地址空間或用于備Boot啟動的第二地址空間;
[0021]CPU,用于從對應于上述選擇結(jié)果的第一地址空間或第二地址空間執(zhí)行相應的Boot啟動。
[0022]優(yōu)選地,所述CPU還用于從第一地址空間或第二地址空間執(zhí)行相應的Boot代碼后,初始化CPU總線控制器,將其CSO和CSx的空間同時映射到NOR Flash上,同時選中NORFlash。
[0023]優(yōu)選地,所述CPU還用于在NOR Flash執(zhí)行一段Boot代碼后,將NOR Flash的Boot代碼搬移至內(nèi)存,并在內(nèi)存執(zhí)行。
[0024]優(yōu)選地,所述CPU還用于在內(nèi)存執(zhí)行Boot代碼到初始化NOR Flash驅(qū)動期間,通過CPU總線控制器將所述CSO置為無效。
[0025]與現(xiàn)有技術(shù)相比較,本發(fā)明的有益效果在于:本發(fā)明幾乎不用修改軟件底層代碼就可以實現(xiàn)雙Boot切換,既可以靈活選擇啟動雙Boot中的任何一個引導操作系統(tǒng),又可以避免由于Boot文件損壞導致的操作系統(tǒng)無法啟動的情況。
【專利附圖】

【附圖說明】
[0026]圖1是本發(fā)明實施例提供的雙Boot切換的實現(xiàn)方法原理圖;
[0027]圖2是本發(fā)明實施例提供的雙Boot切換的實現(xiàn)裝置示意圖;
[0028]圖3是本發(fā)明實施例提供的雙Boot切換具體實現(xiàn)流程圖;
[0029]圖4是本發(fā)明實施例提供的采用雙Boot切換方法實現(xiàn)RFID產(chǎn)品固件升級示意圖。
【具體實施方式】
[0030]以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行詳細說明,應當理解,以下所說明的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0031]圖1是本發(fā)明實施例提供的雙Boot切換的實現(xiàn)方法原理圖,如圖1所示,步驟包括:
[0032]步驟S101、在RFID設(shè)備上電復位后,EPLD通過讀取可擦除可編程存儲器中的啟動標志字節(jié),對使用主Boot啟動還是使用備Boot啟動進行選擇。
[0033]本發(fā)明通過所述啟動標志字節(jié),實現(xiàn)手動選擇啟動主Boot或備Boot,所述啟動標志字節(jié)存儲在一個可擦除可編程存儲器,例如EEPR0M。[0034]步驟S102、在進行上述選擇后,EPLD將CPU的地址線映射到NOR Flash上用于主Boot啟動的第一地址空間或用于備Boot啟動的第二地址空間。
[0035]由于CPU的上電啟動地址已經(jīng)在硬件復位配置字中定義,所述硬件復位配置字是CPU上電時讀取的信息,用來初始化CPU的鎖相環(huán)PLL和啟動的相關(guān)信息,對于PowerPC架構(gòu)處理器,一般被編譯到Boot文件中。在CPU上電復位期間,要實現(xiàn)從兩個不同的啟動地址執(zhí)行Boot啟動,需要EPLD對CPU的地址線進行映射。具體地說,當EPLD判斷手動選擇的是啟動主Boot時,EPLD將CPU的地址線映射到NOR Flash上的第一地址空間,所述第一地址空間中存儲用于啟動主Boot的Boot代碼。當EPLD判斷手動選擇的是啟動備Boot時,EPLD將CPU的地址線映射到NOR Flash上的第二地址空間,所述第二地址空間中存儲用于啟動備Boot的Boot代碼。
[0036]步驟S103、在進行上述地址映射后,CPU從對應于上述選擇結(jié)果的第一地址空間或第二地址空間執(zhí)行相應的Boot啟動。
[0037]CPU從第一地址空間或第二地址空間執(zhí)行相應的Boot啟動的代碼后,初始化CPU總線控制器,將CPU的片選信號CSO和CSx的空間同時映射到NOR Flash上,同時選中NORFlash。
[0038]當CSO和CSX同時選中NOR Flash時,由于EPLD對CPU地址線進行了映射,而且高優(yōu)先級的CXO (CPU上電默認的片選信號)始終有效,這樣就會導致CPU在對NOR Flash部分空間進行訪問時出現(xiàn)地址映射錯誤的現(xiàn)象,所以在CPU小系統(tǒng)啟動后需要對CSO和CSX進行相應的處理。也就是說,需要在CPU不再從NOR Flash執(zhí)行Boot代碼到初始化NORFlash驅(qū)動期間,通過操作CPU總線控制器將所述CSO置為無效,以便在RFID設(shè)備的系統(tǒng)啟動后,CPU能夠通過所述CSx對NOR Flash的全部空間進行訪問操作,解決了在CSO和CSx同時選中NOR Flash時,片選地址空間重疊的問題。
[0039]圖2是本發(fā)明實施例提供的雙Boot切換的實現(xiàn)裝置示意圖,如圖2所示,包括:
[0040]可擦除可編程存儲器,用于存儲啟動標志字節(jié),可以是EPR0M,也可以是EEPR0M,以下實施例中均以EEPROM為例進行說明;
[0041]NOR Flash,用于在第一地址空間存儲用于主Boot啟動的Boot代碼,在第二地址空間存儲用于備Boot啟動的Boot代碼;
[0042]EPLD,用于在RFID設(shè)備上電復位后,通過讀取EEPROM中的所述啟動標志字節(jié),對使用主Boot啟動還是使用備Boot啟動進行選擇,并在進行上述選擇后,將CPU的地址線映射到NOR Flash上用于主Boot啟動的第一地址空間或用于備Boot啟動的第二地址空間;
[0043]CPU,用于在進行上述地址映射后,從對應于上述選擇結(jié)果的第一地址空間或第二地址空間執(zhí)行相應的Boot啟動。
[0044]為了實現(xiàn)雙Boot切換,需要解決以下幾個問題:
[0045]1、CPU上電啟動地址的確定
[0046]PowerPC架構(gòu)處理器的啟動地址可以通過硬件復位配置字確定,如果從低地址空間啟動是從0x00000000啟動,如果從高地址空間啟動從OxFFFOOOOO啟動,由于從高地址空間啟動時需要EPLD將部分高位地址線拉高,因此,這里選擇從低地址空間啟動,這樣可以省去EPLD在上電復位時對CPU地址線的映射。
[0047]在實現(xiàn)雙Boot切換的過程中,首先需要在NOR Flash中規(guī)劃出Boot文件所占用的空間。例如,為主Boot、備Boot均預留大小為512KB的地址空間,那么EPLD就需要對512KB處的地址空間進行處理,需要A[0…19]共20根地址線。當從主Boot啟動時,EPLD將CPU地址線A19拉低,并將CPU地址線A19映射到NOR Flash的偏移OKB處的地址空間;當從備Boot啟動時,EPLD將CPU地址線A19拉高,并將CPU地址線A19映射到NOR Flash的偏移512KB處的地址空間。這樣就保證了在同一硬件復位配置字的情況下,CPU可以從NOR Flash基地址偏移OKB處和512KB處啟動。
[0048]2、CPU片選信號的空間分配和片選信號空間重疊區(qū)域的處理
[0049]由于大多數(shù)通用處理器在上電復位后,默認片選信號為CS0,所以主Boot和備Boot的地址空間只能由CSO控制。同時本發(fā)明采用從NOR Flash進行Boot啟動的啟動方式,而所述NOR Flash又是CPU總線控制器上的存儲設(shè)備,因此,要保證系統(tǒng)啟動后能夠正常訪問NOR Flash的整個空間,就需要額外一個片選信號CSx控制選擇NOR Flash的整個空間。
[0050]如果不考慮軟件驅(qū)動的實現(xiàn)問題,可以將片選信號CSO和CSx選擇的地址空間分配在完全不重疊的兩段連續(xù)空間中。但是在實際的應用中,如果選擇從NOR Flash進行Boot啟動,處理器底層的匯編代碼會將NOR Flash的起始地址認為是CPU上電執(zhí)行代碼的地址,并且在NOR Flash的驅(qū)動中也會按照這個地址進行操作。這樣就會造成軟件需要做比較大的修改,底層匯編代碼和NOR Flash驅(qū)動均為開源代碼,主要是移植工作,修改將會引入一定風險。
[0051]由于上述原因,需要將片選信號CSO選擇空間的起始地址與CSx選擇空間的起始地址定義成同一個地址。這樣,從NOR Flash起始地址開始的IMB空間即處在CSO的片選空間,又處在CSx的片選空間,片選地址空間重疊。由于默認的CSO優(yōu)先級要高于CSxjn果要訪問NOR Flash的所有空間,0-1MB空間內(nèi)CSO有效,IMB以上空間CSx有效,當啟動備Boot時,EPLD已經(jīng)將CPU的地址線A[19]拉高,訪問大于512KB空間時,就會導致訪問NORFlash空間的地址重復問題。
[0052]因此在啟動過程中需要選擇正確的時機,將CSO置為無效。具體的做法是:在CPU不再需要從NOR Flash執(zhí)行代碼到初始化NOR Flash驅(qū)動之間,可以直接操作CPU總線控制器,將CSO置為無效,這樣CPU就可以通過CSx對NOR Flash整個空間進行訪問,同時又不會影響在上電復位時(默認片選信號CS0)對NOR Flash空間進行訪問。
[0053]進一步地,CPU在NOR Flash執(zhí)行一段Boot代碼后,將會把NOR Flash的Boot代碼搬移至內(nèi)存,并在內(nèi)存執(zhí)行。從NOR Flash執(zhí)行代碼到初始化NOR Flash驅(qū)動期間包括(PU在內(nèi)存執(zhí)行Boot代碼期間,即CPU可以選擇在內(nèi)存執(zhí)行Boot代碼期間,通過操作其總線控制器將所述CSO置為無效。 [0054]手動選擇啟動王、備Boot的頭現(xiàn):
[0055]在RFID上電復位后,設(shè)備雖然實現(xiàn)了通過EPLD對CPU啟動地址的重映射,但是如果想要實現(xiàn)對主Boot、備Boot手動切換還需要一個標志。由于CPU上電復位時還沒有執(zhí)行指令,無法使用CPU上的資源,因此,本發(fā)明使用EPLD,通過10模擬,實現(xiàn)一個I2C接口,與EEPROM的I2C接口連接,獲取啟動標志字節(jié),即當設(shè)備上電復位后,EPLD通過I2C接口從EEPROM中讀取啟動標志字節(jié),通過這個啟動標志字節(jié)來確定啟動主Boot或備Boot,然后再將地址線重新映射,從而實現(xiàn)雙Boot切換。[0056]圖3是本發(fā)明實施例提供的雙Boot切換具體實現(xiàn)流程圖,如圖3所示,步驟包括:
[0057]1、RFID設(shè)備上電復位。
[0058]2,EPLD通過模擬I2C時序讀取EEPROM中的啟動標志字節(jié),選擇啟動主Boot或啟動備Boot。
[0059]3、EPLD根據(jù)選擇結(jié)果,將CPU地址線映射到NOR Flash上的相應的地址空間,即用于主Boot啟動的第一地址空間或用于備Boot啟動的第二地址空間。
[0060]4、CPU從第一地址空間或第二地址空間執(zhí)行相應的Boot代碼,進行主Boot啟動或備Boot啟動。
[0061]5、CPU初始化CPU總線控制器,配置CPU總線控制器,將兩個片選信號的空間同時映射到NOR Flash上,同時選中NOR Flash。
[0062]6、為了避免在片選信號的空間重疊區(qū)域高優(yōu)先級片選信號(CPU啟動時默認的片選信號)一直有效,當Boot代碼不再在NOR Flash執(zhí)行后,CPU通過CPU總線控制器將高優(yōu)先級片選信號禁用。
[0063]CPU在NOR Flash執(zhí)行一段Boot代碼后,將NOR Flash的Boot代碼搬移至內(nèi)存,并在內(nèi)存執(zhí)行。CPU在內(nèi)存中執(zhí)行Boot代碼期間,可以將高優(yōu)先級片選信號無效。
[0064]圖4是本發(fā)明實施例提供的采用雙Boot切換方法實現(xiàn)RFID設(shè)備固件升級示意圖,如圖4所示。首先,將后臺網(wǎng)口與RFID產(chǎn)品網(wǎng)卡連接,使后臺通過后臺軟件與RFID設(shè)備建立通信連接,實現(xiàn)通信。其次,將需要升級的Boot文件通過后臺下載到RFID設(shè)備中,前臺軟件將升級的Boot文件寫入到NOR Flash的備用Boot分區(qū),即用于啟動備Boot的第二地址空間。然后,改寫EEPROM中的啟動標志字節(jié),使RFID設(shè)備上電復位后能夠使用備Boot啟動。最后,將前臺設(shè)備進行上電復位操作,啟動備Boot引導操作系統(tǒng)。
[0065]綜上所述,本發(fā)明具有以下技術(shù)效果:
[0066]1、本發(fā)明通過EPLD將CPU啟動地址靈活映射到兩個不同的地址空間,實現(xiàn)了雙Boot的切換;
[0067]2、本發(fā)明通過將兩個片選信號同時選中NOR Flash,而后又禁用一個高優(yōu)先級的片選信號,使CPU能夠正常訪問NOR Flash的整個空間;
[0068]3、本發(fā)明幾乎不用修改軟件底層代碼就可以成功實現(xiàn)雙Boot切換,增加了軟件的可移植性,大大縮短了產(chǎn)品的研發(fā)周期,提高了效率。
[0069]盡管上文對本發(fā)明進行了詳細說明,但是本發(fā)明不限于此,本【技術(shù)領(lǐng)域】技術(shù)人員可以根據(jù)本發(fā)明的原理進行各種修改。因此,凡按照本發(fā)明原理所作的修改,都應當理解為落入本發(fā)明的保護范圍。
【權(quán)利要求】
1.一種雙Boot切換的實現(xiàn)方法,其特征在于,包括: 步驟A)在射頻識別RFID設(shè)備上電復位后,可擦除可編程邏輯器件EPLD通過讀取可擦除可編程存儲器中的啟動標志字節(jié),對使用主Boot啟動還是使用備Boot啟動進行選擇; 步驟B)EPLD將中央處理器CPU的地址線映射到CPU總線控制器存儲器NOR Flash上用于主Boot啟動的第一地址空間或用于備Boot啟動的第二地址空間; 步驟C) CPU從對應于上述選擇結(jié)果的第一地址空間或第二地址空間執(zhí)行相應的Boot啟動。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟C)包括: CPU從對應于上述選擇結(jié)果的第一地址空間或第二地址空間執(zhí)行相應的Boot代碼; 在執(zhí)行相應的Boot代碼后,初始化CPU總線控制器,將CPU的片選信號CSO和CSx的空間同時映射到NOR Flash上,同時選中NOR Flash。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟C)還包括: CPU在NOR Flash執(zhí)行一段Boot代碼后,將NOR Flash的Boot代碼搬移至內(nèi)存,并在內(nèi)存執(zhí)行。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟C)還包括: CPU在內(nèi)存執(zhí)行Boot代碼到初始化NOR Flash驅(qū)動期間,CPU總線控制器將所述CSO置為無效。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述第一地址空間和所述第二地址空間預先設(shè)置在所述NOR Flash的低地址空間。
6.根據(jù)權(quán)利要求2-5任意一項所述的方法,其特征在于,還包括: 在RFID設(shè)備的操作系統(tǒng)啟動后,CPU通過使用所述CSx對NOR Flash的全部空間進行訪問操作。
【文檔編號】G06F9/48GK103853608SQ201210509991
【公開日】2014年6月11日 申請日期:2012年12月4日 優(yōu)先權(quán)日:2012年12月4日
【發(fā)明者】丁岳 申請人:天津中興軟件有限責任公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1