版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第6章 嵌入式軟件開發(fā)基礎(chǔ) 第6章 嵌入式軟件開發(fā)基礎(chǔ) l6.1 嵌入式軟件開發(fā)語言l6.2 嵌入式軟件開發(fā)流程l6.3 調(diào)試工具和方法l6.4 C語言程序的結(jié)構(gòu)l6.3 仿真環(huán)境6.1 嵌入式軟件開發(fā)語言p匯編(與體系結(jié)構(gòu)相關(guān))pC語言(最常用語言)語言(最常用語言)pC+語言(面向?qū)ο?,C語言的擴(kuò)展)pJAVA(面向?qū)ο?,可移植性?qiáng))p腳本語言(不需要編譯)6.2 嵌入式軟件開發(fā)流程p嵌入式應(yīng)用的生成特點(diǎn)p編譯p匯編p鏈接p加載程序嵌入式應(yīng)用的生成特點(diǎn) C語言程序的生成分成編譯、匯編、編譯、匯編、鏈接鏈接等幾個(gè)步驟。最終的目標(biāo)文件的主要部分是處理器可執(zhí)行的機(jī)器代碼組合。 根據(jù)系統(tǒng)的不同,目
2、標(biāo)文件除了可執(zhí)行的二進(jìn)制代碼部分外,可能還包括一定的頭。嵌入式應(yīng)用的生成特點(diǎn)集成開發(fā)環(huán)境:ADS(Arm Developer Suite),主要需要使用以下工具:l編譯器:armcc.exe(編譯成ARM指令匯編)和tcc.exe(編譯成Thumb指令匯編)l匯編器:armasm.exel鏈接器:armlink.exeARM-Linux GCC交叉編譯系統(tǒng),則主要使用以下工具:l編譯器:arm-lixux-gcc(可以統(tǒng)一編譯-匯編過程)l匯編器:arm-linux-asl鏈接器:arm-linux-ld嵌入式應(yīng)用的生成特點(diǎn)編譯(Compile) 編譯(Compile)是指從高級(jí)語言轉(zhuǎn)換成匯編
3、語言的過程。從本質(zhì)上編譯是一個(gè)文本轉(zhuǎn)換的過程(從文本文件到文本文件)。編譯包含了C語言的語法解析和生成匯編語言兩個(gè)步驟。匯編 (Assemble) 匯編(Assemble)是指從匯編語言程序生成目標(biāo)系統(tǒng)的二進(jìn)制代碼(機(jī)器代碼)的過程。相對(duì)于編譯過程的語法解析,匯編的過程相對(duì)簡單。這是因?yàn)閷?duì)于一款特定的處理器,其匯編語言和二進(jìn)制的機(jī)器代碼是一一對(duì)應(yīng)的。鏈接(Link) 鏈接(Link)過程將匯編成的多個(gè)機(jī)器代碼組合成一個(gè)可執(zhí)行程序。一般來說,通過編譯和匯編過程,每一個(gè)源文件將生成一個(gè)目標(biāo)文件。鏈接器的作用就是將這些目標(biāo)文件組合,組合的過程包括了代碼段、數(shù)據(jù)段等部分的合并,以及添加相應(yīng)的文件頭。6
4、.3 調(diào)試工具和方法p嵌入式調(diào)試的特點(diǎn)p打印調(diào)試信息pJTAG調(diào)試p遠(yuǎn)程gdb調(diào)試嵌入式調(diào)試的特點(diǎn) 在嵌入式系統(tǒng)中,調(diào)試的概念相對(duì)復(fù)雜。對(duì)于其調(diào)試過程,程序主體運(yùn)行在目標(biāo)機(jī)上,主機(jī)所起的作用是獲得程序運(yùn)行中的信息,并通過人工或者程序的方式分析這些信息。因此嵌入式調(diào)試的基礎(chǔ)是需要一條從主機(jī)到目標(biāo)機(jī)的通訊通道。打印調(diào)試信息 打印調(diào)試信息是基本的調(diào)試方式, printf()標(biāo)準(zhǔn)輸出,在嵌入式系統(tǒng)中,這種輸出的通訊通道可能是串口或者網(wǎng)絡(luò)協(xié)議。在某些系統(tǒng)中,沒有實(shí)現(xiàn)標(biāo)準(zhǔn)輸出,這就需要開發(fā)者自己開發(fā)調(diào)試手段。JTAG調(diào)試 JTAG是Joint Test Action Group的簡稱。JTAG使用邊界掃描
5、(Boundary-Scan)的方式調(diào)試:在正常的運(yùn)行狀態(tài)下,這些邊界掃描寄存器對(duì)于芯片是透明的;在調(diào)試的運(yùn)行狀態(tài)下,通過這些邊界掃描寄存器單元,可以實(shí)現(xiàn)對(duì)芯片輸入輸出信號(hào)的觀察和控制。遠(yuǎn)程GDB調(diào)試 在遠(yuǎn)程GDB調(diào)試中,調(diào)試器是運(yùn)行在主機(jī)(host,桌面電腦)的應(yīng)用程序, 被調(diào)試的程序是運(yùn)行在目標(biāo)(target)上。它通過插樁(stub)的方式實(shí)現(xiàn),即在目標(biāo)操作系統(tǒng)和調(diào)試器內(nèi)分別加入某些功能模塊,二者互通信息來進(jìn)行調(diào)試。調(diào)試器與被調(diào)程序的通信: Gdb和調(diào)試stub通過GDB串行協(xié)議進(jìn)行通信。6.4 C語言程序的結(jié)構(gòu)pC語言目標(biāo)文件中的段p執(zhí)行程序內(nèi)部細(xì)節(jié)p目標(biāo)文件各段的鏈接pC語言程序的執(zhí)
6、行C語言目標(biāo)文件中的段 C語言的目標(biāo)文件一般包含三個(gè)主體段:l代碼段(Code,又稱Text)l只讀數(shù)據(jù)段(RO Data)l讀寫數(shù)據(jù)段(RW Data)執(zhí)行程序內(nèi)部細(xì)節(jié)1#include 2#include 34const char ro_data1024=This is readonly data;5char rw_data_11024=This is global readwrite data;6static char rw_data_21024=This is internal readwrite data;7static char zero_data_11024;8執(zhí)行程序內(nèi)部細(xì)節(jié)9
7、int main(int argc, char *argv)10 11 static char zero_data_2 1024; 12 int i;13 char stack_data_1100;14 char stack_data_2 = Init stack Data;15 char* memptr;16 memptr = (char *)malloc(1024);17 if(NULL = memptr)18 19 printf(malloc errorn); 20 return -1;21 22 else23 24 printf(malloc successfullyn); 25 26
8、 for(i=0;i1024;i+)27 28 zero_data_1i = a; 29 執(zhí)行程序內(nèi)部細(xì)節(jié)30 strcpy(stack_data_1,stack data 1);31 strcpy(memptr,data in heap);32 33 printf(ro_data:%sn,ro_data);34 printf(rw_data_1:%sn,rw_data_1); 35 printf(rw_data_2:%sn,rw_data_2);36 printf(stack_data_1:%sn,stack_data_1);37 printf(stack_data_2:%sn,stack_data_2); 38 printf(memptr:%sn,memptr); 39 40 free(memptr);41 return 0;42 目標(biāo)文件各段的鏈接 可執(zhí)行文件其主體部分依然是代碼段(Co
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年國際文化旅游項(xiàng)目投資合作協(xié)議
- 融媒體中心實(shí)訓(xùn)室建設(shè)方案
- 高三英語上學(xué)期期末考試試題
- 2024年國際工程承包合同文本
- 大型活動(dòng)場館防排煙施工方案
- 農(nóng)產(chǎn)品加工崗位定級(jí)管理方案
- 2024年地球衛(wèi)星觀測數(shù)據(jù)共享與合作協(xié)議
- 家電行業(yè)焊接工藝改進(jìn)方案
- 風(fēng)電場動(dòng)火作業(yè)安全規(guī)程方案
- 2(2024版)深海資源勘探與開發(fā)合作合同
- 房地產(chǎn)經(jīng)營與管理-形考作業(yè)三-國開(HB)-參考資料
- 普法學(xué)法知識(shí)競賽題庫(完整版)
- 2024-2029年中國化妝品噴霧行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報(bào)告
- 醫(yī)德醫(yī)風(fēng)培訓(xùn)課件圖文
- ISO28000:2022供應(yīng)鏈安全管理體系
- 家校攜手 同心共育 四年期中考試家長會(huì) 課件
- 三位數(shù)乘以三位數(shù)-計(jì)算題-豎式-50題-
- 保密宣傳月新形勢下的行政機(jī)關(guān)保密工作培訓(xùn)課件
- 剪映課件pptx-2024鮮版
- 農(nóng)村自建房家裝合同
- 戰(zhàn)勝挫折主題班會(huì)教案
評(píng)論
0/150
提交評(píng)論