本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種基于高通平臺(tái)的系統(tǒng)的編譯方法。
背景技術(shù):
針對(duì)高通平臺(tái)的芯片,需要對(duì)其系統(tǒng)進(jìn)行編譯以實(shí)現(xiàn)無(wú)線路由的功能,現(xiàn)有存在兩種系統(tǒng)編譯方式對(duì)芯片的系統(tǒng)進(jìn)行編譯,第一種通過(guò)編譯工具提供編譯鏈進(jìn)行編譯,并將芯片的無(wú)線驅(qū)動(dòng)融入芯片的系統(tǒng);另一種使用opennwrt系統(tǒng)源文件結(jié)構(gòu)對(duì)芯片的系統(tǒng)進(jìn)行編譯,上述的兩種編譯方式分別存在著以下的缺陷:
第一種編譯方式,系統(tǒng)代碼框架不夠清晰,大多數(shù)常用的驅(qū)動(dòng)代碼融合于內(nèi)核中,并且交叉編譯鏈與系統(tǒng)代碼沒(méi)有分離,因此編譯操作復(fù)雜,且系統(tǒng)之間耦合度高,維護(hù)成本較高;
另一種編譯方式。編譯框架過(guò)度復(fù)雜,且系統(tǒng)編譯慢,編譯效率不高。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)中編譯系統(tǒng)存在的上述問(wèn)題,現(xiàn)提供一種旨在對(duì)系統(tǒng)源文件中的子系統(tǒng)進(jìn)行分開獨(dú)立編譯提高編譯效率的基于高通平臺(tái)的系統(tǒng)的編譯方法 。
具體技術(shù)方案如下:
一種基于高通平臺(tái)的系統(tǒng)的編譯方法,其特征在于,提供一編譯服務(wù)器,所述服務(wù)器提供一編譯環(huán)境;
還包括以下步驟:
步驟S1、通過(guò)所述服務(wù)端獲取一包括多個(gè)子系統(tǒng)的系統(tǒng)源文件,并將所述系統(tǒng)源文件加載至所述服務(wù)器的所述編譯環(huán)境中;
步驟S2、所述服務(wù)端每個(gè)所述子系統(tǒng)進(jìn)行獨(dú)立編譯;
步驟S3、所述系統(tǒng)源文件中的多個(gè)所述子系統(tǒng)于編譯成功后,對(duì)編譯成功的所述系統(tǒng)源文件進(jìn)行封裝以形成一系統(tǒng)目標(biāo)文件。
優(yōu)選的,所述編譯服務(wù)器為基于Linux操作系統(tǒng)的編譯服務(wù)器。
優(yōu)選的,所述編譯環(huán)境通過(guò)于所述服務(wù)端中提供一編譯工具生成。
優(yōu)選的,所述編譯工具為buildroot工具。
優(yōu)選的,所述rootfs根文件單元包括,driver模塊、WiFi模塊、數(shù)據(jù)面模塊、應(yīng)用程序模塊。
優(yōu)選的,所述driver模塊的驅(qū)動(dòng)、所述WiFi模塊的驅(qū)動(dòng)、所述數(shù)據(jù)面模塊的驅(qū)動(dòng)以及所述應(yīng)用程序模塊的驅(qū)動(dòng)通過(guò)于所述kernel內(nèi)核單元中分離出并保存至所述rootfs根文件單元。
優(yōu)選的,所述服務(wù)器提供一編譯模板,用以分別對(duì)所述driver模塊、所述WiFi模塊、所述數(shù)據(jù)面模塊、所述應(yīng)用程序模塊進(jìn)行編譯。
優(yōu)選的,
所述driver模塊提供一第一編程接口,通過(guò)所述第一編程接口加載所述driver模塊的驅(qū)動(dòng),和/或
所述WiFi模塊提供一第二編程接口,通過(guò)所述第二編程接口加載所述WiFi模塊的驅(qū)動(dòng),和/或
所述數(shù)據(jù)面模塊提供一第三編程接口,通過(guò)所述第三編程接口加載所述數(shù)據(jù)面模塊的驅(qū)動(dòng),和/或
所述應(yīng)用程序模塊提供一第四編程接口,通過(guò)所述第四編程接口加載所述應(yīng)用程序模塊的驅(qū)動(dòng)。
優(yōu)選的,所述系統(tǒng)源文件為基于mips系統(tǒng)源文件, 其中mips系統(tǒng)源文件是基于Unix開發(fā)獲取的。
上述技術(shù)方案具有如下優(yōu)點(diǎn)或有益效果: 能對(duì)系統(tǒng)源文件中的子系統(tǒng)進(jìn)行獨(dú)立編譯,且編譯環(huán)境與系統(tǒng)源文件分離使編譯效率更高,克服了現(xiàn)有技術(shù)中編譯系統(tǒng)操作復(fù)雜且編譯效率低的缺陷。
附圖說(shuō)明
參考所附附圖,以更加充分的描述本發(fā)明的實(shí)施例。然而,所附附圖僅用于說(shuō)明和闡述,并不構(gòu)成對(duì)本發(fā)明范圍的限制。
圖1為本發(fā)明一種基于高通平臺(tái)的系統(tǒng)的編譯方法實(shí)施例的流程圖;
圖2為本發(fā)明的系統(tǒng)源文件的實(shí)施例的結(jié)構(gòu)示意圖。
上述說(shuō)明書中附圖標(biāo)記表示:
(1)、boot啟動(dòng)單元;(2)、kernel內(nèi)核程序;(3)、rootfs根文件單元;(31)、driver模塊;(32)、WiFi模塊;(33)、數(shù)據(jù)面模塊;(34)應(yīng)用程序模塊。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
需要說(shuō)明的是,在不沖突的情況下,本發(fā)明中的實(shí)施例及實(shí)施例中的特征可以相互組合。
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明,但不作為本發(fā)明的限定。
本發(fā)明包括一種基于高通平臺(tái)的系統(tǒng)的編譯方法。
一種基于高通平臺(tái)的系統(tǒng)的編譯方法的是實(shí)施例,其中,提供一編譯服務(wù)器,服務(wù)器提供一編譯環(huán)境;
還包括以下步驟:
步驟S1、通過(guò)服務(wù)端獲取一包括多個(gè)子系統(tǒng)的系統(tǒng)源文件,并將系統(tǒng)源文件加載至服務(wù)器的編譯環(huán)境中;
步驟S2、服務(wù)端對(duì)每個(gè)子系統(tǒng)進(jìn)行獨(dú)立編譯;
步驟S3、系統(tǒng)源文件中的多個(gè)子系統(tǒng)于編譯成功后,對(duì)編譯成功的的系統(tǒng)源文件進(jìn)行封裝以形成一系統(tǒng)目標(biāo)文件。
現(xiàn)有在編譯系統(tǒng)源文件中,主要對(duì)系統(tǒng)原文件進(jìn)行編譯,而這種編譯方式不僅系統(tǒng)間的耦合度高而且編譯速度慢,使得對(duì)系統(tǒng)源文件的編譯效率較低;
上述技術(shù)方案中,針對(duì)現(xiàn)有的對(duì)系統(tǒng)源文件的編譯效率較低且編譯不便的缺陷,通過(guò)編譯服務(wù)器中搭建的編譯環(huán)境,將加載的系統(tǒng)源文件進(jìn)行編譯。其中系統(tǒng)源文件中包括多個(gè)子系統(tǒng),通過(guò)對(duì)上述的多個(gè)子系統(tǒng)進(jìn)行獨(dú)立編譯,因此各個(gè)子系統(tǒng)之間的耦合度較低,減少了維護(hù)成本,同時(shí)對(duì)系統(tǒng)源文件中的子系統(tǒng)進(jìn)行分開編譯提高了編譯的效率,在對(duì)系統(tǒng)源文件中的子系統(tǒng)編譯成功后可將編譯好的系統(tǒng)源文件進(jìn)行封裝形成系統(tǒng)目標(biāo)文件,系統(tǒng)目標(biāo)文件可通過(guò)相關(guān)的的寫入工具寫入嵌入式設(shè)備中,以實(shí)現(xiàn)嵌入式設(shè)備的工作。
在一種較優(yōu)的實(shí)施方式中,編譯服務(wù)器為基于Linux操作系統(tǒng)的編譯服務(wù)器。
在一種較優(yōu)的實(shí)施方式中,編譯環(huán)境通過(guò)于服務(wù)端中提供一編譯工具生成,優(yōu)選的編譯工具為buildroot工具。
上述技術(shù)方案中,針對(duì)嵌入式設(shè)備的系統(tǒng)源文件進(jìn)行編譯,因此提供的編譯服務(wù)器為基于Linux操作系統(tǒng),其中編譯環(huán)境可編譯工具即buildroot工具進(jìn)行編譯搭建,于編譯環(huán)境搭建成功后,可通過(guò)服務(wù)器加載需要編譯的系統(tǒng)源文件進(jìn)行編譯,其中編譯過(guò)程中,對(duì)系統(tǒng)源文件中的子系統(tǒng)進(jìn)行分開獨(dú)立編譯。
在一種較優(yōu)的實(shí)施方式中,子系統(tǒng)包括,boot啟動(dòng)單元1、kernel內(nèi)核程序2、rootfs根文件單元3。
上述技術(shù)方案中,如圖2所示,上述的系統(tǒng)源文件中的子系統(tǒng)可包括boot啟動(dòng)單元1、kernel內(nèi)核程序2、rootfs根文件單元3;
其中boot啟動(dòng)單元1,用以引導(dǎo)系統(tǒng)的啟動(dòng)單元;
kernel內(nèi)核程序2,為操作系統(tǒng)的核心部分;
rootfs根文件單元3,是內(nèi)核啟動(dòng)時(shí)所mount的第一個(gè)文件系統(tǒng),內(nèi)核代碼映像文件保存在根文件單元中,而系統(tǒng)引導(dǎo)啟動(dòng)單元會(huì)在根文件單元掛載之后從中把一些基本的初始化腳本和服務(wù)等加載到內(nèi)存中去運(yùn)行。
在一種較優(yōu)的實(shí)施方式中,從kernel內(nèi)核單元中提取的rootfs根文件單元3中可包括,driver模塊31、WiFi模塊32、數(shù)據(jù)面模塊33、應(yīng)用程序模塊34,進(jìn)而可對(duì)driver模塊31、WiFi模塊32、數(shù)據(jù)面模塊33、應(yīng)用程序模塊34進(jìn)行分開獨(dú)立編譯。
在一種較優(yōu)的實(shí)施方式中,driver模塊31的驅(qū)動(dòng)、WiFi模塊32的驅(qū)動(dòng)、數(shù)據(jù)面模塊33的驅(qū)動(dòng)以及應(yīng)用程序模塊34的驅(qū)動(dòng)通過(guò)于kernel內(nèi)核單元中分離出并保存至rootfs根文件單元3。
在一種較優(yōu)的實(shí)施方式中,服務(wù)器提供一編譯模板,用以分別對(duì)driver模塊31、WiFi模塊32、數(shù)據(jù)面模塊33、應(yīng)用程序模塊34進(jìn)行編譯。
上述技術(shù)方案中,上述的rootfs根文件單元3可包括driver模塊31、WiFi模塊32、數(shù)據(jù)面模塊33、應(yīng)用程序模塊34,并且服務(wù)端通過(guò)提供一編譯模板其中編譯模板用以同上述的driver模塊31、WiFi模塊32、數(shù)據(jù)面模塊33、應(yīng)用程序模塊34,進(jìn)行編譯。
在一種較優(yōu)的實(shí)施方式中,
driver模塊31提供一第一編程接口,通過(guò)第一編程接口加載driver模塊31的驅(qū)動(dòng);
在一種較優(yōu)的實(shí)施方式中,
WiFi模塊32提供一第二編程接口,通過(guò)第二編程接口加載WiFi模塊32的驅(qū)動(dòng)。
在一種較優(yōu)的實(shí)施方式中,
數(shù)據(jù)面模塊33提供一第三編程接口,通過(guò)第三編程接口加載數(shù)據(jù)面模塊33的驅(qū)動(dòng)。
在一種較優(yōu)的實(shí)施方式中,
應(yīng)用程序模塊34提供一第四編程接口,通過(guò)第四編程接口加載應(yīng)用程序模塊34的驅(qū)動(dòng)。
driver模塊31WiFi模塊32數(shù)據(jù)面模塊33應(yīng)用程序模塊34driver模塊31WiFi模塊32數(shù)據(jù)面模塊33應(yīng)用程序模塊34
在針對(duì)不同設(shè)備的系統(tǒng)源文件,其中的rootfs根文件單元3中的driver模塊31、WiFi模塊32、數(shù)據(jù)面模塊33、應(yīng)用程序模塊34,其對(duì)應(yīng)的驅(qū)動(dòng)程序配置會(huì)有所不同;
上述技術(shù)方案中,上述的rootfs根文件單元3中的driver模塊31、WiFi模塊32、數(shù)據(jù)面模塊33、應(yīng)用程序模塊34均提供一編程接口,其中每個(gè)模塊通過(guò)其編程接口以加載其模塊對(duì)應(yīng)的驅(qū)動(dòng)程序,以實(shí)現(xiàn)對(duì)上述模塊的配置,而在對(duì)外設(shè)的系統(tǒng)源文件中的driver模塊31、WiFi模塊32、數(shù)據(jù)面模塊33、應(yīng)用程序模塊34進(jìn)行相應(yīng)的配置時(shí),只需要更換其對(duì)應(yīng)的驅(qū)動(dòng)程序,提高了配置的效率。
在一種較優(yōu)的實(shí)施方式中,系統(tǒng)源文件為基于mips系統(tǒng)源文件。
在具體實(shí)施例中,針對(duì)現(xiàn)有的對(duì)系統(tǒng)源文件的編譯效率較低且編譯不便的缺陷,通過(guò)編譯服務(wù)器中搭建的編譯環(huán)境,將加載的系統(tǒng)源文件進(jìn)行編譯。其中系統(tǒng)源文件中包括多個(gè)子系統(tǒng),通過(guò)對(duì)上述的多個(gè)子系統(tǒng),其中子系統(tǒng)可包括boot啟動(dòng)單元1、kernel內(nèi)核程序2、rootfs根文件單元3,進(jìn)行獨(dú)立編譯,因此各個(gè)子系統(tǒng)之間的耦合度較低,減少了維護(hù)成本,同時(shí)對(duì)系統(tǒng)源文件中的子系統(tǒng)進(jìn)行獨(dú)立編譯提高了編譯的效率,而在rootfs根文件單元3中,對(duì)rootfs根文件單元3中的模塊包括driver模塊31、WiFi模塊32、數(shù)據(jù)面模塊33、應(yīng)用程序模塊34,通過(guò)提供的編譯模塊統(tǒng)一進(jìn)行編譯,以減少編譯的工作量,而對(duì)上述的模塊中的driver模塊31、WiFi模塊32、數(shù)據(jù)面模塊33、應(yīng)用程序模塊34分別提供一編程接口,用以加載上述模塊對(duì)應(yīng)的驅(qū)動(dòng)程序以完成對(duì)上述模塊的配置,在對(duì)系統(tǒng)源文件中的子系統(tǒng)編譯成功后可將編譯好的系統(tǒng)源文件進(jìn)行封裝形成系統(tǒng)目標(biāo)文件,系統(tǒng)目標(biāo)文件可通過(guò)相關(guān)的寫入工具寫入嵌入式設(shè)備中,以實(shí)現(xiàn)嵌入式設(shè)備的工作。
以上所述僅為本發(fā)明較佳的實(shí)施例,并非因此限制本發(fā)明的實(shí)施方式及保護(hù)范圍,對(duì)于本領(lǐng)域技術(shù)人員而言,應(yīng)當(dāng)能夠意識(shí)到凡運(yùn)用本發(fā)明說(shuō)明書及圖示內(nèi)容所作出的等同替換和顯而易見的變化所得到的方案,均應(yīng)當(dāng)包含在本發(fā)明的保護(hù)范圍內(nèi)。