国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種嵌入式軟件裝載調(diào)試方法及其系統(tǒng)的制作方法

      文檔序號:6560718閱讀:184來源:國知局
      專利名稱:一種嵌入式軟件裝載調(diào)試方法及其系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及嵌入式系統(tǒng)技術(shù),特別涉及一種嵌入式軟件裝載調(diào)試方法及其系統(tǒng)。
      背景技術(shù)
      嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁減,適用于應(yīng)用系統(tǒng)對功能、成本、可靠性、體積以及功耗等有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)已經(jīng)在各種通訊設(shè)備中大量使用。由于各種嵌入式系統(tǒng)定制的功能、采用的存儲介質(zhì)及控制器,以及運(yùn)行環(huán)境各不相同,因此,不同的嵌入式系統(tǒng)在嵌入式通訊設(shè)備中的性能表現(xiàn)各不相同,對于不同的嵌入式系統(tǒng)需要進(jìn)行調(diào)試,以驗(yàn)證嵌入式系統(tǒng)的各種定制功能,保證嵌入式系統(tǒng)的可靠性。
      現(xiàn)有技術(shù)中存在兩種嵌入式系統(tǒng)調(diào)試方法及其系統(tǒng)圖1為現(xiàn)有技術(shù)第一種嵌入式系統(tǒng)調(diào)試系統(tǒng)的結(jié)構(gòu)示意圖。如圖1所示,該系統(tǒng)包括桌面計(jì)算機(jī)、硬件仿真器103以及目標(biāo)嵌入式系統(tǒng)。其中,桌面計(jì)算機(jī)包括編譯鏈接器101和調(diào)試器102,硬件仿真器103用于連接調(diào)試器102和目標(biāo)嵌入式系統(tǒng)。
      利用圖1所示調(diào)試系統(tǒng)進(jìn)行嵌入式系統(tǒng)調(diào)試的實(shí)現(xiàn)過程為桌面計(jì)算機(jī)通過編譯連接器101編譯鏈接嵌入式系統(tǒng)軟件源代碼,生成完整的帶有調(diào)試信息的可執(zhí)行映像文件,再通過調(diào)試器102將生成的帶有調(diào)試信息的可執(zhí)行映像文件傳輸給硬件仿真器103,由硬件仿真器103將接收到的帶有調(diào)試信息的可執(zhí)行映像文件下載到目標(biāo)嵌入式系統(tǒng),再通過調(diào)試器102進(jìn)行在線調(diào)試。
      利用圖1所示系統(tǒng)進(jìn)行嵌入式系統(tǒng)調(diào)試的優(yōu)點(diǎn)是能夠在線調(diào)試單線程可執(zhí)行代碼;可以通過調(diào)試器102單步執(zhí)行或設(shè)置斷點(diǎn),因此,可以非常方便地查看和修改系統(tǒng)中的變量。但實(shí)際應(yīng)用中,該方法并不常用,主要的原因是使用該方法需要購買價(jià)格昂貴的硬件仿真器;代碼裝載時(shí)間隨著軟件源代碼量的增加而增加,所以,當(dāng)嵌入式系統(tǒng)的軟件源代碼量較大時(shí),代碼裝載時(shí)間會很長。另外,該方法不適合調(diào)試多線程可執(zhí)行源代碼,而實(shí)際應(yīng)用中,帶有操作系統(tǒng)的嵌入式系統(tǒng)通常都需要多線程調(diào)試。
      圖2為現(xiàn)有技術(shù)第二種嵌入式系統(tǒng)調(diào)試系統(tǒng)的結(jié)構(gòu)示意圖。如圖2所示,該系統(tǒng)包括桌面計(jì)算機(jī)和目標(biāo)嵌入式系統(tǒng)。其中,桌面計(jì)算機(jī)包括編譯鏈接器201和下載器202,嵌入式系統(tǒng)包括可引導(dǎo)程序單元203和存儲單元204。
      利用圖2所示調(diào)試系統(tǒng)進(jìn)行嵌入式系統(tǒng)調(diào)試的實(shí)現(xiàn)過程為桌面計(jì)算機(jī)通過編譯鏈接器201編譯鏈接嵌入式系統(tǒng)軟件源代碼,生成完整的可執(zhí)行映像文件,并通過下載器201和可引導(dǎo)程序單元203之間的通訊端口將生成的可執(zhí)行映像文件下載并存儲到目標(biāo)嵌入式系統(tǒng)的存儲單元204。然后,目標(biāo)嵌入式系統(tǒng)中的可引導(dǎo)程序引導(dǎo)存儲單元204中的可執(zhí)行映像文件進(jìn)行嵌入式系統(tǒng)調(diào)試,并通過下載器201和可引導(dǎo)程序單元203之間的通訊端口向桌面計(jì)算機(jī)控制臺發(fā)送嵌入式系統(tǒng)調(diào)試結(jié)果的打印信息。這里,所述的通訊端口可以根據(jù)系統(tǒng)配置確定,可以是串行接口、并行接口或者USB通用串行接口。
      利用圖2所示系統(tǒng)進(jìn)行嵌入式系統(tǒng)調(diào)試可以通過普通的串行端口線連接桌面計(jì)算機(jī)和目標(biāo)嵌入式硬件系統(tǒng),使用方便,成本低廉,單線程和多線程可執(zhí)行源代碼都可以調(diào)試。目前,大多數(shù)軟件工程師和系統(tǒng)工程師都使用該方法和系統(tǒng)進(jìn)行嵌入式系統(tǒng)調(diào)試。但由于串行端口的特性,下載可執(zhí)行映像文件的速度受到一定限制,無法達(dá)到很高的速度,尤其在軟件代碼量很大時(shí),調(diào)試人員的很多時(shí)間都是在等待桌面計(jì)算機(jī)向目標(biāo)嵌入式系統(tǒng)下載可執(zhí)行映像文件,因此造成大量時(shí)間的浪費(fèi)。

      發(fā)明內(nèi)容
      本發(fā)明的主要目的在于提供一種嵌入式軟件裝載調(diào)試方法,提高嵌入式系統(tǒng)軟件裝載調(diào)試的效率。
      本發(fā)明的另一主要目的在于提供一種嵌入式軟件裝載調(diào)試系統(tǒng),在低成本的基礎(chǔ)上提高嵌入式軟件裝載調(diào)試的效率。
      為了實(shí)現(xiàn)上述目的的第一方面,本發(fā)明提供了一種嵌入式軟件裝載調(diào)試方法,該方法編譯嵌入式系統(tǒng)軟件源代碼生成目標(biāo)文件后,還包括以下步驟A、確定需要修改和不需要修改的源代碼,編輯地址映射描述文件,將目標(biāo)嵌入式系統(tǒng)的存儲空間相應(yīng)的劃分為兩個(gè)部分;B、根據(jù)步驟A的地址映射描述文件鏈接目標(biāo)文件,生成分別包含不需要修改和需要修改的源代碼的兩個(gè)可執(zhí)行映像文件;C、根據(jù)用戶指令將步驟B生成的兩個(gè)可執(zhí)行映像文件中修改的部分轉(zhuǎn)換為可裝載文件,并將轉(zhuǎn)換的可裝載文件下載到目標(biāo)嵌入式系統(tǒng),存儲到存儲空間的相應(yīng)位置,引導(dǎo)嵌入式系統(tǒng)軟件運(yùn)行進(jìn)行調(diào)試。
      所述生成目標(biāo)文件時(shí),進(jìn)一步包括記錄每一段源代碼對應(yīng)的代碼段和數(shù)據(jù)段的大小;步驟A所述確定需要修改和不需要修改的源代碼后,進(jìn)一步包括根據(jù)記錄的每一段源代碼對應(yīng)的代碼段和數(shù)據(jù)段的大小,分別計(jì)算需要修改和不需要修改的源代碼對應(yīng)的代碼段和數(shù)據(jù)段的大小;步驟A所述將存儲空間分為兩個(gè)部分為根據(jù)嵌入式系統(tǒng)的硬件存儲器配置以及需要修改的源代碼和不需要修改的源代碼對應(yīng)的代碼段和數(shù)據(jù)段的大小將存儲空間分為兩個(gè)部分。
      步驟C所述根據(jù)用戶指令將步驟B生成的可執(zhí)行映像文件中修改的部分轉(zhuǎn)換為可裝載文件為根據(jù)用戶指令將兩個(gè)可執(zhí)行映像文件全部轉(zhuǎn)換為可裝載文件;或根據(jù)用戶指令提取可執(zhí)行映像文件一中由于重新編譯鏈接導(dǎo)致的部分指令修改的代碼,并將可執(zhí)行映像文件一中修改的代碼與可執(zhí)行映像文件二合并后轉(zhuǎn)換為可裝載文件;或根據(jù)用戶指令將可執(zhí)行映像文件二轉(zhuǎn)換為可裝載文件;步驟C所述的將可裝載文件存儲到存儲空間的相應(yīng)位置為根據(jù)可裝載文件中攜帶的數(shù)據(jù)塊在存儲空間的存儲位置信息,將可裝載文件中的數(shù)據(jù)塊存儲到存儲空間的相應(yīng)位置。
      所述可裝載文件攜帶的數(shù)據(jù)塊在存儲空間的存儲位置信息為可裝載文件中每一個(gè)數(shù)據(jù)塊的偏移量信息。
      步驟A所述需要修改的源代碼包括嵌入式系統(tǒng)中的未經(jīng)調(diào)試的應(yīng)用軟件代碼、嵌入式系統(tǒng)外設(shè)的驅(qū)動代碼、嵌入式系統(tǒng)外設(shè)的功能代碼;所述不需要修改的源代碼包括已經(jīng)過調(diào)試的穩(wěn)定的嵌入式系統(tǒng)代碼。
      為了實(shí)現(xiàn)上述目的的第二方面,本發(fā)明提供了一種嵌入式軟件裝載調(diào)試系統(tǒng),該系統(tǒng)包括能夠控制嵌入式系統(tǒng)的計(jì)算機(jī)系統(tǒng)和目標(biāo)嵌入式系統(tǒng),其中,能夠控制嵌入式系統(tǒng)的計(jì)算機(jī)系統(tǒng)包括編譯鏈接器、裝載文件生成器以及引導(dǎo)裝載器部件一;目標(biāo)嵌入式系統(tǒng)包括引導(dǎo)裝載器部件二和存儲單元,引導(dǎo)裝載器部件一與引導(dǎo)裝載器部件二相連進(jìn)行信息交互,編譯鏈接器,用于將嵌入式系統(tǒng)的軟件源代碼編譯生成目標(biāo)文件后,根據(jù)用戶編輯的執(zhí)行地址映射描述文件鏈接目標(biāo)文件,生成分別包含不需要修改的源代碼和需要修改的源代碼的兩個(gè)可執(zhí)行映像文件;裝載文件生成器,用于根據(jù)用戶指令,將編譯鏈接器生成的兩個(gè)可執(zhí)行映像文件中修改的部分轉(zhuǎn)換為可裝載文件,并將轉(zhuǎn)換的可裝載文件發(fā)送給引導(dǎo)裝載器部件一;引導(dǎo)裝載器部件一與引導(dǎo)裝載器部件二通過信息交互,將可裝載文件下載到引導(dǎo)裝載器部件二;引導(dǎo)裝載器部件二將可裝載文件存儲到存儲單元的相應(yīng)位置,并引導(dǎo)嵌入式系統(tǒng)軟件運(yùn)行進(jìn)行調(diào)試。
      所述引導(dǎo)裝載器部件二包括數(shù)據(jù)塊存儲模塊,用于根據(jù)可裝載文件攜帶的數(shù)據(jù)塊在存儲單元的存儲位置信息,將可裝載文件中的數(shù)據(jù)塊存儲到存儲單元的相應(yīng)位置。
      所述目標(biāo)嵌入式系統(tǒng)進(jìn)一步包括存儲單元二,用于存儲目標(biāo)嵌入式系統(tǒng)從所述存儲單元拷貝的嵌入式系統(tǒng)軟件;所述引導(dǎo)裝載器部件二進(jìn)一步用于引導(dǎo)存儲單元二中的嵌入式系統(tǒng)軟件運(yùn)行。
      所述引導(dǎo)裝載器部件一與引導(dǎo)裝載器部件二通過通訊端口相連;所述的通訊端口為串行接口、并行接口或USB通用串行接口。
      所述能夠控制嵌入式系統(tǒng)的計(jì)算機(jī)系統(tǒng)為桌面計(jì)算機(jī)、或筆記本電腦。
      本發(fā)明提供的嵌入式軟件裝載調(diào)試方法,根據(jù)嵌入式系統(tǒng)調(diào)試中絕大部分源代碼不需要修改,只需修改部分源代碼的特點(diǎn),通過分解可執(zhí)行映像文件,將源代碼不需要修改和需要修改部分的可執(zhí)行映像文件分離,調(diào)試中只需要將源代碼修改部分的可執(zhí)行映像文件裝載到目標(biāo)嵌入式系統(tǒng),減少了下載文件的長度,縮短了下載時(shí)間,從而達(dá)到提高工作效率的目的。
      本發(fā)明提供的嵌入式軟件裝載調(diào)試系統(tǒng),通過編譯鏈接器根據(jù)用戶編輯的執(zhí)行地址映射描述文件鏈接目標(biāo)文件,生成兩個(gè)分別包含不需要修改和需要修改的源代碼的可執(zhí)行映像文件;通過裝載文件生成器根據(jù)用戶指令,將編譯鏈接器生成的可執(zhí)行映像文件中修改的部分轉(zhuǎn)換為可裝載文件;通過引導(dǎo)裝載器部件將轉(zhuǎn)換的可裝載文件下載到目標(biāo)嵌入式系統(tǒng)中,并引導(dǎo)嵌入式系統(tǒng)軟件運(yùn)行進(jìn)行調(diào)試。
      因此,利用本發(fā)明提供的嵌入式軟件裝載調(diào)試方法及其系統(tǒng),不僅可以避免現(xiàn)有技術(shù)中第一種嵌入式系統(tǒng)調(diào)試系統(tǒng)的高成本、代碼裝載時(shí)間長以及不適于調(diào)試多線程可執(zhí)行源代碼的問題,而且與現(xiàn)有技術(shù)的第二種嵌入式系統(tǒng)調(diào)試方法和系統(tǒng)相比,具有更高的調(diào)試效率,實(shí)現(xiàn)了在低成本的基礎(chǔ)上提高嵌入式軟件裝載調(diào)試效率的目的。


      圖1為現(xiàn)有技術(shù)第一種嵌入式系統(tǒng)調(diào)試系統(tǒng)的結(jié)構(gòu)示意圖;圖2為現(xiàn)有技術(shù)第二種嵌入式系統(tǒng)調(diào)試系統(tǒng)的結(jié)構(gòu)示意圖;圖3為本發(fā)明的嵌入式系統(tǒng)調(diào)試方法的流程示意圖;圖4為本發(fā)明的嵌入式系統(tǒng)的調(diào)試系統(tǒng)的結(jié)構(gòu)示意圖。
      具體實(shí)施例方式
      為使本發(fā)明的目的、技術(shù)方案和有益效果更加清楚明白,下面結(jié)合實(shí)施例和附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。
      本發(fā)明提供的嵌入式軟件裝載調(diào)試方法及其系統(tǒng)的核心思想是將可執(zhí)行映像文件分解為兩個(gè)可執(zhí)行映像文件,分別包含不需要修改和需要修改的源代碼,并在目標(biāo)嵌入式系統(tǒng)中為兩個(gè)可執(zhí)行映像文件分配不同的存儲空間,從而在目標(biāo)嵌入式系統(tǒng)調(diào)試中,只需要將源代碼修改部分的可執(zhí)行映像文件下載到目標(biāo)嵌入式系統(tǒng)中相應(yīng)的存儲空間,然后引導(dǎo)嵌入式系統(tǒng)軟件運(yùn)行,進(jìn)行調(diào)試。
      參見圖3,圖3為本發(fā)明的嵌入式系統(tǒng)調(diào)試方法的流程示意圖。如圖3所示,該流程包括以下步驟步驟301,使用編譯鏈接器編譯嵌入式系統(tǒng)軟件源代碼,生成目標(biāo)文件。
      在編譯鏈接器編譯源代碼生成目標(biāo)文件的時(shí)候,會指示出每一段源代碼對應(yīng)的代碼段和數(shù)據(jù)段的大小,該步驟可以進(jìn)一步包括記錄每一段源代碼對應(yīng)的代碼段和數(shù)據(jù)段的大小。
      步驟302,確定需要修改的源代碼和不需要修改的源代碼,編輯地址映射描述文件,將存儲空間劃分為兩個(gè)部分。
      用戶確定需要修改的源代碼和不需要修改的源代碼,并根據(jù)步驟301記錄的每一段源代碼對應(yīng)的代碼段和數(shù)據(jù)段的大小,確定需要修改的源代碼和不需要修改的源代碼對應(yīng)的代碼段和數(shù)據(jù)段的大小。
      然后,用戶根據(jù)嵌入式系統(tǒng)的硬件存儲器配置以及步驟302確定的需要修改和不需要修改的源代碼分別對應(yīng)的代碼段和數(shù)據(jù)段大小,將存儲空間分為兩個(gè)部分一部分用于存儲不需要修改的源代碼所對應(yīng)的代碼段和數(shù)據(jù)段,空間大小與這部分的代碼段及數(shù)據(jù)段的大小相等或稍大幾個(gè)字節(jié);另一部分用于存儲需要修改的源代碼所對應(yīng)的代碼段和數(shù)據(jù)段,由于這部分的源代碼在調(diào)試中會不斷地修改,對應(yīng)的代碼段和數(shù)據(jù)段在每次編譯調(diào)試中都會有差異,因此需要為這部分代碼段和數(shù)據(jù)段分配盡可能多的存儲空間。當(dāng)然,兩部分存儲空間的總和不能超過嵌入式系統(tǒng)存儲器的可訪問地址長度。
      這里,所述需要修改的源代碼包括嵌入式系統(tǒng)中的未經(jīng)調(diào)試的應(yīng)用軟件代碼、嵌入式系統(tǒng)外設(shè)的驅(qū)動代碼、嵌入式系統(tǒng)外設(shè)的功能代碼等;所述不需要修改的源代碼包括已經(jīng)過調(diào)試的穩(wěn)定可靠的嵌入式系統(tǒng)代碼,如操作系統(tǒng)代碼等。
      嵌入式系統(tǒng)的硬件存儲器配置包括存儲器的起始地址、可訪問地址長度。
      可以采用如下格式編輯地址映射描述文件[裝載段1][起始地址][長度]{[代碼段起始地址][代碼段長度][數(shù)據(jù)段起始地址][數(shù)據(jù)段長度]{目標(biāo)文件名字}}[裝載段2][起始地址][長度]{[代碼段起始地址][代碼段長度][數(shù)據(jù)段起始地址][數(shù)據(jù)段長度]{
      目標(biāo)文件名字}}其中,如果裝載段1描述的地址映射空間存儲對應(yīng)不需要修改的源代碼的可執(zhí)行映像文件,則與裝載段1相關(guān)的各個(gè)參數(shù)的確定原則或取值范圍為起始地址根據(jù)目標(biāo)嵌入式系統(tǒng)的存儲器配置確定,長度應(yīng)不小于不需修改的源代碼的對應(yīng)代碼段長度與數(shù)據(jù)段長度之和;代碼段起始地址等于裝載段1的起始地址,代碼段長度應(yīng)等于不需修改源代碼的對應(yīng)代碼段長度;數(shù)據(jù)段起始地址等于代碼段起始地址加上代碼段長度,數(shù)據(jù)段長度應(yīng)等于不需修改源代碼的對應(yīng)數(shù)據(jù)段長度。
      裝載段2描述的地址映射空間存儲對應(yīng)需要修改的源代碼的可執(zhí)行映像文件,其中與裝載段2相關(guān)的各個(gè)參數(shù)的確定原則或取值范圍為起始地址等于裝載段1起始地址加上裝載段1的長度,長度應(yīng)不小于需修改源代碼的對應(yīng)代碼段長度與數(shù)據(jù)段長度之和;代碼段起始地址等于裝載段2的起始地址,代碼段長度應(yīng)大于或等于需修改源代碼的對應(yīng)代碼段長度;數(shù)據(jù)段起始地址等于代碼段起始地址加上代碼段長度,數(shù)據(jù)段長度應(yīng)大于或等于需修改源代碼的對應(yīng)數(shù)據(jù)段長度。
      步驟303,根據(jù)步驟302編輯的地址映射描述文件鏈接目標(biāo)文件,生成兩個(gè)可執(zhí)行映像文件,可執(zhí)行映像文件一包含不需要修改的源代碼的可執(zhí)行代碼段和數(shù)據(jù)段;可執(zhí)行映像文件二包含需要修改的源代碼的可執(zhí)行代碼段和數(shù)據(jù)段。
      步驟304,根據(jù)用戶指令,將步驟303生成的兩個(gè)可執(zhí)行映像文件中修改的部分轉(zhuǎn)換為可裝載文件。
      所述的用戶指令包括三種情況一種是用戶指令要求完整裝載,即將兩個(gè)可執(zhí)行映像文件全部轉(zhuǎn)換為可裝載文件,這種指令用于嵌入式系統(tǒng)調(diào)試過程中的第一次裝載或可執(zhí)行映像文件一和二的源代碼都進(jìn)行了修改的情況。這里,也可以將第一次裝載的情況看作可執(zhí)行映像文件一和二的源代碼都進(jìn)行了修改的一種特殊情況;第二種用戶指令要求部分裝載,即提取可執(zhí)行映像文件一中由于重新編譯鏈接導(dǎo)致部分指令改變的代碼,將可執(zhí)行映像文件一中改變的部分與可執(zhí)行映像文件二轉(zhuǎn)換為可裝載文件;第三種用戶指令要求只裝載可執(zhí)行映像文件二,這種指令用于可執(zhí)行映像文件一沒有進(jìn)行任何修改,只有可執(zhí)行映像文件二的源代碼修改的情況。
      這里,可裝載文件可以采用如下所示的數(shù)據(jù)格式組成代表符號 長度文件頭數(shù)據(jù)組成文件標(biāo)記File_Mark 4字節(jié)文件數(shù)據(jù)長度File_Length 4字節(jié)數(shù)據(jù)區(qū)數(shù)據(jù)組成數(shù)據(jù)塊1頭信息數(shù)據(jù)塊1標(biāo)記 DB_1Mark 4字節(jié)數(shù)據(jù)塊1偏移量 DB1_Offset4字節(jié)數(shù)據(jù)塊1長度 DB1_Length4字節(jié)數(shù)據(jù)塊1數(shù)據(jù) DB1_Data DB1_Length 字節(jié)數(shù)據(jù)塊2頭信息數(shù)據(jù)塊2標(biāo)記 DB2_Mark 4字節(jié)數(shù)據(jù)塊2偏移量 DB2_Offset4字節(jié)數(shù)據(jù)塊2長度 DB2_Length4字節(jié)數(shù)據(jù)塊2數(shù)據(jù) DB2_Data DB2_Length 字節(jié)…數(shù)據(jù)塊n頭信息數(shù)據(jù)塊n標(biāo)記DBn_Mark 4字節(jié)數(shù)據(jù)塊n偏移量 DBn_Offset4字節(jié)數(shù)據(jù)塊n長度DBn_Length4字節(jié)數(shù)據(jù)塊n數(shù)據(jù)DBn_Data DBn_Length 字節(jié)文件結(jié)尾數(shù)據(jù)塊頭信息文件結(jié)束標(biāo)記 File_Tail 4字節(jié)上述文件格式中的n為大于0的整數(shù)。每一個(gè)數(shù)據(jù)塊的偏移量表征了該數(shù)據(jù)塊在存儲單元的起始位置。
      步驟305,將步驟304轉(zhuǎn)換的可裝載文件下載到目標(biāo)嵌入式系統(tǒng),并存儲到存儲單元的相應(yīng)位置后,引導(dǎo)嵌入式系統(tǒng)軟件運(yùn)行進(jìn)行調(diào)試。
      這里,目標(biāo)嵌入式系統(tǒng)根據(jù)可裝載文件攜帶的數(shù)據(jù)塊在存儲空間的存儲位置信息,將可裝載文件中的數(shù)據(jù)塊存儲到存儲空間的相應(yīng)位置。
      如果采用步驟304所述的可裝載文件格式,則目標(biāo)嵌入式系統(tǒng)根據(jù)接收到的可裝載文件的每一個(gè)數(shù)據(jù)塊的偏移量信息,將每一個(gè)數(shù)據(jù)塊存儲到存儲單元的相應(yīng)位置。
      具體而言,將可裝載文件下載到目標(biāo)嵌入式系統(tǒng),并存儲到存儲單元的相應(yīng)位置包括以下過程A1、根據(jù)目標(biāo)嵌入式系統(tǒng)發(fā)送的等待下載的提示,向目標(biāo)嵌入式系統(tǒng)發(fā)送可裝載文件的文件頭數(shù)據(jù)。
      A2、在目標(biāo)嵌入式系統(tǒng)返回成功接收文件頭數(shù)據(jù)的握手消息后,向目標(biāo)嵌入式系統(tǒng)發(fā)送可裝載文件的數(shù)據(jù)區(qū)數(shù)據(jù)。
      A3、目標(biāo)嵌入式系統(tǒng)接收到下載的數(shù)據(jù)區(qū)數(shù)據(jù)后,根據(jù)接收的每一個(gè)數(shù)據(jù)塊的偏移量信息,將接收到的數(shù)據(jù)塊寫入存儲單元的相應(yīng)位置。
      A3、在目標(biāo)嵌入式系統(tǒng)返回成功接收數(shù)據(jù)區(qū)數(shù)據(jù)的握手消息后,裝載成功。
      圖4為本發(fā)明的嵌入式系統(tǒng)的調(diào)試系統(tǒng)的結(jié)構(gòu)示意圖,如圖4所示,該調(diào)試系統(tǒng)包括能夠控制嵌入式系統(tǒng)的計(jì)算機(jī)系統(tǒng)和目標(biāo)嵌入式系統(tǒng),其中,
      能夠控制嵌入式系統(tǒng)的計(jì)算機(jī)系統(tǒng)包括編譯鏈接器401、裝載文件生成器402、引導(dǎo)裝載器部件一403。目標(biāo)嵌入式系統(tǒng)包括引導(dǎo)裝載器部件二404、存儲單元405。這里,所述的能夠控制嵌入式系統(tǒng)的計(jì)算機(jī)系統(tǒng)可以是桌面計(jì)算機(jī)、筆記本電腦等具有控制嵌入式系統(tǒng)的功能的計(jì)算機(jī)系統(tǒng)。
      引導(dǎo)裝載器部件一403與引導(dǎo)裝載器部件二404相連,二者可以通過通訊端口相連,進(jìn)行信息交互。這里,所述的通訊端口可以是串行接口、并行接口或USB通用串行接口。
      編譯鏈接器401,用于將嵌入式系統(tǒng)的軟件源代碼編譯生成目標(biāo)文件后,根據(jù)用戶編輯的執(zhí)行地址映射描述文件鏈接目標(biāo)文件生成包含不需要修改源代碼的可執(zhí)行代碼段和數(shù)據(jù)段的可執(zhí)行映像文件一和包含需要修改的調(diào)試源代碼的可執(zhí)行代碼段和數(shù)據(jù)段的可執(zhí)行映像文件二。
      裝載文件生成器402,用于根據(jù)用戶指令,將編譯鏈接器401生成的可執(zhí)行映像文件一和二的中修改的部分轉(zhuǎn)換為可裝載文件,并將生成的可裝載文件發(fā)送給引導(dǎo)裝載器部件一403。
      引導(dǎo)裝載器部件一403與引導(dǎo)裝載器部件二404通過信息交互,將可裝載文件下載到引導(dǎo)裝載器部件二404。
      引導(dǎo)裝載器部件二404將接收到的可裝載文件存儲到存儲單元405的相應(yīng)位置。
      這里,引導(dǎo)裝載器部件二404根據(jù)可裝載文件攜帶的數(shù)據(jù)塊在存儲空間的存儲位置信息,將可裝載文件中的數(shù)據(jù)塊下載到存儲空間405的相應(yīng)位置。
      引導(dǎo)裝載器部件一403與引導(dǎo)裝載器部件二404通過信息交互,將可裝載文件下載到引導(dǎo)裝載器部件二404,包括a、引導(dǎo)裝載器部件一403根據(jù)引導(dǎo)裝載器部件二404發(fā)送的等待下載的提示,向引導(dǎo)裝載器部件二404發(fā)送可裝載文件的文件頭數(shù)據(jù);b、引導(dǎo)裝載器部件一403接收到引導(dǎo)裝載器部件二404返回的成功接收文件頭數(shù)據(jù)的握手消息后,向引導(dǎo)裝載器部件二404發(fā)送可裝載文件的數(shù)據(jù)區(qū)數(shù)據(jù);c、引導(dǎo)裝載器部件一403接收到引導(dǎo)裝載器部件二404返回的成功接收數(shù)據(jù)區(qū)數(shù)據(jù)的握手消息后,向能夠控制嵌入式系統(tǒng)的計(jì)算機(jī)系統(tǒng)的控制臺提示裝載成功。
      引導(dǎo)裝載器部件二404還用于引導(dǎo)完整的嵌入式系統(tǒng)軟件運(yùn)行,進(jìn)行嵌入式軟件和系統(tǒng)調(diào)試。
      引導(dǎo)裝載器部件二404通過與引導(dǎo)裝載器部件一403之間的通訊端口向能夠控制嵌入式系統(tǒng)的計(jì)算機(jī)系統(tǒng)控制臺發(fā)送嵌入式系統(tǒng)調(diào)試結(jié)果的打印信息。
      本發(fā)明所述的引導(dǎo)裝載器部件二404可以直接引導(dǎo)存儲單元405中的嵌入式系統(tǒng)軟件運(yùn)行,所述的嵌入式系統(tǒng)軟件即下載到存儲單元中的所有可裝載文件;也可以先將存儲單元405中的嵌入式系統(tǒng)軟件拷貝到嵌入式系統(tǒng)的其它存儲單元中后,再引導(dǎo)嵌入式系統(tǒng)軟件運(yùn)行,進(jìn)行調(diào)試。
      由以上實(shí)施例可見,本發(fā)明的嵌入式軟件裝載調(diào)試方法及其系統(tǒng),通過分離不需要修改和需要修改的源代碼的可執(zhí)行映像文件,調(diào)試中只需要將源代碼修改部分的可執(zhí)行映像文件裝載到目標(biāo)嵌入式系統(tǒng),實(shí)現(xiàn)了在低成本的基礎(chǔ)上提高嵌入式軟件裝載調(diào)試效率的目的。
      權(quán)利要求
      1.一種嵌入式軟件裝載調(diào)試方法,編譯嵌入式系統(tǒng)軟件源代碼生成目標(biāo)文件,其特征在于,該方法還包括以下步驟A、確定需要修改和不需要修改的源代碼,編輯地址映射描述文件,將目標(biāo)嵌入式系統(tǒng)的存儲空間劃分為兩個(gè)部分;B、根據(jù)步驟A的地址映射描述文件鏈接目標(biāo)文件,生成分別包含不需要修改和需要修改的源代碼的兩個(gè)可執(zhí)行映像文件;C、根據(jù)用戶指令將步驟B生成的兩個(gè)可執(zhí)行映像文件中修改的部分轉(zhuǎn)換為可裝載文件,并將轉(zhuǎn)換的可裝載文件下載到目標(biāo)嵌入式系統(tǒng),存儲到存儲空間的相應(yīng)位置,引導(dǎo)嵌入式系統(tǒng)軟件運(yùn)行進(jìn)行調(diào)試。
      2.如權(quán)利要求1所述的方法,其特征在于,所述生成目標(biāo)文件時(shí),進(jìn)一步包括記錄每一段源代碼對應(yīng)的代碼段和數(shù)據(jù)段的大?。徊襟EA所述確定需要修改和不需要修改的源代碼后,進(jìn)一步包括根據(jù)記錄的每一段源代碼對應(yīng)的代碼段和數(shù)據(jù)段的大小,分別計(jì)算需要修改和不需要修改的源代碼對應(yīng)的代碼段和數(shù)據(jù)段的大??;步驟A所述將存儲空間分為兩個(gè)部分為根據(jù)嵌入式系統(tǒng)的硬件存儲器配置以及需要修改的源代碼和不需要修改的源代碼對應(yīng)的代碼段和數(shù)據(jù)段的大小將存儲空間分為兩個(gè)部分。
      3.如權(quán)利要求1或2所述的方法,其特征在于,步驟C所述根據(jù)用戶指令將步驟B生成的可執(zhí)行映像文件中修改的部分轉(zhuǎn)換為可裝載文件為根據(jù)用戶指令將兩個(gè)可執(zhí)行映像文件全部轉(zhuǎn)換為可裝載文件;或根據(jù)用戶指令提取可執(zhí)行映像文件一中由于重新編譯鏈接導(dǎo)致的部分指令修改的代碼,并將可執(zhí)行映像文件一中修改的代碼與可執(zhí)行映像文件二合并后轉(zhuǎn)換為可裝載文件;或根據(jù)用戶指令將可執(zhí)行映像文件二轉(zhuǎn)換為可裝載文件;步驟C所述的將可裝載文件存儲到存儲空間的相應(yīng)位置為根據(jù)可裝載文件中攜帶的數(shù)據(jù)塊在存儲空間的存儲位置信息,將可裝載文件中的數(shù)據(jù)塊存儲到存儲空間的相應(yīng)位置。
      4.如權(quán)利要求3所述的方法,其特征在于,所述可裝載文件攜帶的數(shù)據(jù)塊在存儲空間的存儲位置信息為可裝載文件中每一個(gè)數(shù)據(jù)塊的偏移量信息。
      5.如權(quán)利要求1或2所述的方法,其特征在于,步驟A所述需要修改的源代碼包括嵌入式系統(tǒng)中的未經(jīng)調(diào)試的應(yīng)用軟件代碼、嵌入式系統(tǒng)外設(shè)的驅(qū)動代碼、嵌入式系統(tǒng)外設(shè)的功能代碼;所述不需要修改的源代碼包括已經(jīng)過調(diào)試的穩(wěn)定的嵌入式系統(tǒng)代碼。
      6.一種嵌入式軟件裝載調(diào)試系統(tǒng),該系統(tǒng)包括能夠控制嵌入式系統(tǒng)的計(jì)算機(jī)系統(tǒng)和目標(biāo)嵌入式系統(tǒng),其特征在于,能夠控制嵌入式系統(tǒng)的計(jì)算機(jī)系統(tǒng)包括編譯鏈接器、裝載文件生成器以及引導(dǎo)裝載器部件一;目標(biāo)嵌入式系統(tǒng)包括引導(dǎo)裝載器部件二和存儲單元,引導(dǎo)裝載器部件一與引導(dǎo)裝載器部件二相連進(jìn)行信息交互,編譯鏈接器,用于將嵌入式系統(tǒng)的軟件源代碼編譯生成目標(biāo)文件后,根據(jù)用戶編輯的執(zhí)行地址映射描述文件鏈接目標(biāo)文件,生成分別包含不需要修改的源代碼和需要修改的源代碼的兩個(gè)可執(zhí)行映像文件;裝載文件生成器,用于根據(jù)用戶指令,將編譯鏈接器生成的兩個(gè)可執(zhí)行映像文件中修改的部分轉(zhuǎn)換為可裝載文件,并將轉(zhuǎn)換的可裝載文件發(fā)送給引導(dǎo)裝載器部件一;引導(dǎo)裝載器部件一與引導(dǎo)裝載器部件二通過信息交互,將可裝載文件下載到引導(dǎo)裝載器部件二;引導(dǎo)裝載器部件二將可裝載文件存儲到存儲單元的相應(yīng)位置,并引導(dǎo)嵌入式系統(tǒng)軟件運(yùn)行進(jìn)行調(diào)試。
      7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述引導(dǎo)裝載器部件二包括數(shù)據(jù)塊存儲模塊,用于根據(jù)可裝載文件攜帶的數(shù)據(jù)塊在存儲單元的存儲位置信息,將可裝載文件中的數(shù)據(jù)塊存儲到存儲單元的相應(yīng)位置。
      8.如權(quán)利要求6或7所述的系統(tǒng),其特征在于,所述目標(biāo)嵌入式系統(tǒng)進(jìn)一步包括存儲單元二,用于存儲目標(biāo)嵌入式系統(tǒng)從所述存儲單元拷貝的嵌入式系統(tǒng)軟件;所述引導(dǎo)裝載器部件二進(jìn)一步用于引導(dǎo)存儲單元二中的嵌入式系統(tǒng)軟件運(yùn)行。
      9.如權(quán)利要求6或7所述的系統(tǒng),其特征在于,所述引導(dǎo)裝載器部件一與引導(dǎo)裝載器部件二通過通訊端口相連;所述的通訊端口為串行接口、并行接口或USB通用串行接口。
      10.如權(quán)利要求6或7所述的系統(tǒng),其特征在于,所述能夠控制嵌入式系統(tǒng)的計(jì)算機(jī)系統(tǒng)為桌面計(jì)算機(jī)、或筆記本電腦。
      全文摘要
      本發(fā)明公開了一種嵌入式軟件裝載調(diào)試方法,其包括編譯嵌入式系統(tǒng)軟件源代碼生成目標(biāo)文件;確定需要修改和不需要修改的源代碼,編輯地址映射描述文件,將存儲空間分為兩個(gè)部分;根據(jù)地址映射描述文件鏈接目標(biāo)文件,生成兩個(gè)分別包含不需要修改和需要修改的源代碼的可執(zhí)行映像文件;根據(jù)用戶指令將生成的可執(zhí)行映像文件中修改的部分轉(zhuǎn)換為可裝載文件,將其下載到目標(biāo)嵌入式系統(tǒng),并存儲到存儲空間的相應(yīng)位置,引導(dǎo)嵌入式系統(tǒng)軟件運(yùn)行進(jìn)行調(diào)試。本發(fā)明同時(shí)還公開了一種嵌入式軟件裝載調(diào)試系統(tǒng),該系統(tǒng)的能夠控制嵌入式系統(tǒng)的計(jì)算機(jī)系統(tǒng)包括編譯鏈接器、裝載文件生成器以及引導(dǎo)裝載器部件;目標(biāo)嵌入式系統(tǒng)包括引導(dǎo)裝載器部件和存儲單元。
      文檔編號G06F9/45GK1904853SQ20061011128
      公開日2007年1月31日 申請日期2006年8月21日 優(yōu)先權(quán)日2006年8月21日
      發(fā)明者高占東, 邊恩超 申請人:北京中星微電子有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1