ARM系統(tǒng)原理ppt課件-第6章-嵌入式軟件開發(fā)基礎(chǔ)_第1頁
ARM系統(tǒng)原理ppt課件-第6章-嵌入式軟件開發(fā)基礎(chǔ)_第2頁
ARM系統(tǒng)原理ppt課件-第6章-嵌入式軟件開發(fā)基礎(chǔ)_第3頁
ARM系統(tǒng)原理ppt課件-第6章-嵌入式軟件開發(fā)基礎(chǔ)_第4頁
ARM系統(tǒng)原理ppt課件-第6章-嵌入式軟件開發(fā)基礎(chǔ)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

第6章嵌入式軟件開發(fā)基礎(chǔ)1第6章嵌入式軟件開發(fā)基礎(chǔ)1第6章嵌入式軟件開發(fā)基礎(chǔ)6.1嵌入式軟件開發(fā)語言6.2嵌入式軟件開發(fā)流程6.3調(diào)試工具和方法6.4C語言程序的結(jié)構(gòu)6.3仿真環(huán)境2第6章嵌入式軟件開發(fā)基礎(chǔ)26.1嵌入式軟件開發(fā)語言匯編(與體系結(jié)構(gòu)相關(guān))C語言(最常用語言)C++語言(面向?qū)ο?,C語言的擴展)JAVA(面向?qū)ο?,可移植性強)腳本語言(不需要編譯)36.1嵌入式軟件開發(fā)語言36.2嵌入式軟件開發(fā)流程嵌入式應(yīng)用的生成特點編譯匯編鏈接加載程序46.2嵌入式軟件開發(fā)流程4嵌入式應(yīng)用的生成特點C語言程序的生成分成編譯、匯編、鏈接等幾個步驟。最終的目標(biāo)的文件的主要部分是處理器可執(zhí)行的機器代碼組合。根據(jù)系統(tǒng)的不同,目標(biāo)文件可能除了可執(zhí)行的二進制代碼部分外,還包括一定的頭。5嵌入式應(yīng)用的生成特點C語言程序的生成嵌入式應(yīng)用的生成特點ADS(ArmDeveloperSuite),主要需要使用以下工具:編譯器:armcc.exe(編譯成ARM指令匯編)和tcc.exe(編譯成Thumb指令匯編)匯編器:armasm.exe鏈接器:armlink.exeARM-LinuxGCC交叉編譯系統(tǒng),則主要使用以下工具:編譯器:arm-lixux-gcc(可以統(tǒng)一編譯-匯編過程)匯編器:arm-linux-as鏈接器:arm-linux-ld6嵌入式應(yīng)用的生成特點ADS(ArmDeveloperSu嵌入式應(yīng)用的生成特點7嵌入式應(yīng)用的生成特點7編譯(Compile)編譯(Compile)是指從高級語言轉(zhuǎn)換成匯編語言的過程。從本質(zhì)上編譯是一個文本轉(zhuǎn)換的過程(從文本文件到文本文件)。編譯包含了C語言的語法解析和生成匯編語言兩個步驟。。8編譯(Compile)8匯編(Assemble)匯編(Assemble)是指從匯編語言程序生成目標(biāo)系統(tǒng)的二進制代碼(機器代碼)的過程。相對于編譯過程的語法解析,匯編的過程相對簡單。這是因為對于一款特定的處理器,其匯編語言和二進制的機器代碼是一一對應(yīng)的。9匯編(Assemble)匯編鏈接(Link)鏈接(Link)過程將匯編成的多個機器代碼組合成一個可執(zhí)行程序。一般來說,通過編譯和匯編過程,每一個源文件將生成一個目標(biāo)文件。鏈接器的作用就是將這些目標(biāo)文件組合,組合的過程包括了代碼段、數(shù)據(jù)段等部分的合并,以及添加相應(yīng)的文件頭。10鏈接(Link)鏈接(Link)6.3調(diào)試工具和方法嵌入式調(diào)試的特點打印調(diào)試信息JTAG調(diào)試遠程gdb調(diào)試116.3調(diào)試工具和方法11嵌入式調(diào)試的特點在嵌入式系統(tǒng)中,調(diào)試的概念相對復(fù)雜。對于其調(diào)試過程,程序主體運行在目標(biāo)機上,主機所起的作用是獲得程序運行中的信息,并通過人工或者程序的方式分析這些信息。因此嵌入式調(diào)試的基礎(chǔ)是需要一條從主機到目標(biāo)機的通訊通道。12嵌入式調(diào)試的特點在嵌入式系統(tǒng)中,調(diào)試的打印調(diào)試信息打印調(diào)試信息是基本的調(diào)試方式,printf()標(biāo)準(zhǔn)輸出,在嵌入式系統(tǒng)中,這種輸出的通訊通道可能是串口或者網(wǎng)絡(luò)協(xié)議。在某些系統(tǒng)中,沒有實現(xiàn)標(biāo)準(zhǔn)輸出,這就需要開發(fā)者自己開發(fā)調(diào)試手段。13打印調(diào)試信息打印調(diào)試信息是基本的調(diào)試方式JTAG調(diào)試

JTAG是JointTestActionGroup的簡稱。JTAG使用邊界掃描(Boundary-Scan)的方式調(diào)試:在正常的運行狀態(tài)下,這些邊界掃描寄存器對于芯片是透明的;在調(diào)試的運行狀態(tài)下,通過這些邊界掃描寄存器單元,可以實現(xiàn)對芯片輸入輸出信號的觀察和控制。14JTAG調(diào)試JTAG是JointTestA遠程GDB調(diào)試在遠程GDB調(diào)試中,調(diào)試器是運行在主機(host,桌面電腦)的應(yīng)用程序,被調(diào)試的程序是運行在目標(biāo)(target)上。它通過插樁(stub)的方式實現(xiàn),即在目標(biāo)操作系統(tǒng)和調(diào)試器內(nèi)分別加入某些功能模塊,二者互通信息來進行調(diào)試。調(diào)試器與被調(diào)程序的通信:Gdb和調(diào)試stub通過GDB串行協(xié)議進行通信。15遠程GDB調(diào)試在遠程GDB調(diào)試中,調(diào)試器是運行6.4C語言程序的結(jié)構(gòu)C語言目標(biāo)文件中的段執(zhí)行程序內(nèi)部細節(jié)目標(biāo)文件各段的鏈接C語言程序的執(zhí)行166.4C語言程序的結(jié)構(gòu)16C語言目標(biāo)文件中的段C語言的目標(biāo)文件一般包含三個主體段:代碼段(Code,又稱Text)只讀數(shù)據(jù)段(ROData)讀寫數(shù)據(jù)段(RWData)17C語言目標(biāo)文件中的段C語言的目標(biāo)文件一般包含三執(zhí)行程序內(nèi)部細節(jié)1 #include<stdio.h>2 #include<stdlib.h>3 4 constcharro_data[1024]={"Thisisreadonlydata"};5 charrw_data_1[1024]={"Thisisglobalreadwritedata"};6 staticcharrw_data_2[1024]={"Thisisinternalreadwritedata"};7 staticcharzero_data_1[1024];818執(zhí)行程序內(nèi)部細節(jié)1 #include<stdio.h>18執(zhí)行程序內(nèi)部細節(jié)9 intmain(intargc,char*argv[])10 {11 staticcharzero_data_2[1024];12 inti;13 charstack_data_1[100];14 charstack_data_2[]={"InitstackData"};15 char*memptr;16 memptr=(char*)malloc(1024);17 if(NULL==memptr)18 {19 printf("mallocerror\n");20 return-1;21 }22 else23 {24 printf("mallocsuccessfully\n");25 }26 for(i=0;i<1024;i++)27 {28 zero_data_1[i]='a';29 }19執(zhí)行程序內(nèi)部細節(jié)9 intmain(intargc,c執(zhí)行程序內(nèi)部細節(jié)30 strcpy(stack_data_1,"stackdata1");31 strcpy(memptr,"datainheap");32 33 printf("ro_data:%s\n",ro_data);34 printf("rw_data_1:%s\n",rw_data_1);35 printf("rw_data_2:%s\n",rw_data_2);36 printf("stack_data_1:%s\n",stack_data_1);37 printf("stack_data_2:%s\n",stack_data_2);38 printf("memptr:%s\n",memptr);39 40 free(memptr);41 return0;42 }20執(zhí)行程序內(nèi)部細節(jié)30 strcpy(stack_da目標(biāo)文件各段的鏈接可執(zhí)行文件其主體部分依然是代碼段(Code)、只讀數(shù)據(jù)段(ROData)、讀寫數(shù)據(jù)段(RWData)三個段,這三個段由各個目標(biāo)文件(.o)經(jīng)過“組合”而成。21目標(biāo)文件各段的鏈接

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論