處理器初始化方法
【專利摘要】本發(fā)明公開(kāi)了一種處理器初始化方法及裝置,該方法包括:在硬件復(fù)位期間對(duì)相同架構(gòu)下的處理器進(jìn)行配置,其中,處理器屬于同一系列且內(nèi)核相同;對(duì)處理器及其片外資源進(jìn)行初始化。本發(fā)明通過(guò)同一引導(dǎo)程序?qū)ο嗤軜?gòu)下的處理器進(jìn)行配置和初始化,將同類產(chǎn)品的引導(dǎo)程序編譯為同一個(gè)文件,增加了引導(dǎo)程序的靈活性,便于引導(dǎo)程序版本的維護(hù)和管理,且進(jìn)行不同硬件設(shè)備(即片外資源)的初始化工作,為底層軟件進(jìn)一步屏蔽了硬件差別。
【專利說(shuō)明】處理器初始化方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種處理器初始化方法及裝置。
【背景技術(shù)】
[0002]在嵌入式設(shè)備中,需要通過(guò)引導(dǎo)程序引導(dǎo)操作系統(tǒng),目前市場(chǎng)上通訊類產(chǎn)品有很大一部分使用PowerPC架構(gòu)處理器,其引導(dǎo)程序選用U_Boot。U-Boot的實(shí)現(xiàn)理念是對(duì)于不同的單板使用不同的板級(jí)配置文件,是完全的靜態(tài)方式,即一個(gè)引導(dǎo)程序只能引導(dǎo)一塊單板,引導(dǎo)程序缺乏靈活性,而且版本管理不方便。
【發(fā)明內(nèi)容】
[0003]本發(fā)明提供了一種處理器初始化方法及裝置,以至少解決相關(guān)技術(shù)中,一個(gè)引導(dǎo)程序只能引導(dǎo)一塊單板,缺乏靈活性且版本管理不方便的問(wèn)題。
[0004]根據(jù)本發(fā)明的一個(gè)方面,提供了一種處理器初始化方法,包括:在硬件復(fù)位期間對(duì)相同架構(gòu)下的處理器進(jìn)行配置,其中,處理器屬于同一系列且內(nèi)核相同;對(duì)處理器及其片外資源進(jìn)行初始化。
[0005]優(yōu)選地,在硬件復(fù)位期間對(duì)相同架構(gòu)下的處理器進(jìn)行配置包括:通過(guò)通用引導(dǎo)程序獲取處理器的配置信息,其中,通用引導(dǎo)程序是引導(dǎo)多個(gè)單板的引導(dǎo)程序;根據(jù)配置信息對(duì)處理器進(jìn)行上電配置。
[0006]優(yōu)選地,通過(guò)通用引導(dǎo)程序獲取處理器的配置信息包括:通過(guò)可擦除可編程邏輯器件(Erasable Programmable Logic Device,簡(jiǎn)稱為 EPLD)實(shí)現(xiàn)只讀存儲(chǔ)器(Read OnlyMemory,簡(jiǎn)稱為ROM),并將處理器的配置信息保存到ROM中;在硬件復(fù)位期間將處理器發(fā)送的地址信號(hào)映射到ROM ;讀取ROM中的配置信息。
[0007]優(yōu)選地,對(duì)處理器及其片外資源進(jìn)行初始化包括:初始化處理器的內(nèi)核,讀取處理器內(nèi)核中標(biāo)識(shí)處理器具體型號(hào)的寄存器;根據(jù)處理器的具體型號(hào)對(duì)處理器進(jìn)行初始化。
[0008]優(yōu)選地,在根據(jù)處理器的具體型號(hào)對(duì)處理器進(jìn)行初始化之后,上述方法還包括:通過(guò)訪問(wèn)在硬件復(fù)位期間獲取配置信息時(shí)已經(jīng)配置的片外資源,獲取不同單板的類型;根據(jù)不同單板的類型對(duì)未配置的片外資源以及處理器內(nèi)部的功能模塊進(jìn)行初始化。
[0009]優(yōu)選地,在硬件復(fù)位期間獲取配置信息時(shí)已經(jīng)配置的片外資源至少包括:EPLD。
[0010]根據(jù)本發(fā)明的另一方面,提供了一種處理器初始化裝置,包括:配置模塊,用于在硬件復(fù)位期間對(duì)相同架構(gòu)下的處理器進(jìn)行配置,其中,處理器屬于同一系列且內(nèi)核相同;初始化模塊,用于對(duì)處理器及其片外資源進(jìn)行初始化。
[0011]優(yōu)選地,配置模塊包括:獲取單元,用于通過(guò)通用引導(dǎo)程序獲取處理器的配置信息,其中,通用引導(dǎo)程序是引導(dǎo)多個(gè)單板的引導(dǎo)程序;配置單元,用于根據(jù)配置信息對(duì)處理器進(jìn)行上電配置。
[0012]優(yōu)選地,獲取單元包括:處理子單元,用于通過(guò)EPLD實(shí)現(xiàn)ROM ;保存子單元,用于將處理器的配置信息保存到ROM中;映射子單元,用于在硬件復(fù)位期間將處理器發(fā)送的地址信號(hào)映射到ROM ;讀取子單元,用于讀取ROM中的配置信息。
[0013]優(yōu)選地,初始化模塊包括:第一初始化單元,用于初始化處理器的內(nèi)核;讀取單元,用于讀取內(nèi)核中標(biāo)識(shí)處理器具體型號(hào)的寄存器;第二初始化單元,用于根據(jù)處理器的具體型號(hào)對(duì)處理器進(jìn)行初始化。
[0014]本發(fā)明通過(guò)同一引導(dǎo)程序?qū)ο嗤軜?gòu)下的處理器進(jìn)行配置和初始化,將同類產(chǎn)品的引導(dǎo)程序編譯為同一個(gè)文件,增加了引導(dǎo)程序的靈活性,便于引導(dǎo)程序版本的維護(hù)和管理,且進(jìn)行不同硬件設(shè)備(即片外資源)的初始化工作,為底層軟件進(jìn)一步屏蔽了硬件差別。
【專利附圖】
【附圖說(shuō)明】
[0015]此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0016]圖1是根據(jù)本發(fā)明實(shí)施例的處理器初始化方法的流程圖;
[0017]圖2是根據(jù)本發(fā)明優(yōu)選實(shí)施例的利用EPLD實(shí)現(xiàn)ROM、讀取配置信息以及地址映射的不意圖;
[0018]圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的相同架構(gòu)下同一系列處理器的通用引導(dǎo)程序的實(shí)現(xiàn)示意圖;
[0019]圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例的處理器初始化方法的流程圖;
[0020]圖5是根據(jù)本發(fā)明實(shí)施例的處理器初始化裝置的結(jié)構(gòu)框圖;
[0021]圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施例的處理器初始化裝置的結(jié)構(gòu)框圖一;
[0022]圖7是根據(jù)本發(fā)明優(yōu)選實(shí)施例的處理器初始化裝置的結(jié)構(gòu)框圖二。
【具體實(shí)施方式】
[0023]需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。
[0024]本發(fā)明實(shí)施例提供了一種處理器初始化方法,圖1是根據(jù)本發(fā)明實(shí)施例的處理器初始化方法的流程圖,如圖1所示,包括如下的步驟S102至步驟S104。
[0025]步驟S102,在硬件復(fù)位期間對(duì)相同架構(gòu)下的處理器進(jìn)行配置,其中,處理器屬于同一系列且內(nèi)核相同。
[0026]步驟S104,對(duì)處理器及其片外資源進(jìn)行初始化。
[0027]相關(guān)技術(shù)中,一個(gè)引導(dǎo)程序只能引導(dǎo)一塊單板,缺乏靈活性且版本管理不方便。本發(fā)明實(shí)施例中,通過(guò)同一引導(dǎo)程序?qū)ο嗤軜?gòu)下的處理器進(jìn)行配置和初始化,將同類產(chǎn)品的引導(dǎo)程序編譯為同一個(gè)文件,增加了引導(dǎo)程序的靈活性,便于引導(dǎo)程序版本的維護(hù)和管理,且進(jìn)行不同硬件設(shè)備(即片外資源)的初始化工作,為底層軟件進(jìn)一步屏蔽了硬件差別。
[0028]需要說(shuō)明的是,本發(fā)明實(shí)施例中的處理器需要滿足兩個(gè)前提條件:1、相同架構(gòu)下,同一系列的處理器;2、處理器內(nèi)核相同。這是因?yàn)橄嗤軜?gòu)的處理器在上電啟動(dòng)過(guò)程中具有相同的流程;相同的內(nèi)核,可以保證處理器復(fù)位上電后,執(zhí)行指令的一致性。只有滿足這兩個(gè)條件,對(duì)處理器具體型號(hào)的區(qū)分才有意義。在實(shí)際應(yīng)用中,軟件實(shí)現(xiàn)可以基于U-Boot開(kāi)源代碼,同時(shí)需要對(duì)U-boot代碼進(jìn)行架構(gòu)調(diào)整和部分修改,并且在某些情況向需要借助其他硬件器件,如EPLD等。[0029]優(yōu)選地,步驟S102包括:通過(guò)通用弓I導(dǎo)程序獲取處理器的配置信息,其中,通用引導(dǎo)程序是引導(dǎo)多個(gè)單板的引導(dǎo)程序;根據(jù)配置信息對(duì)處理器進(jìn)行上電配置。當(dāng)然,配置也可以通過(guò)上下拉電阻實(shí)現(xiàn),或者通過(guò)常用總線接口的設(shè)備進(jìn)行獲取配置信息。
[0030]通過(guò)通用引導(dǎo)程序獲取處理器的配置信息包括:通過(guò)EPLD實(shí)現(xiàn)R0M,并將處理器的配置信息保存到ROM中;在硬件復(fù)位期間將處理器發(fā)送的地址信號(hào)映射到ROM ;讀取ROM中的配置信息。本優(yōu)選實(shí)施例中,利用EPLD實(shí)現(xiàn)R0M,從而進(jìn)行地址映射以讀取配置信息,避免了不同型號(hào)處理器的配置信息的差異對(duì)通用引導(dǎo)程序的實(shí)現(xiàn)的影響。
[0031]優(yōu)選地,步驟S104包括:初始化處理器的內(nèi)核,讀取處理器內(nèi)核中標(biāo)識(shí)處理器具體型號(hào)的寄存器;根據(jù)處理器的具體型號(hào)對(duì)處理器進(jìn)行初始化。
[0032]在根據(jù)處理器的具體型號(hào)對(duì)處理器進(jìn)行初始化之后,上述方法還包括:通過(guò)訪問(wèn)在硬件復(fù)位期間獲取配置信息時(shí)已經(jīng)配置的片外資源,獲取不同單板的類型;根據(jù)不同單板的類型對(duì)未配置的片外資源以及處理器內(nèi)部的功能模塊進(jìn)行初始化。需要說(shuō)明的是,在硬件復(fù)位期間獲取配置信息時(shí)已經(jīng)配置的片外資源至少包括:EPLD。在實(shí)際應(yīng)用中,需要為每種單板定制唯一的邏輯程序(通過(guò)EPLD實(shí)現(xiàn)),其他功能可由引導(dǎo)程序代碼完成,實(shí)現(xiàn)對(duì)處理器具體型號(hào)的屏蔽。
[0033]為了實(shí)現(xiàn)通用弓丨導(dǎo)程序,需要解決以下三個(gè)主要問(wèn)題:一、處理器硬件復(fù)位期間的配置;二、動(dòng)態(tài)實(shí)現(xiàn)對(duì)具體型號(hào)處理器的初始化;三、動(dòng)態(tài)實(shí)現(xiàn)對(duì)不同類型單板的初始化。下面分別加以介紹。
[0034]一、處理器硬件復(fù)位期間的配置
[0035]在處理器硬件復(fù)位期間需要對(duì)處理器的啟動(dòng)設(shè)備(即引導(dǎo)程序的存放位置)、處理器時(shí)鐘和鎖相環(huán)、以及處理器的一些啟動(dòng)模式等進(jìn)行配置,而進(jìn)行這種配置的方法可以通過(guò)上下拉電阻實(shí)現(xiàn),可以通過(guò)常用總線接口的設(shè)備(如I2C接口的電可擦除可編程只讀存儲(chǔ)器(Electrically Erasable Programmable Read-only Memory,簡(jiǎn)稱為 EEPROM))進(jìn)行獲取,可以通過(guò)引導(dǎo)程序本身保存的配置信息進(jìn)行獲取。
[0036]其中,最為靈活并且最為通用的方法是將配置信息保存在引導(dǎo)程序中,由于本發(fā)明采用的是通用引導(dǎo)程序,這會(huì)引入一個(gè)新問(wèn)題,即不同型號(hào)的處理器所需要的配置信息不盡相同,而又不能將不同型號(hào)處理器的配置信息都存儲(chǔ)在通用引導(dǎo)程序中,對(duì)此,需要借助于EPLD實(shí)現(xiàn)一個(gè)邏輯功能,具體如下:通過(guò)EPLD實(shí)現(xiàn)一個(gè)R0M,將配置信息保存在ROM中,在硬件復(fù)位期間將處理器發(fā)送的地址信號(hào),映射到EPLD內(nèi)部實(shí)現(xiàn)的ROM空間,處理器便可以讀取ROM中的配置信息,在若干時(shí)鐘周期后,EPLD結(jié)束地址映射,返回正常狀態(tài),不影響處理器對(duì)正常地址空間的訪問(wèn)。這樣在通用引導(dǎo)程序中就無(wú)需存儲(chǔ)配置信息。利用EPLD實(shí)現(xiàn)ROM、讀取配置信息以及地址映射的示意圖參見(jiàn)圖2,圖2中只對(duì)從NOR Flash(閃存)執(zhí)行引導(dǎo)程序的情況進(jìn)行說(shuō)明,引導(dǎo)程序中的虛線框表示無(wú)需在引導(dǎo)程序中存儲(chǔ)配置信息。對(duì)于不同的啟動(dòng)設(shè)備(NOR Flash或者NAND Flash)具體的實(shí)現(xiàn)方法略有不同,但原理是一樣的,此處不再贅述。
[0037]二、動(dòng)態(tài)實(shí)現(xiàn)對(duì)具體型號(hào)處理器的初始化
[0038]由于相同架構(gòu)下同一系列的處理器,具有相同的上電啟動(dòng)流程,即在上電后可以從某個(gè)地址上取指令,執(zhí)行指令。在初始化處理器核心后(相同的核心),便可通過(guò)處理器核心空間內(nèi)的寄存器獲取處理器的具體型號(hào),這是獲取處理器型號(hào)的唯一方式,也是引導(dǎo)程序最早可以獲得處理器型號(hào)的時(shí)機(jī)。
[0039]通過(guò)處理器型號(hào)的差異,進(jìn)一步對(duì)處理器進(jìn)行初始化。這里需要說(shuō)明的是相同架構(gòu)下同一系列處理器的內(nèi)部地址空間肯定是互相兼容的(硬件廠商通常會(huì)這樣做)。對(duì)于設(shè)備制造商來(lái)說(shuō)同一型號(hào)處理器在使用上基本不會(huì)有太大差異,所以對(duì)同一型號(hào)處理器的初始化可以視為相同(如片上和片外資源的分配,內(nèi)存管理單元(Memory Management Unit,簡(jiǎn)稱為MMU)屬性、輸入輸出(Input Output,簡(jiǎn)稱為10)屬性的配置等)。這樣軟件就可以在處理器執(zhí)行若干指令后,通過(guò)讀取處理器的型號(hào)信息,分別對(duì)不同型號(hào)處理器的片上和片外資源空間,IO管腳,以及必要的寄存器進(jìn)行初始化。這個(gè)過(guò)程只需要完成處理器所必需的相關(guān)資源初始化的工作即可。在對(duì)片上和片外資源的分配上,軟件要做好規(guī)劃,保證同一型號(hào)處理器下的不同單板之間相互兼容。
[0040]三、動(dòng)態(tài)實(shí)現(xiàn)對(duì)不同類型單板的初始化
[0041]有了上一步的保證,處理器就可以實(shí)現(xiàn)對(duì)片外資源的訪問(wèn),對(duì)于某些片外資源需要進(jìn)一步對(duì)處理器的相關(guān)功能模塊進(jìn)行初始化,如片外隨機(jī)存取器(Random AccessMemory,簡(jiǎn)稱為RAM)等,而某些片外資源在第一步,即處理器硬件復(fù)位期間的配置已經(jīng)完成,如EPLD等。這時(shí)可以通過(guò)對(duì)片外資源(如EPLD)的訪問(wèn),來(lái)動(dòng)態(tài)識(shí)別單板的具體類型(在EPLD的邏輯中實(shí)現(xiàn)相關(guān)內(nèi)部寄存器),根據(jù)不同類型的單板來(lái)完成對(duì)相關(guān)硬件的初始化工作。引導(dǎo)程序通常保存在NOR Flash或NAND Flash中,引導(dǎo)程序中到第三步為止,代碼會(huì)在NOR Flash中或者NAND Flash RAM中執(zhí)行,在獲得單板類型后,可以對(duì)片外RAM進(jìn)行初始化,將引導(dǎo)程序代碼拷貝到片外RAM中執(zhí)行。接下來(lái)就可以在正常的C環(huán)境下通過(guò)單板類型對(duì)不同硬件進(jìn)行初始化工作了。
[0042]為了使本發(fā)明的技術(shù)方案和實(shí)現(xiàn)方法更加清楚,下面將結(jié)合優(yōu)選的實(shí)施例對(duì)其實(shí)現(xiàn)過(guò)程進(jìn)行詳細(xì)描述。
[0043](I)處理器在硬件復(fù)位期間,可通過(guò)硬編碼(即上下拉電阻)、常用總線接口器件或者引導(dǎo)程序文件獲得處理器的配置信息。如果選擇通過(guò)引導(dǎo)程序文件獲得處理器的配置信息,則進(jìn)行步驟(2 ),否則進(jìn)行步驟(3 )。
[0044](2)通過(guò)EPLD實(shí)現(xiàn)一個(gè)R0M,將配置信息保存在ROM中。在硬件復(fù)位期間將處理器發(fā)送的地址信號(hào),映射到EPLD內(nèi)部實(shí)現(xiàn)的ROM空間,處理器便可以讀取ROM中的配置信息,在若干時(shí)鐘周期后,EPLD結(jié)束地址映射,返回正常狀態(tài)。
[0045](3)在處理器上電復(fù)位執(zhí)行若干指令后,初始化處理器核心,設(shè)置MMU,讀取處理器核心中標(biāo)識(shí)處理器具體型號(hào)的寄存器,分別對(duì)不同型號(hào)處理器的片上和片外資源空間,10管腳,以及必要的寄存器進(jìn)行初始化。
[0046](4)通過(guò)訪問(wèn)片外資源(如EPLD)動(dòng)態(tài)獲取單板類型,根據(jù)不同類型的單板來(lái)完成對(duì)相關(guān)片外資源以及處理器內(nèi)部的功能模塊進(jìn)行初始化。
[0047]圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的相同架構(gòu)下同一系列處理器的通用引導(dǎo)程序的實(shí)現(xiàn)示意圖,如圖3所示,本優(yōu)選實(shí)施例以射頻識(shí)別(Radio Frequency Identification,簡(jiǎn)稱RFID)產(chǎn)品中使用的PowerPC架構(gòu)的X系列處理器為例,實(shí)現(xiàn)了可以運(yùn)行在多種單板上的通用引導(dǎo)程序。對(duì)于X系列下具體型號(hào)的處理器用XI,X2,X3…表示;對(duì)單板類型使用 Boardl,Board2,Board3…表示;EPLD 的版本用 EPLD-1,EPLD-2,EPLD-3 表示。實(shí)現(xiàn)相同架構(gòu)同一系列處理器的通用引導(dǎo)程序,需要為每種單板定制唯一的邏輯程序(通過(guò)EPLD實(shí)現(xiàn)),其他功能可由引導(dǎo)程序代碼完成,實(shí)現(xiàn)對(duì)處理器具體型號(hào)的屏蔽。
[0048]圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例的處理器初始化方法的流程圖,如圖4所示,包括如下步驟:
[0049]步驟S402,通過(guò)硬編碼選擇啟動(dòng)設(shè)備,CPU上電復(fù)位。
[0050]步驟S404,EPLD地址映射,映射到EPLD內(nèi)部的ROM空間,讀取配置信息。
[0051]步驟S406,EPLD地址映射結(jié)束。
[0052]步驟S408,CPU進(jìn)行上電配置。
[0053]步驟S410,CPU從啟動(dòng)設(shè)備中執(zhí)行引導(dǎo)程序指令。
[0054]步驟S412,初始化CPU核心。
[0055]步驟S414,初始化MMU,分配CPU外設(shè)地址空間。
[0056]步驟S416,讀取CPU核心中標(biāo)識(shí)ID的寄存器。
[0057]步驟S418,根據(jù)ID對(duì)不同型號(hào)的CPU進(jìn)行初始化(包括10,以及相關(guān)必要模塊的初始化)。
[0058]步驟S420,通過(guò)CPU片外資源獲得單板類型,可以通過(guò)EPLD內(nèi)部寄存器實(shí)現(xiàn)。
[0059]步驟S422,根據(jù)單板類型對(duì)其它外設(shè)進(jìn)行初始化。
[0060]步驟S424,引導(dǎo)程序可在RAM中實(shí)行代碼。
[0061]步驟S426,引導(dǎo)程序進(jìn)入正常啟動(dòng)流程。
[0062]由上述可知,本發(fā)明實(shí)施例將同一架構(gòu)下相同內(nèi)核處理器的引導(dǎo)程序統(tǒng)一為一個(gè)文件,動(dòng)態(tài)識(shí)別處理器具體型號(hào)、單板類型,從而進(jìn)行對(duì)于不同硬件設(shè)備的初始化工作,為底層軟件進(jìn)一步屏蔽硬件差別,增加了引導(dǎo)程序的靈活性,同時(shí)使引導(dǎo)程序的版本管理更加方便。
[0063]需要說(shuō)明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0064]本發(fā)明實(shí)施例還提供了 一種處理器初始化裝置,該處理器初始化裝置可以用于實(shí)現(xiàn)上述處理器初始化方法。圖5是根據(jù)本發(fā)明實(shí)施例的處理器初始化裝置的結(jié)構(gòu)框圖,如圖5所示,包括配置模塊52和初始化模塊54。下面對(duì)其結(jié)構(gòu)進(jìn)行詳細(xì)描述。
[0065]配置模塊52,用于在硬件復(fù)位期間對(duì)相同架構(gòu)下的處理器進(jìn)行配置,其中,處理器屬于同一系列且內(nèi)核相同;第一初始化模塊54,連接至配置模塊52,用于對(duì)處理器及其片外資源進(jìn)行初始化。
[0066]如圖6所示,配置模塊52包括:獲取單元522,用于通過(guò)通用引導(dǎo)程序獲取處理器的配置信息,其中,通用引導(dǎo)程序是引導(dǎo)多個(gè)單板的引導(dǎo)程序;配置單元524,連接至獲取單元522,用于根據(jù)獲取單元522獲取的配置信息對(duì)處理器進(jìn)行上電配置。
[0067]優(yōu)選地,獲取單元522包括:處理子單元,用于通過(guò)EPLD實(shí)現(xiàn)ROM ;保存子單元,連接至處理子單元,用于將處理器的配置信息保存到ROM中;映射子單元,連接至保存子單元,用于在硬件復(fù)位期間將處理器發(fā)送的地址信號(hào)映射到ROM ;讀取子單元,連接至映射子單元,用于讀取ROM中的配置信息。
[0068]優(yōu)選地,第一初始化模塊54包括:第一初始化單元,用于初始化處理器的內(nèi)核;讀取單元,連接至第一初始化單元,用于讀取第一初始化單元初始化后的內(nèi)核中標(biāo)識(shí)處理器具體型號(hào)的寄存器;第二初始化單元,連接至讀取單元,用于根據(jù)讀取單元讀取的處理器的具體型號(hào)對(duì)處理器進(jìn)行初始化。
[0069]如圖7所示,上述裝置還包括:獲取模塊56,連接至第一初始化模塊54,用于通過(guò)訪問(wèn)在硬件復(fù)位期間獲取配置信息時(shí)已經(jīng)配置的片外資源,獲取不同單板的類型;第二初始化模塊58,連接至獲取模塊56,用于根據(jù)獲取模塊56獲取的不同單板的類型對(duì)未配置的片外資源以及處理器內(nèi)部的功能模塊進(jìn)行初始化。
[0070]優(yōu)選地,在硬件復(fù)位期間獲取配置信息時(shí)已經(jīng)配置的片外資源至少包括:EPLD。
[0071]需要說(shuō)明的是,本發(fā)明上述實(shí)施例僅以PowerPC架構(gòu)處理器為例,包括但不限于PowerPC架構(gòu)處理器,上述方法同樣適用于高級(jí)精簡(jiǎn)指令系統(tǒng)處理器(Advanced RISCMachines,簡(jiǎn)稱為ARM,其中,RISC是指精簡(jiǎn)指令計(jì)算機(jī),Reduced Instruction SetComputer)架構(gòu)和無(wú)內(nèi)部互鎖流水級(jí)的微處理器(Microprocessor without InterlockedPiped Stages,簡(jiǎn)稱為MIPS)架構(gòu)的處理器。
[0072]綜上所述,根據(jù)本發(fā)明的上述實(shí)施例,提供了 一種處理器初始化方法及裝置。通過(guò)同一引導(dǎo)程序?qū)ο嗤軜?gòu)下的處理器進(jìn)行配置和初始化,將同類產(chǎn)品的引導(dǎo)程序編譯為同一個(gè)文件,增加了引導(dǎo)程序的靈活性,便于引導(dǎo)程序版本的維護(hù)和管理,且進(jìn)行不同硬件設(shè)備(即片外資源)的初始化工作,為底層軟件進(jìn)一步屏蔽了硬件差別。本發(fā)明通過(guò)邏輯器件和軟件的配合,將同類產(chǎn)品的引導(dǎo)程序編譯為同一個(gè)文件,便于版本的維護(hù)和管理,尤其是對(duì)生產(chǎn)過(guò)程中管理引導(dǎo)程序版本提供了保障。硬件主要是完成EPLD的設(shè)計(jì),而軟件則需要根據(jù)系統(tǒng)方案,完成對(duì)關(guān)鍵參數(shù)的整體規(guī)劃,同時(shí)需要將開(kāi)源代碼進(jìn)行架構(gòu)調(diào)整和部分修改。
[0073]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0074]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種處理器初始化方法,其特征在于包括: 在硬件復(fù)位期間對(duì)相同架構(gòu)下的處理器進(jìn)行配置,其中,所述處理器屬于同一系列且內(nèi)核相同; 對(duì)所述處理器及其片外資源進(jìn)行初始化。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在硬件復(fù)位期間對(duì)相同架構(gòu)下的處理器進(jìn)行配置包括: 通過(guò)通用引導(dǎo)程序獲取所述處理器的配置信息,其中,所述通用引導(dǎo)程序是引導(dǎo)多個(gè)單板的引導(dǎo)程序; 根據(jù)所述配置信息對(duì)所述處理器進(jìn)行上電配置。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,通過(guò)通用引導(dǎo)程序獲取所述處理器的配置信息包括: 通過(guò)可擦除可編程邏輯器件EPLD實(shí)現(xiàn)只讀存儲(chǔ)器ROM,并將處理器的配置信息保存到所述ROM中; 在硬件復(fù)位期間將所述處理器發(fā)送的地址信號(hào)映射到所述ROM ; 讀取所述ROM中的配置信息。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,對(duì)所述處理器以及片外資源進(jìn)行初始化包括: 初始化所述處理器的內(nèi)核,讀取所述處理器內(nèi)核中標(biāo)識(shí)所述處理器具體型號(hào)的寄存器; 根據(jù)所述處理器的具體型號(hào)對(duì)所述處理器進(jìn)行初始化。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在根據(jù)所述處理器的具體型號(hào)對(duì)所述處理器進(jìn)行初始化之后,所述方法還包括: 通過(guò)訪問(wèn)在硬件復(fù)位期間獲取配置信息時(shí)已經(jīng)配置的片外資源,獲取不同單板的類型; 根據(jù)所述不同單板的類型對(duì)未配置的片外資源以及所述處理器內(nèi)部的功能模塊進(jìn)行初始化。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,在硬件復(fù)位期間獲取配置信息時(shí)已經(jīng)配置的片外資源至少包括:EPLD。
【文檔編號(hào)】G06F9/445GK103853568SQ201210510034
【公開(kāi)日】2014年6月11日 申請(qǐng)日期:2012年12月4日 優(yōu)先權(quán)日:2012年12月4日
【發(fā)明者】丁岳 申請(qǐng)人:天津中興軟件有限責(zé)任公司