ADS12開發(fā)環(huán)境配置_第1頁
ADS12開發(fā)環(huán)境配置_第2頁
ADS12開發(fā)環(huán)境配置_第3頁
ADS12開發(fā)環(huán)境配置_第4頁
ADS12開發(fā)環(huán)境配置_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

實(shí)驗(yàn)一ADS1?2開發(fā)環(huán)境創(chuàng)建(2個學(xué)時)一、 實(shí)驗(yàn)?zāi)康氖煜DS1.2開發(fā)環(huán)境,學(xué)會ARM仿真器的使用。使用ADS編譯、下載、調(diào)試并跟蹤一段已有的程序,了解嵌入式開發(fā)的基本思想和過程。超級終端設(shè)置及BIOS功能使用。二、 實(shí)驗(yàn)內(nèi)容本次實(shí)驗(yàn)配置ADS集成開發(fā)環(huán)境,新建一個簡單的工程文件,并編譯這個工程文件。學(xué)習(xí)ARM仿真器的使用和開發(fā)環(huán)境的設(shè)置。下載已經(jīng)編譯好的文件到嵌入式控制器中運(yùn)行。學(xué)會在程序中設(shè)置斷點(diǎn),觀察系統(tǒng)內(nèi)存和變量,為調(diào)試應(yīng)用程序打下基礎(chǔ)。運(yùn)行Windows系統(tǒng)下的超級終端,通過超級終端查看BIOS啟動情況。三、 預(yù)備知識C語言的基礎(chǔ)知識、程序調(diào)試的基礎(chǔ)知識和方法。四、 實(shí)驗(yàn)設(shè)備及工具(包括軟件調(diào)試工具)硬件:ARM嵌入式開發(fā)平臺、用于ARM7TDMI的JTAG仿真器、PC機(jī)PentiumlOO以上、串口線。軟件:PC機(jī)操作系統(tǒng)win98、Win2000或WinXP、ARMSDT2.51或ADS1.2集成開發(fā)環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序。五、 實(shí)驗(yàn)步驟1配置ADS集成開發(fā)環(huán)境運(yùn)行ADS1.2集成開發(fā)環(huán)境(CodeWarriorforARMDeveloperSuite)。選擇FileINew…菜單,在對話框中選擇Project,如圖1T7所示,新建一個工程文件。圖中示例的工程名為Exp6.mcp。點(diǎn)set…按鈕可為該工程選擇路徑如圖1T8所示,選中CreatFolder選項(xiàng)后將以圖1T7中的ProjectName或圖1T8中的文件名為名創(chuàng)建目錄,這樣可以將所有與該工程相關(guān)的文件放到該工程目錄下,便于管理工程。在圖1-17中工程模板列表中我們選擇ARMExecutableImage通用模板。我們隨后將一步一步的把它配置成針對我們ARM3000開發(fā)板的模板44B0ARMExecutableImaage,并把它拷貝到ADS1.2安裝目錄下的Stationery目錄中(所有的工程模板都在此目錄下)。以后我們新建工程時,在工程模板列表中直接選中44B0ARMExecutableImaage模板選項(xiàng),就不必每次重新配置模板了。

圖1-17新建工程圖1-18保存工程(2)在新建的工程中,如圖1T9所示,選擇Debug版本,使用Edit|DebugSettings菜單對Debug版本進(jìn)行參數(shù)設(shè)置。圖1-19選擇版本在DebugSettings對話框中選擇TargetSettings項(xiàng),如圖1-20所示。在Post-linker一欄中選擇ARMfromELF,點(diǎn)擊右下角的Apply使其有效。

圖1-20TargetSettings(4)在DebugSettings對話框中選擇ARMLinker項(xiàng),如圖1-21。在Output下的Linktype中有三種類型的連接方式,我們常用的是Simple和Scattered兩種。Simple是一種簡單設(shè)置,如果程序需要用到標(biāo)準(zhǔn)C庫函數(shù)的話需要按Scattered進(jìn)行連接地址的設(shè)置。若你用不到標(biāo)準(zhǔn)C庫函數(shù)的話,請選擇Simple選項(xiàng),并按照下邊的第(5)、(8)、(9)進(jìn)行設(shè)置。若你用到標(biāo)準(zhǔn)C庫函數(shù)的話,請選擇Scattered選項(xiàng),并按照下邊的第(6)、(7)、(9)進(jìn)行設(shè)置。(5)在ARMLinker項(xiàng)的Output選項(xiàng)卡中,我們選擇Simple選項(xiàng),如圖1-21所示。在Simpleimage框中設(shè)置連接的Read-Only(只讀)和Read-Write(讀寫)地址。地址0x0c080000是開發(fā)板上SDRAM的真實(shí)地址,是由系統(tǒng)的硬件決定的;0x0c200000指的是系統(tǒng)可讀寫的內(nèi)存地址。也就是說0x0c080000OxC1fffff之間是只讀區(qū)域,存放程序的代碼段,在0xC200000開始是程序的數(shù)據(jù)段。圖1-21設(shè)置連接地址范圍在ARMLinker項(xiàng)的Output選項(xiàng)卡中,我們選擇Seattered選項(xiàng),如圖1-22所示.標(biāo)準(zhǔn)C中如果使用malloc及其相關(guān)的函數(shù),需要使用系統(tǒng)的堆(Heap)空間,可以通過seatter文件來描述系統(tǒng)HEAP段的位置。針對44B0開發(fā)板,把程序的入口定位在0xc080000,并定義seatter文件為seat_ram.scf。在圖1-22中選擇LinkType為Seattered,輸入seatter文件名seat_ram.scf;然后切換到Options選項(xiàng)卡在ImageEntryPoint框中輸入0xc080000。也可以在圖1-22的CommandLine框中直接輸入-entry0xc080000-seatterseat_ram.scf進(jìn)行上述設(shè)置。圖1-22通過seatter文件設(shè)置連接地址提示:程序移植到ADS后,程序最開始首先執(zhí)行用匯編寫的初始化代碼一一包括中斷向量和內(nèi)存空間的初始化。在該段代碼中使用IMPORT__main;(注意main前面是兩個下劃線)B__main進(jìn)行系統(tǒng)內(nèi)部的標(biāo)準(zhǔn)C函數(shù)初始化,然后調(diào)用用戶在C中定義的main()函數(shù)(注意:兩個main都是小寫),并且在嵌入式應(yīng)用中用戶C的main函數(shù)中不能有參數(shù)(intmain(void))。不能有系統(tǒng)定義的軟中斷,在匯編中可以使用IMPORT__use_no_semihosting_swi來檢測,在C中使用#pragmaimport(__use_no_semihosting_swi)//ensurenofunetionsthatusesemihostingseatter文件內(nèi)容如下,創(chuàng)建了一個RAM_LOAD的程序和數(shù)據(jù)的裝載區(qū)域,起始地址0xe080000。RAM_LOAD0xe080000{RAM_EXEC0xe080000{44binit.o(init,+First)

*(+RO)}RAM0x0c200000{*(+RW,+ZI)}HEAP+0UNINIT{heap.o(+ZI)}STACKS0xc7ff000UNINIT{stack.o(+ZI)}ISR_STARTADDRESS0xc7fff00;SDRAMbottom{isr_address.o(+ZI)}}DKcTfffCii)ISRSTAST/jjUKESSOKcTffOOO■■ilwJhi}EffRAMOm^200000RAM_EIEC01C030030在圖1-23中說明了這個裝載區(qū)域的劃分。?1心.味孑子IINiP■星:懈忙'夕縣L汙亠"一—口―.?;件系統(tǒng)的堆空問放在HE礙弁,賞毎湘菽。使Cir*)Pt::”上亍::定二匕/=■■丄系統(tǒng)的堆空問放在HE礙弁,賞毎湘菽。使F訓(xùn)帑令.」(hC2DCi(J加地址幵蠟.放冃標(biāo)文件的湊寫3部分和EI鄒九的起畑生眄莎嘰Ulffl-Hirst,°「段豁刖卑詁心小蕪I/JLE:<KJAOxl-OJM0。迪幵?t,冋后了護(hù)有閭目標(biāo)應(yīng)件關(guān).只鈕令“串淒^^binit.o申罡:丈了rit'時乙怖r 的起畑生眄莎嘰Ulffl-Hirst,°「段豁刖卑詁心小蕪-II注按斶時悵,把i用匕|-nrrr;丿.■、I''TTI'i圖1-23程序和數(shù)據(jù)裝載區(qū)域的劃分4)定義retarget.c函數(shù),重新定位標(biāo)準(zhǔn)C庫中stdio的一些相關(guān)函數(shù)。主要有:struct__FILE{inthandle;/*Addwhateveryouneedhere*/};FILE__stdout;//文件的定義intfputc(intch,FILE*f)//fputc函數(shù)intferror(FILE*f)//ferror函數(shù)void_sys_exit(intreturn_code)//系統(tǒng)退出函數(shù)void_ttywrch(intch)__value_in_regsstruct__initial_stackheap

__user_initial_stackheap(unsignedR0,unsignedSP,unsignedR2,unsignedSL)//用戶的堆空間和棧空間函數(shù)具體定義,可以參考init/retarget.c(7)接第(6)步,在第(4)步中如果不選擇簡單的連接地址設(shè)置,則需按圖1-24所示設(shè)置C編譯器。在DebugSettings對話框中選擇ARMCCompiler項(xiàng),在ATPCS選項(xiàng)卡中選擇ARM/Thumpinterwork,或者在命令行中添加-apes/interwork。圖2-24圖2-24設(shè)置ARMCCompiler(8)接第(5)步,若在第四步中如果選擇簡單的地址連接設(shè)置,在DebugSettings對話框中選擇ARMLinker項(xiàng),如圖1-25。點(diǎn)擊下邊的Factorysetting按鈕,出現(xiàn)Layout選項(xiàng)卡(在對release版本進(jìn)行設(shè)置時,不用點(diǎn)擊Factorysetting按鈕)。在Layout選項(xiàng)卡的Placeatbeginningofimage框中設(shè)置程序的入口模塊。指定在生成的代碼中,程序是從44binit.s開始運(yùn)行的。Objeet設(shè)為44binit.o,section設(shè)為init。圖1-25設(shè)置入口模塊(9)在DebugSettings對話框中選擇ARMfromELF項(xiàng),如圖1-26。在Outputfilename

框中設(shè)置輸出文件名為system.bin,這就是要下載到開發(fā)板的嵌入式應(yīng)用程序文件。圖1-26圖1-26設(shè)置輸出文件名(10) 回到如圖1T9所示的工程窗口中,選擇Release版本,使用Edit|ReleaseSettings菜單對Release版本進(jìn)行參數(shù)設(shè)置。(11)參照第(3)、(4)、(5)、(6)、(7)、(8)、(9)步在ReleaseSettings對話框中設(shè)置Release版本的Post-linker、連接地址范圍、入口模塊和輸出文件。(12) 回到如圖1-19所示的工程窗口中,選擇Targets選項(xiàng)卡,如圖1-27所示。選中DebugRel版本,按Del鍵將其刪除。圖1-27刪除DebugRel版本(13)設(shè)置完成后,可以將該新建的空工程文件作為模板保存以便以后使用。將工程文件名改為44B0ARMExecutable.mcp。然后在ADS1.2軟件安裝目錄下的Stationery目錄下新建名為44B0ARMExecutableImage的模板目錄,再將剛設(shè)置完的44B0ARMExecutable.mcp工程模板文件存放到該目錄下即可。這樣以后新建工程的時候如圖1-17所示就能看到以44B0ARMExecutableImage為名字的模板了。圖1-28顯示44B0ARM模板提示:1) 建議用戶直接將光盤ADS實(shí)驗(yàn)下的Template\ADS\Stationery目錄中的44B0ARMExecutableImage子目錄直接拷貝到ADS1.2安裝目錄下的Stationery目錄中,這樣也能在圖1-17所示的新建工程對話框中看到這個模板,其中有已經(jīng)設(shè)置好的針對本開發(fā)板的參數(shù)。這個模板設(shè)置為Scattered版本。2) 如果用戶原來已安裝了ARMSDT軟件的話,再安裝ADS1.2后可能導(dǎo)致ARMSDT不能正常使用,需要用戶更改系統(tǒng)環(huán)境變量:ARMINC設(shè)置為%ARMSDTPATH%\INCLUDE,ARMLIB設(shè)置為%ARMSDTPATH%\LIB,其中%ARMSDTPATH%指ARMSDT的安裝目錄。2.建立工程文件配置好ARMADS針對UP-ARM3000的開發(fā)環(huán)境后,可以執(zhí)行菜單Project|AddFiles把和工程相關(guān)的所有文件加入到工程中0ADS1.2不能自動按文件類別對這些文件進(jìn)行分類,需要的話用戶可以執(zhí)行菜單Project|CreateGroup創(chuàng)建文件組,然后分別將不同類的文件加入到不同的組,以方便管理。如圖1-29所示。更為簡單的辦法是,在新建工程時ADS創(chuàng)建了和工程同名的目錄,在該目錄下按類別創(chuàng)建子目錄并存放工程文件。選中所有目錄拖動到任務(wù)欄上的ADS任務(wù)條上,不要松開鼠標(biāo)當(dāng)ADS窗口恢復(fù)后再拖動到工程文件窗口,松開鼠標(biāo)。這樣ADS將以子目錄名建立同名文件組并以此對文件分類。這里我們把ADS版中開發(fā)環(huán)境實(shí)驗(yàn)中的init和STARTUP兩個目錄拷貝到新建的工程目錄下,然后選中這兩個目錄,拖動到任務(wù)欄上的ADS任務(wù)條上,不要松開鼠標(biāo)當(dāng)ADS窗口恢復(fù)后再拖動到工程文件窗口,松開鼠標(biāo)。這樣ADS將以init和STARTUP目錄名建立同名文件組并以此對文件分類。

FileSTAKTUP匚Data010窖田口hh44EEFileSTAKTUP匚Data010窖田口hh44EE町町肋町町町EE町町EE町町町EEinL4壯工肛T.SEITliPS.H振£.hEXIO.cEKIO.hI3FLgisr.hM^irk.chFTiHiTiCtg?5MyU:=c_t.cmyuirt..huptioil.huptiOIL.51.IHAL.cuhal.hDZD320.c1JZD320.h圖1-29加入工程文件雙擊圖1-29中的Main.c打開該文件,可以看到Main()函數(shù)的內(nèi)容:intmain(void){ARMTargetInit();//開發(fā)版初始化LCD_Init();LCD_ChangeMode(DspTxtMode);//轉(zhuǎn)換LCD顯示模式為文本顯示模式LCD_Cls();//文本模式下清屏命令LCD_printf("Helloworld!\n");//向液晶屏輸出Uart_Printf("\nHelloworld!\n");//向串口輸出while(1);}提示:讀者可以查看其他源文件的內(nèi)容以對系統(tǒng)運(yùn)行有所了解??梢园l(fā)現(xiàn)ADS的文本編輯器已經(jīng)有了很大的改善,文本按語法分顏色顯示,讀者可以根據(jù)喜好在idit菜單下的Preferences窗口中進(jìn)行設(shè)置。并可以很好的支持中文注釋。3進(jìn)行程序的在線仿真、調(diào)試回到圖1-29所示的工程窗口選中Debug版本,執(zhí)行菜單Project|Make對工程進(jìn)行編譯連接。在出現(xiàn)的錯誤/警告窗口中選擇某錯誤/警告信息,ADS會自動打開相應(yīng)源文件并用箭頭指向出錯的文本行。如果某個源文件被修改,重新編譯時ADS會自動同步各文件的日期信息。在ADS中執(zhí)行菜單Project|Debug啟動ADS1.2的調(diào)試工具AXD。在AXD中執(zhí)行菜單Options|ConfigureTarget對AXD進(jìn)行設(shè)置。如圖1-30所示。選擇ADP即遠(yuǎn)程調(diào)試,點(diǎn)Configure按鈕進(jìn)一步設(shè)置具體參數(shù),如圖1-31所示。

圖1-30設(shè)置AXD參數(shù)(4)在圖1-31中點(diǎn)Select按鈕選擇遠(yuǎn)程連接為ARMethernetdriver,點(diǎn)Configure按鈕輸入仿真器的IP地址。如果用戶使用的是并行口仿真器,請輸入127.0.0.1即可。圖1-31設(shè)置遠(yuǎn)程連接(5) 等待程序裝載完畢以后,通過Execute|Go菜單以及Execute|Stop(或者工具欄中的相應(yīng)按鈕)運(yùn)行或暫停程序。程序暫停后在窗口中將顯示出程序暫停的位置。(6) 通過Execute|Step菜單(或者工具欄中的相應(yīng)按鈕)可以單步運(yùn)行程序。也可以使用StepIn、StepOut菜單命令進(jìn)入或者跳出函數(shù)的調(diào)用。RunToCursor命令運(yùn)行到光標(biāo)位置。程序停止后可以通過ProcessorViews|Sources菜單查看源文件,并可在適當(dāng)位置按F9設(shè)置端點(diǎn)。使用在ProcessorView菜單下的Registers、Variables和Memory命令可以查看工作寄存器或者內(nèi)存變量。讀者可以逐一地嘗試,為以后調(diào)試程序打下基礎(chǔ)。提示:在進(jìn)行調(diào)試時在ADS中必須選擇當(dāng)前工程的Debug版本,如果選擇Release版本則無法正常調(diào)試程序。但在調(diào)試通過后就必須選擇Release版本進(jìn)行編譯連接并將產(chǎn)生的system.bin文件復(fù)制到開發(fā)板的Flash中。將開發(fā)板上的Flash激活作為U盤使用的操作將在下節(jié)中描述。4超級終端設(shè)置及BIOS功能使用1、運(yùn)行Windows系統(tǒng)下的超級終端(HyperTerminal)應(yīng)用程序,新建一個通信終端。如果要求輸入?yún)^(qū)號、電話號碼等信息請隨意輸入,出現(xiàn)如圖1-32所示對話框時,為所建超級終端取名為arm,可以為其選一個圖標(biāo)。單擊“確定”按鈕。圖1-32創(chuàng)建超級終端2、在接下來的對話框中選擇ARM開發(fā)平臺實(shí)際連接的PC機(jī)串口(如C0M1),按確定后出現(xiàn)如圖1-33所示的屬性對話框,設(shè)置通信的格式和協(xié)議。這里波特率為115200,數(shù)據(jù)位8,無奇偶校驗(yàn),停止位1,無數(shù)據(jù)流控制。按確定完成設(shè)置。

圖1-33圖1-33設(shè)置串行口3、完成新建超級終端的設(shè)置以后,可以選擇超級終端文件菜單中的保存,將當(dāng)前設(shè)置保存為一個特定超級終端到桌面上,以備后用。用串口線將PC機(jī)串口和平臺UARTO正確連接后,就可以在超級終端上看到程序輸出的信息了,比如本實(shí)驗(yàn)的“Helloworld!”。4、啟動開發(fā)板,按住開發(fā)板上鍵盤的任意按鍵,使開發(fā)板進(jìn)入BIOS設(shè)置狀態(tài)。如圖1-34所示。K9F2808Uisfound,KKM-^-KKX X MX XX KK KX KX KX M;X KX XXkUPNetARMJDOOBootloaderVer3.00COH:115.2kbps,SBit,NPnUfiRFBDuiIdTime;20甜-的15withADS1.2M-ShellMenu :f>>FlashRohToolsM;1>>1estLU!Ho"Forii日tHandFlashToFATM-Kn>>ShowandSetHetaddress!Hu>>EnterUSBDiskM-*('.>>1 IIf)iNk>>EnterlestKeyModes>>TestTouchpadM;h>>Set1ouchpadModea>>EnterTestADCModeM-*d>>EnterrestDflMode!Ht>>EnterRTCTestModeM-*i>>EnterAudioTesiModeiNn>>EnterMotorrestModec>>EnterCHNbusTestModeb defaults^isteM圖1-34系統(tǒng)的BIOS設(shè)置程序5、該畫面上提示了該BIOS的版本等信息。ShellMenu是平臺的檢測菜單,每個條目的最左邊字母是該功能的快捷鍵,按PC機(jī)鍵盤相應(yīng)鍵將執(zhí)行對應(yīng)功能。注意操作時保持超級終端處于激活狀態(tài),并且PC機(jī)鍵盤必須為小寫。6、 用戶可以按超級終端的提示嘗試部分測試功能,其中:1:測試LCD的文本和圖形顯示。執(zhí)行該命令后LCD上會打出文本提示,然后進(jìn)入圖形模式并顯示一幅彩色條形圖案,然后在超級終端上看提示按任意鍵返回文本模式,并退出LCD測試返回測試菜單。o:格式化開發(fā)平臺的16MFLASH,其中的文件將丟失,需要重新拷貝。執(zhí)行該命令后超級終端上會出現(xiàn)確認(rèn)提示,如果按“y”鍵則會格式化Flash,之后返回菜單。n:設(shè)置開發(fā)平臺網(wǎng)卡的IP地址,子網(wǎng)掩碼等,下有子菜單。執(zhí)行該命令后出現(xiàn)子菜單:P:設(shè)置MAC地址,執(zhí)行該命令后按提示操作i:設(shè)置IP地址,執(zhí)行該命令后按提示操作,請與所在局域網(wǎng)在同一網(wǎng)段m:設(shè)置子網(wǎng)掩碼,執(zhí)行該命令后按提示操作g:設(shè)置網(wǎng)關(guān)的IP地址,執(zhí)行該命令后按提示操作s:保存所設(shè)地址,設(shè)置完IP地址等后必須執(zhí)行該命令保存設(shè)置,否則設(shè)置無效d:設(shè)置默認(rèn)地址q:退出子菜單,返回到主菜單。u:激活開發(fā)平臺的USB連接,開發(fā)平臺的Flash可以作為U盤使用,從而可以方便的將字庫和應(yīng)用程序等文件從PC機(jī)拷貝到平臺的FLASH中。使用此功能時,必須保證USB電纜正確連接。e:測試由ZLG7289驅(qū)動的LED顯示,共分3步,請看超級終端提示按任意鍵繼續(xù),同時觀察LED的變化,最后返回主菜單。k:測試由ZLG7289控制的鍵盤掃描,執(zhí)行該命令后按開發(fā)平臺的鍵盤,看

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論