一種嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的方法及裝置制造方法
【專(zhuān)利摘要】本發(fā)明涉及嵌入式系統(tǒng)【技術(shù)領(lǐng)域】,本發(fā)明提供一種嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的方法,包括以下步驟:編譯用于主控制板的內(nèi)核程序和用于從控制板的內(nèi)核程序;檢測(cè)待輸出程序的單板是主控制板還是從控制板;當(dāng)檢測(cè)單板是主控制板時(shí),向主控制板加載相應(yīng)的內(nèi)核程序;當(dāng)檢測(cè)單板是從控制板時(shí),向從控制板加載相應(yīng)的內(nèi)核程序,采用了動(dòng)態(tài)內(nèi)核模塊加載方案,對(duì)單板的類(lèi)型進(jìn)行檢測(cè),使得一次編譯的程序在同一個(gè)硬件平臺(tái)下的不同單板或不同的單板版本上運(yùn)行,減少了內(nèi)核程序的版本維護(hù)成本,從而提高了開(kāi)發(fā)的效率。
【專(zhuān)利說(shuō)明】—種嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及嵌入式系統(tǒng)【技術(shù)領(lǐng)域】,尤其涉及一種嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的方法及裝置。
【背景技術(shù)】
[0002]對(duì)于嵌入式系統(tǒng)來(lái)說(shuō),內(nèi)核模塊一般是通過(guò)定義預(yù)編譯宏的方法來(lái)實(shí)現(xiàn)內(nèi)核模塊的加載。例如在LINUX和VXW0RKS系統(tǒng)中,內(nèi)核模塊通過(guò)預(yù)編譯宏定義來(lái)決定是否把某一特定模塊編譯到內(nèi)核中和是否在系統(tǒng)運(yùn)行時(shí)進(jìn)行加載。其中,通過(guò)預(yù)編譯宏定義是靜態(tài)實(shí)現(xiàn)方法,內(nèi)核的行為在編譯期就已經(jīng)確定,編譯完成后無(wú)法進(jìn)行修改。在同一硬件平臺(tái)下,當(dāng)存在多個(gè)版本時(shí),需要維護(hù)一組編譯開(kāi)關(guān),分別編譯出每個(gè)版本的內(nèi)核文件,同時(shí)將每個(gè)版本的內(nèi)核文件只能燒錄到對(duì)應(yīng)的硬件版本中,這種靜態(tài)編譯加載內(nèi)核模塊的方式降低了開(kāi)發(fā)和生產(chǎn)的效率;以配電自動(dòng)化終端產(chǎn)品為例,配電自動(dòng)化終端嵌入式設(shè)備主要由主控制板和從控制板組成,主控制板主要負(fù)責(zé)協(xié)調(diào)整個(gè)配電自動(dòng)化終端的運(yùn)行控制以及對(duì)外通訊,而從控制板負(fù)責(zé)數(shù)據(jù)的采集并將數(shù)據(jù)做處理后匯報(bào)給主板。主板和從板采用底板模塊加上核心板模塊的硬件架構(gòu),其中核心板模塊是通用的,可以和主控制板底板或從控制板底板組成一個(gè)完整的單板。其中,主控制板底板主要集成和外部通訊的設(shè)備(如網(wǎng)口,擴(kuò)展串口等),而從控制板集成了數(shù)據(jù)采集相關(guān)的外部設(shè)備。如果采用靜態(tài)加載的方式,則需要維護(hù)兩組編譯開(kāi)關(guān),一組用于主控制板,一組用于從控制板,從而分別編譯出用于主控制板的內(nèi)核程序和用于從控制板的內(nèi)核程序,并且這兩個(gè)程序不能互換,由于核心板是通用的,而編譯后的程序卻需要加以區(qū)分,嚴(yán)重影響了生產(chǎn)的效率和增加了出錯(cuò)的機(jī)率。綜上所述,現(xiàn)有技術(shù)中存在由于需要對(duì)編譯后的程序加以區(qū)分而影響了生產(chǎn)的效率的問(wèn)題。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的在于提供一種嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的方法及裝置,旨在解決針對(duì)現(xiàn)有技術(shù)中存在由于需要對(duì)編譯后的程序加以區(qū)分而影響了生產(chǎn)的效率的問(wèn)題。
[0004]本發(fā)明是這樣實(shí)現(xiàn)的,一種嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的方法,所述加載程序的方法包括以下步驟:
[0005]編譯用于主控制板的內(nèi)核程序和用于從控制板的內(nèi)核程序;
[0006]檢測(cè)待輸出程序的單板是主控制板還是從控制板;
[0007]當(dāng)檢測(cè)所述單板是主控制板時(shí),向所述主控制板加載相應(yīng)的內(nèi)核程序;
[0008]當(dāng)檢測(cè)所述單板是從控制板時(shí),向所述從控制板加載相應(yīng)的內(nèi)核程序。
[0009]所述待輸出程序的單板是主控制板還是從控制板的步驟具體為:
[0010]獲取所述待輸出程序的單板的標(biāo)識(shí)號(hào);
[0011]根據(jù)所述標(biāo)識(shí)號(hào)判斷所述待輸出程序的單板是主控制板還是從控制板。
[0012]所述待輸出程序的單板是主控制板還是從控制板的步驟具體為:
[0013]接收所述待輸出程序的單板產(chǎn)生的類(lèi)型型號(hào);
[0014]根據(jù)所述類(lèi)型信號(hào)判斷所述待輸出程序的單板是主控制板還是從控制板。
[0015]所述向所述主控制板加載相應(yīng)的內(nèi)核程序的步驟具體為:
[0016]跳轉(zhuǎn)到主控制板程序加載入口,通過(guò)所述入口地址加載程序。
[0017]所述向所述從控制板加載相應(yīng)的內(nèi)核程序的步驟具體為:
[0018]跳轉(zhuǎn)到從控制板程序加載入口,通過(guò)所述入口地址加載程序。
[0019]本發(fā)明還提供一種嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的裝置,所述動(dòng)態(tài)加載程序的裝置包括編譯模塊和檢測(cè)模塊;
[0020]所述編譯模塊編譯用于主控制板的內(nèi)核程序和用于從控制板的內(nèi)核程序;
[0021]所述檢測(cè)模塊檢測(cè)待輸出程序的單板是主控制板還是從控制板;
[0022]當(dāng)所述檢測(cè)模塊檢測(cè)所述單板是主控制板時(shí),所述編譯模塊向所述主控制板加載相應(yīng)的內(nèi)核程序,當(dāng)所述檢測(cè)模塊檢測(cè)所述單板是從控制板時(shí),向所述從控制板加載相應(yīng)的內(nèi)核程序。
[0023]所述檢測(cè)模塊檢測(cè)待輸出程序的單板是主控制板還是從控制板具體為:
[0024]獲取所述待輸出程序的單板的標(biāo)識(shí)號(hào);
[0025]根據(jù)所述標(biāo)識(shí)號(hào)判斷所述待輸出程序的單板是主控制板還是從控制板。
[0026]所述檢測(cè)模塊檢測(cè)待輸出程序的單板是主控制板還是從控制板具體為:
[0027]接收所述待輸出程序的單板產(chǎn)生的類(lèi)型型號(hào);
[0028]根據(jù)所述類(lèi)型信號(hào)判斷所述待輸出程序的單板是主控制板還是從控制板。
[0029]所述編譯模塊向所述主控制板加載相應(yīng)的內(nèi)核程序具體為:
[0030]跳轉(zhuǎn)到主控制板程序加載入口,通過(guò)所述入口地址加載程序。
[0031]所述編譯模塊向所述從控制板加載相應(yīng)的內(nèi)核程序具體為:
[0032]跳轉(zhuǎn)到從控制板程序加載入口,通過(guò)所述入口地址加載程序。
[0033]本發(fā)明提供一種嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的方法及裝置,采用了動(dòng)態(tài)內(nèi)核模塊加載方案,對(duì)單板的類(lèi)型進(jìn)行檢測(cè),使得一次編譯的程序在同一個(gè)硬件平臺(tái)下的不同單板或不同的單板版本上運(yùn)行,減少了內(nèi)核程序的版本維護(hù)成本,從而提高了開(kāi)發(fā)的效率,此外,可以將同一內(nèi)核程序可以燒錄到不同的單板上,使得內(nèi)核程序的燒錄和升級(jí)更加簡(jiǎn)單,減少了出錯(cuò)的機(jī)率,提高了生產(chǎn)的效率和升級(jí)維護(hù)的成本。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0034]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0035]圖1是本發(fā)明一種實(shí)施例提供的一種嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的方法的流程圖;
[0036]圖2是本發(fā)明另一種實(shí)施例提供的一種嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的方法的流程圖;
[0037]圖3是本發(fā)明一種實(shí)施例提供的一種嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的裝置的流程圖。
【具體實(shí)施方式】
[0038]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0039]為了說(shuō)明本發(fā)明的技術(shù)方案,下面通過(guò)具體實(shí)施例來(lái)進(jìn)行說(shuō)明。
[0040]本發(fā)明一種實(shí)施例提供一種嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的方法,如圖1所示,該動(dòng)態(tài)加載程序的方法包括以下步驟:
[0041]步驟3101.編譯用于主控制板的內(nèi)核程序和用于從控制板的內(nèi)核程序。
[0042]步驟3102.檢測(cè)待輸出程序的單板是主控制板還是從控制板。
[0043]在本實(shí)施例中,具體的,可以向待輸出程序的單板輸出檢測(cè)信號(hào),根據(jù)該待輸出程序的單板返回的單板類(lèi)型信號(hào)判斷該待輸出程序的單板是主控制板還是從控制板,該單板類(lèi)型信號(hào)可以通過(guò)預(yù)先設(shè)定在該單板上的標(biāo)志信號(hào),也可以通過(guò)單板上的類(lèi)型信號(hào)產(chǎn)生電路產(chǎn)生該單板對(duì)應(yīng)的類(lèi)型信號(hào),該類(lèi)型信號(hào)產(chǎn)生電路可通過(guò)上下拉電阻實(shí)現(xiàn)。
[0044]步驟3103.當(dāng)所述單板是主控制板時(shí),向所述主控制板加載相應(yīng)的內(nèi)核程序。
[0045]在本實(shí)施例中,檢測(cè)到單板為主控制板時(shí),將編譯的主控制板的程序燒錄到主控制板中。
[0046]步驟3104.當(dāng)所述單板是從控制板時(shí),向所述從控制板加載相應(yīng)的內(nèi)核程序。
[0047]在本實(shí)施例中,檢測(cè)到單板為從控制板時(shí),將編譯的從控制板的程序燒錄到從控制板中。
[0048]本發(fā)明提供一種嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的方法,采用了動(dòng)態(tài)內(nèi)核模塊加載方案,對(duì)單板的類(lèi)型進(jìn)行檢測(cè),使得一次編譯的程序在同一個(gè)硬件平臺(tái)下的不同單板上運(yùn)行,減少了內(nèi)核程序的版本維護(hù)成本,從而提高了開(kāi)發(fā)的效率。
[0049]本發(fā)明另一種實(shí)施例提供一種嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的方法,如圖2所示,該動(dòng)態(tài)加載程序的方法包括以下步驟:
[0050]步驟3201.編譯用于主控制板的內(nèi)核程序和用于從控制板的內(nèi)核程序。
[0051]步驟3202.獲取所述待輸出程序的單板的標(biāo)識(shí)號(hào),根據(jù)所述標(biāo)識(shí)號(hào)判斷所述待輸出程序的單板是主控制板還是從控制板。
[0052]在本實(shí)施例中,在每一種類(lèi)型或版本的硬件單板上設(shè)置一個(gè)能夠標(biāo)識(shí)其單板類(lèi)型和版本的唯一標(biāo)識(shí),在系統(tǒng)內(nèi)核初始化時(shí),通過(guò)讀取該標(biāo)識(shí)即可以判斷該單板為主控制板還是從控制板。
[0053]步驟3203.當(dāng)所述單板是主控制板時(shí),跳轉(zhuǎn)到主控制板程序加載入口以向所述主控制板加載相應(yīng)的內(nèi)核程序。
[0054]具體的,跳轉(zhuǎn)到主控制板程序加載入口,通過(guò)所述入口地址加載程序。
[0055]步驟3204.當(dāng)所述單板是從控制板時(shí),跳轉(zhuǎn)到從控制板程序加載入口以向所述從控制板加載相應(yīng)的內(nèi)核程序。
[0056]具體的,跳轉(zhuǎn)到從控制板程序加載入口,通過(guò)所述入口地址加載程序。
[0057]本發(fā)明另一種實(shí)施例還提供一種嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的裝置,所述動(dòng)態(tài)加載程序的裝置包括編譯模塊301和檢測(cè)模塊302 ;
[0058]所述編譯模塊301編譯用于主控制板的內(nèi)核程序和用于從控制板的內(nèi)核程序;
[0059]所述檢測(cè)模塊302檢測(cè)待輸出程序的單板303是主控制板還是從控制板;
[0060]當(dāng)所述檢測(cè)模塊302檢測(cè)所述單板是主控制板時(shí),所述編譯模塊301向所述主控制板加載相應(yīng)的內(nèi)核程序,當(dāng)所述檢測(cè)模塊302檢測(cè)所述單板是從控制板時(shí),向所述從控制板加載相應(yīng)的內(nèi)核程序。
[0061]作為一種實(shí)施方式,所述檢測(cè)模塊302檢測(cè)待輸出程序的單板是主控制板還是從控制板具體為:
[0062]獲取所述待輸出程序的單板的標(biāo)識(shí)號(hào);
[0063]根據(jù)所述標(biāo)識(shí)號(hào)判斷所述待輸出程序的單板是主控制板還是從控制板。
[0064]作為另一種實(shí)施方式,所述檢測(cè)模塊302檢測(cè)待輸出程序的單板是主控制板還是從控制板具體為:
[0065]接收所述待輸出程序的單板產(chǎn)生的類(lèi)型型號(hào);
[0066]根據(jù)所述類(lèi)型信號(hào)判斷所述待輸出程序的單板是主控制板還是從控制板。
[0067]所述編譯模塊301向所述主控制板加載相應(yīng)的內(nèi)核程序具體為:
[0068]跳轉(zhuǎn)到主控制板程序加載入口,通過(guò)所述入口地址加載程序。
[0069]所述編譯模塊301向所述從控制板加載相應(yīng)的內(nèi)核程序具體為:
[0070]跳轉(zhuǎn)到從控制板程序加載入口,通過(guò)所述入口地址加載程序。
[0071]本發(fā)明提供一種嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的方法及裝置,采用了動(dòng)態(tài)內(nèi)核模塊加載方案,對(duì)單板的類(lèi)型進(jìn)行檢測(cè),使得一次編譯的程序在同一個(gè)硬件平臺(tái)下的不同單板或不同的單板版本上運(yùn)行,減少了內(nèi)核程序的版本維護(hù)成本,從而提高了開(kāi)發(fā)的效率,此外,可以將同一內(nèi)核程序可以燒錄到不同的單板上,使得內(nèi)核程序的燒錄和升級(jí)更加簡(jiǎn)單,減少了出錯(cuò)的機(jī)率,提高了生產(chǎn)的效率和升級(jí)維護(hù)的成本。
[0072]以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說(shuō)明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本發(fā)明所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下做出若干等同替代或明顯變型,而且性能或用途相同,都應(yīng)當(dāng)視為屬于本發(fā)明由所提交的權(quán)利要求書(shū)確定的專(zhuān)利保護(hù)范圍。
【權(quán)利要求】
1.一種嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的方法,其特征在于,所述加載程序的方法包括以下步驟: 編譯用于主控制板的內(nèi)核程序和用于從控制板的內(nèi)核程序; 檢測(cè)待輸出程序的單板是主控制板還是從控制板; 當(dāng)檢測(cè)所述單板是主控制板時(shí),向所述主控制板加載相應(yīng)的內(nèi)核程序; 當(dāng)檢測(cè)所述單板是從控制板時(shí),向所述從控制板加載相應(yīng)的內(nèi)核程序。
2.如權(quán)利要求1所述的嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的方法,其特征在于,所述待輸出程序的單板是主控制板還是從控制板的步驟具體為: 獲取所述待輸出程序的單板的標(biāo)識(shí)號(hào); 根據(jù)所述標(biāo)識(shí)號(hào)判斷所述待輸出程序的單板是主控制板還是從控制板。
3.如權(quán)利要求1所述的嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的方法,其特征在于,所述待輸出程序的單板是主控制板還是從控制板的步驟具體為: 接收所述待輸出程序的單板產(chǎn)生的類(lèi)型型號(hào); 根據(jù)所述類(lèi)型信號(hào)判斷所述待輸出程序的單板是主控制板還是從控制板。
4.如權(quán)利要求2或3所述的嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的方法,其特征在于,所述向所述主控制板加載相應(yīng)的內(nèi)核程序的步驟具體為: 跳轉(zhuǎn)到主控制板程序加載入口,通過(guò)所述入口地址加載程序。
5.如權(quán)利要求2或3所述的嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的方法,其特征在于,所述向所述從控制板加載相應(yīng)的內(nèi)核程序的步驟具體為: 跳轉(zhuǎn)到從控制板程序加載入口,通過(guò)所述地址加載程序。
6.一種嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的裝置,其特征在于,所述動(dòng)態(tài)加載程序的裝置包括編譯模塊和檢測(cè)模塊; 所述編譯模塊編譯用于主控制板的內(nèi)核程序和用于從控制板的內(nèi)核程序; 所述檢測(cè)模塊檢測(cè)待輸出程序的單板是主控制板還是從控制板; 當(dāng)所述檢測(cè)模塊檢測(cè)所述單板是主控制板時(shí),所述編譯模塊向所述主控制板加載相應(yīng)的內(nèi)核程序,當(dāng)所述檢測(cè)模塊檢測(cè)所述單板是從控制板時(shí),向所述從控制板加載相應(yīng)的內(nèi)核程序。
7.如權(quán)利要求6所述的嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的裝置,其特征在于,所述檢測(cè)模塊檢測(cè)待輸出程序的單板是主控制板還是從控制板具體為: 獲取所述待輸出程序的單板的標(biāo)識(shí)號(hào); 根據(jù)所述標(biāo)識(shí)號(hào)判斷所述待輸出程序的單板是主控制板還是從控制板。
8.如權(quán)利要求6所述的嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的裝置,其特征在于,所述檢測(cè)模塊檢測(cè)待輸出程序的單板是主控制板還是從控制板具體為: 接收所述待輸出程序的單板產(chǎn)生的類(lèi)型型號(hào); 根據(jù)所述類(lèi)型信號(hào)判斷所述待輸出程序的單板是主控制板還是從控制板。
9.如權(quán)利要求7或8所述的嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的裝置,其特征在于,所述編譯模塊向所述主控制板加載相應(yīng)的內(nèi)核程序具體為: 跳轉(zhuǎn)到主控制板程序加載入口,通過(guò)所述入口地址加載程序。
10.如權(quán)利要求7或8所述的嵌入式系統(tǒng)內(nèi)核模塊動(dòng)態(tài)加載程序的裝置,其特征在于,所述編譯模塊向所述從控制板加載相應(yīng)的內(nèi)核程序具體為:跳轉(zhuǎn)到從控制板程序加載入口,通過(guò)所述入口地址加載程序。
【文檔編號(hào)】G06F9/445GK104407887SQ201410621445
【公開(kāi)日】2015年3月11日 申請(qǐng)日期:2014年11月6日 優(yōu)先權(quán)日:2014年11月6日
【發(fā)明者】陳宇秋 申請(qǐng)人:航天科工深圳(集團(tuán))有限公司