嵌入式實驗指導書計算機專業適08版_第1頁
嵌入式實驗指導書計算機專業適08版_第2頁
嵌入式實驗指導書計算機專業適08版_第3頁
嵌入式實驗指導書計算機專業適08版_第4頁
已閱讀5頁,還剩87頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機專業適用嵌入式系統實

驗指

導書信息科學與工程學院2008年4月TOC\o"1-5"\h\z目錄 2\o"CurrentDocument"第一章嵌入式系統開發與應用概述 3\o"CurrentDocument"嵌入式系統開發與應用 3\o"CurrentDocument"基于ARM的嵌入式開發環境概述 3\o"CurrentDocument"第二章EmbestARM實驗教學系統 5\o"CurrentDocument"教學系統介紹 5\o"CurrentDocument"教學系統安裝 10\o"CurrentDocument"教學系統的硬件電路 11\o"CurrentDocument"集成開發環境使用說明 13\o"CurrentDocument"第三章嵌入式軟件開發基礎實驗 26\o"CurrentDocument"ARM匯編指令實驗一 26\o"CurrentDocument"C語言程序實驗一 32\o"CurrentDocument"第四章基本接口實驗 36\o"CurrentDocument"存儲器實驗 36\o"CurrentDocument"I/O接口實驗 4653\o"CurrentDocument"第五章人機接口實驗 57\o"CurrentDocument"液晶顯示實驗 57\o"CurrentDocument"5x4鍵盤控制實驗 70\o"CurrentDocument"觸摸屏控制實驗 74\o"CurrentDocument"第六章實時操作系統實驗 84\o"CurrentDocument"uC/OS-ll應用實驗 84第一章嵌入式系統開發與應用概述1.1嵌入式系統開發與應用以嵌入式計算機為技術核心的嵌入式系統是繼網絡技術之后,又一個IT領域新的技術發展方向。由于嵌入式系統具有體積小、性能強、功耗低、可靠性高以及面向行業具體應用等突出特征,目前已經廣泛地應用于軍事國防、消費電子、信息家電、網絡通信、工業控制等各個領域。嵌入式的廣泛應用可以說是無所不在。就我們周圍的日常生活用品而言,各種電子手表、電話、手機、PDA、洗衣機、電視機、電飯鍋、微波爐、空調器都有嵌入式系統的存在,如果說我們生活在一個充滿嵌入式的世界,是毫不夸張的。據統計,一般家用汽車的嵌入式計算機在24個以上,豪華汽車的在60個以上。ARM系列處理器核是英國先進RISC機器公司(AdvancedRISCMachines,ARM)的產品。ARM公司自成立以來,--直以IP(InteHigenceProperty)提供者的身份向各大半導體制造商出售知識產權,而自己從不介入芯片的生產銷售,它提供一些高性能、低功耗、低成本和高可靠性的RISC處理器核、外圍部件和系統級芯片的應用解決設計方案。ARM處理器核具有低功耗、低成本等卓越性能和顯著優點,越來越多的芯片廠商早已看好ARM的前景。目前非常流行的ARM芯核有ARM7TDMI,ARM720T,ARM9TDMI,ARM920T,XScale等。此外,ARM芯片還獲得了許多實時操作系統(RealTimeOperatingSystem)供應商的支持,比較知名的有:WindowsCE,uCLinux、VxWorks,uC/OS等。ARM公司具有完整的產業鏈,ARM的全球合作伙伴主要為半導體和系統伙伴、操作系統伙伴、開發工具伙伴、應用伙伴、ARM技術共享計劃(ATAP),ARM的緊密合作伙伴已發展為122家半導體和系統合作伙伴、50家操作系統合作伙伴,35家技術共享合作伙伴,并在2002年在上海成立中國全資子公司。早在1999年,ARM就已突破1.5億個,市場份額超過了50%,而在最新的市場調查表明,在2001年度里,ARM占據了整個32、64位嵌入式微處理器市場的75%,在2002年度里,占據了整個32、64位嵌入式微處理器市場的79.5%,全世界已使用了20多億個ARM核。ARM已經成為業界的龍頭老大,“每個人口袋中裝著ARM”,是毫不夸張的。因為幾乎所有的手機、移動設備、PDA幾乎都是用具有ARM核的系統芯片開發的。1.2基于ARM的嵌入式開發環境概述交叉開發環境作為嵌入式系統應用的ARM處理器,其應用軟件的開發屬跨平臺開發,因此需要一個交叉開發環境。交叉開發是指在一臺通用計算機上進行軟件的編輯編譯,然后下載到嵌入式設備中進行運行調試的開發方式。用來開發的通用計算機可以選用比較常見的PC機、工作站等,運行通用的Windows或Unix操作系統。開發計算機?般稱宿主機,嵌入式設備稱為目標機,在宿主機上編譯好的程序,下載到目標機上運行,交叉開發環境提供調試工具對目標機上運行的程序進行調試。交叉開發環境一般由運行于宿主機上的交叉開發軟件(最少必須包含編譯調試模塊)、宿主機到目標機的調試通道組成。運行于宿主機上的交叉開發軟件最少必須包含編譯調試模塊,其編譯器為交叉編譯器。作為宿主機的一般為基于x86體系的桌上型計算機,而編譯出的代碼必須在ARM體系結構的目標機上運行,這就是所謂的交叉編譯了。在宿主機上編譯好目標代碼后,通過宿主機到目標機的調試通道將代碼下載到目標機,然后由運行于宿主機的調試軟件控制代碼在目標機上運行調試。為了方便調試開發,交叉開發軟件一般為一個整合編輯、編譯匯編鏈接、調試、工程管理及函數庫等功能模塊的集成開發環境IDE(IntegratedDevelopmentEnvironment)模擬開發環境模擬開發環境建立在交叉開發環境基礎之上,是時交叉開發環境的補充。這時,除了宿主機和目標機之外,還需要提供一個在宿主機上模擬目標機的環境,使得開發好的程序直接在這個環境里運行調試。軟件模擬不可能完全代替真正的硬件環境,這種模擬調試只能作為一種初步調試,主要是用作用戶程序的模擬運行,用來檢查語法、程序的結構等簡單錯誤,用戶最終還必須在真實的硬件環境中實際運行調試,完成整個應用的開發。評估電路板評估電路板,也稱作開發板,一般用來作為開發者學習板、實驗板,可以作為應用目標板出來之前的軟件測試、硬件調試的電路板。尤其是對應用系統的功能沒有完全確定、初步進行嵌入式開發且沒有相關開發經驗的非常重要。開發評估電路板并不是ARM應用開發必須的,對于有經驗的工程師完全可以自行獨立設計自己的應用電路板和根據開發需要設計實驗板。選購合適于自己實際應用的開發板可以加快開發進度,可以減少自行設計開發的工作量。嵌入式操作系統很多初學者認為嵌入式開發必須采用嵌入式操作系統。實際上,一個嵌入式應用是否采用嵌入式操作系統,采用哪種嵌入式操作系統完全由項目的復雜程度、實時性要求、應用軟件規模、目標板硬件資源以及產品成本等因素決定。嵌入式操作系統一般可以提供內存管理、多任務管理、外圍資源管理,給應用程序設計帶來很多好處,但嵌入式操作系統同時也會占用一定的系統資源,并且要在用戶自己的目標板上運行起來,并基于操作系統來設計自己的應用程序,也會相應地帶來很多新的問題。所以對于不太復雜的應用完全可以不用操作系統,而對于應用軟件規模較大的場合,采用操作系統則可以省掉很多麻煩。一般來說一套具備最基本功能的交叉開發環境是ARM嵌入式開發必不可少的,至于嵌入式實時操作系統、評估板等其他開發工具則可以根據應用軟件規模和開發計劃選用。

第二章EmbestARM實驗教學系統教學系統介紹EmbestARM教學系統包括EmbestIDE集成開發環境,EmbestJTAG仿真器,Flash編程器,EmbestArmEduKitII開發板、各種連接線、電源適配器以及實驗指導書等。基本實驗模型小意圖如2-1所不:圖2-1實驗模型示意圖EmbestIDE集成開發環境EmbestIDE開發環境界面如圖2-2所示國序eS:a*QildSbug135Mnlowfjep口8。。? ?l:?團國序eS:a*QildSbug135Mnlowfjep口8。。? ?l:?團0廠 Ftt<a?、■* ?tj今?廟BE)口用中|'?aRR?nEM-理term_eb40a5e$

也J|CSeurce

.?_JASMSource

?_JUnliScript

&termcb42files

上口C3?utcc

?IASMSource

王i_JLinhScript

柳term_eb5Sniea

亍口CSeurce

--|ASMSource

?口LinkScript

事term_ebG9files

ICSeufce

.lerm.c4IA,<M、c”—//?feraunalinitialisationtrrninall.usarttfrtc-fcUSHRTBKSC;terRlntl_1.ten?_d4ta?&terRinai_dJta_1;t<TRiml_1.baud_ratr- (MU0S2”??;ternln〃_1,orwt=(?Int)USASYNCHtDE;//?iJprntprRinjl4t91terminalopen(&teralnal_1);//?Transidtstr_test<or(i-?;i<?trl?n(ctr_t?*t):i??)at*1_terRinal_write(titerRinal_1.tstr_test[i]):refreshadisplaylidisasseRbresrttinr.stepst?t<stoptargi_listallidisplayr-setreyiadisplayavrltetoi,血FRead/Ln117.Col5 DOS NUMRead/EmbestIDE主要特征EmbestIDE可在Windows98、2000、NT及XP等操作系統上運行,主要支持ARM系列處理器。對于ARM系列處理器,EmbestIDE目前支持ARM7以及ARM9系歹人EmbestIDEforARM主要特性如下:支持開發語言:C和匯編。界面友好,使用方便:類似MSVisualStudio的用戶界面。工程管理器:圖形化的工程管理工具,負責應用源程序的文件組織和管理,提供編譯、鏈接、庫文件的設置窗口,可在一個工作區中同時管理多個應用軟件和庫工程。源碼編輯器:標準的文本編輯功能,支持語法關鍵字、關鍵字色彩顯示等。IDE同時提供了高效的FindinFiles引擎,可迅速查找定位指定的字符串信息。編譯工具:集成著名優秀自由軟件GNU的GCC編譯器,并經過優化和嚴格測試,運行在Win32環境;同時兼容ARMSDT2.51編譯器,可以方便ARMSDT及ADS的用戶在EmbestIDE下編譯工程代碼。IDE提供了圖形化的編譯器開關設置界面,用戶可以簡單、宜觀、快捷地完成工程編譯選項設置。編譯信息的輸出,條理清晰,可迅速定位產生語法錯誤的源文件行。調試器:提供對ARMAXD調試器的支持,可以方便使用EmbestJTAG仿真器調試ARMSDT及ADS環境的工程代碼。源碼級調試,提供了圖形和命令行兩種調試方式,可進行斷點設置、單步執行、異常處理,可查看修改內存、寄存器、變量等,可查看函數棧,可進行反匯編等。支持ARM/Thumb指令調試。調試設備:EmbestJTAG仿真器,連接到主機的通信接口可以是DB25的LPT口、USB接口或Ethernet接口,另外一端是IDC插頭,連接到目標板的JTAG接口。用戶可以使用EmbestIDE配合EmbestJTAG仿真器進行應用軟件的開發,EmbestIDE同時也支持一些國內外常用的JtagCable線。脫機調試:EmbestIDEforARM帶ARM指令集模擬器,用戶可以在PC上模擬調試ARM應用軟件。豐富的例程:提供ADI、Atmel、Samsung,CirrusLogic>OKI,Philips>Sharp等多家公司ARM處理器的調試程序示例和使用說明。聯機幫助:中、英文兩種版本的在線幫助文檔。在嵌入式軟件開發時,完成設計和編碼后,即開始調試程序,這是軟件開發的第三步。EmbestIDE的調試功能包括:斷點功能:斷點設置、斷點屏蔽、斷點取消、條件斷點、查看斷點列表。程序的單步執行。變量監視功能:隨程序運行同步更新變量,變量值即時修改。寄存器即時查看與修改。提供外圍寄存器編輯器,可查看編輯ARM處理器的外圍寄存器定義存儲器查看與修改,存儲器內容顯示格式定制。堆棧顯示。同時提供圖形界面操作和命令行操作方式。

支持被調試代碼的多種顯示模式,能以源碼的形式、匯編的形式、混合的形式來顯示程序。提供外圍寄存器細節屬性窗口,調試過程中可動態修改外圍寄存器單元的配置具有與MSVisualStudio類似的調試菜單功能:Go,Stop,Reset,Stepinto,Stepover,Stepout,RuntoCursor等。程序的上載和下載。2.1.2EmbestJTAG仿真器JTAG仿真器也稱為JTAG調試器,是通過ARM芯片的JTAG邊界掃描口進行調試的設備。JTAG仿真器連接比較方便,通過現有的JTAG邊界掃描口與ARMCPU核通信,屬于完全非插入式(即不使用片上資源)調試,它無需目標存儲器,不占用目標系統的任何端口,而這些是駐留監控軟件所必需的。另外,由于JTAG調試的目標程序是在目標板上執行,仿真更接近于目標硬件,因此,許多接口問題,如高頻操作限制、AC和DC參數不匹配,電線長度的限制等被最小化了。使用集成開發環境配合JTAG仿真器進行開發是目前采用最多的一種調試方式。EmbestJTAG仿真器如下圖所示。(a)EmbestEmulatorforARM(b)EmbestPowerlCEforARMMMHAML/NetlCE(a)EmbestEmulatorforARM(b)EmbestPowerlCEforARMMMHAML/NetlCE(c)EmbestUnetICEforARM圖2?3EmbestJTAG仿真器圖EmbestJTAG仿真器目前分為三種類型,包括標準型(EmbestEmulatorforARM),增強型(EmbestPowerlCEforARM)和通用型(EmbestUnetICEforARM),主要區別在于下載調試的速度不同。其中EmbestEmulatorforARM,EmbestPowerlCEforARM根據采用打印機并口(LPTx)與主機通訊,即仿真器一端是一個DB25的接口,用于連接計算機的并行口,另外一端是20針的IDC插頭,用于連接目標板。EmbestUnetICEforARM則可以使用USB接口或EthernetRJ45接口與主機通訊,分別使用USB線或交叉網線與主機USB或RJ45接口相連。EmbestJTAG仿真器面板上面都有三只指示燈,對當前的工作狀態做出指示。Flash編程器當用戶程序編寫完之后,需要把程序生成的二進制執行文件燒寫到開發板的Flash存儲器中觀察實際運行結果。英蓿特公司提供了一套完善的Flash編程器,用戶可以直接使用該編程器對開發板上的Flash進行讀寫(使用時需要配合前面提到的EmbestJTAG仿真器)。其運行界面如圖2-4所示:圖2-4Flash編程器界面Flash編程器的主要特征:支持所有基于ARM7和ARM9核的處理器,如ATMEL公司AT91系歹[SAMSUNG公司S3c系列等。用戶也可以通過選擇自定義(USER。DEFINE),來定義編程使用的CPU類型。支持大多數廠家生產的FLASH芯片,如AMD公司AM29系列,INTEL公司28系歹ij,SST公司29\39\49系列。英秸特公司可免費提供新Flash芯片型號支持。支持對FLASH進行空白檢查、擦除、編程、文件校驗、計算校驗和、保護、上載。支持8位、16位和32位讀寫訪問寬度。支持Windows98、2000、NT及XP操作系統。EmbestArmEduKitII開發板EmbestArmEduKitII開發板是實驗系統的主要硬件平臺,它是英禧特公司開發的一款全功能ARM開發板,基于Samsung公司的S3c44B0X處理器(ARM7TDM),資源豐富。硬件系統包含了嵌入式系統開發應用所需的大部分設備,如串□、以太網口、USBn,音頻輸出、LCD及TSP觸摸屏、4*4的小鍵盤、固態硬盤、大容量的Flash和SDRAM等等。用戶不僅可以在該硬件平臺上完成實驗系統提供的實驗例子,還可以參考該平臺設計自己的目標系統。該硬件平臺如下圖所示:圖2-5實驗系統硬件平臺EmbestArmEduKit11開發板的基本資源如下:電源:外部5V電源供電或者由USB接PC供電,電源指示LED以及500mA保險絲1MX16bitFlash4X1MX16bitSDRAM4KbitIICBUS的串行EEPROM2個串口,其中一個為簡單接口,一個為全接線接口,可跳接RS232MoDEM復位開關兩個中斷按鈕,兩個LED外部IDE硬盤接口,LCD及TSP觸摸屏接口20針JTAG接口USB連接器,4X4鍵盤接口4個2X20PINCPU擴展接口10M以太網接口,8段數碼管MICROPHONE輸入口IIS音頻信號輸出口,可接雙聲道SPEAKER固態硬盤16Mx8bit320*240帶觸摸功能的顯示屏.5各種連接線與電源適配器實驗系統除了提供以上的組件以外,還提供了各種連接時候需要的電纜線。包括直通網線,USB線,串口線,并口線和兩根JTAG線(分別是20針和14針接口)。實驗系統還提供一個5V電源適配器(EmbestArmEduKitII實驗板用)教學系統安裝EmbestARM教學系統包括EmbestIDE集成開發環境,Flash編程器,EmbestJTAG仿真器,EmbestEduKitII開發板、各種連接線及電源適配器。其中EmbestIDE和Flash編程器是屬軟件平臺部分,其余屬于硬件平臺部分。本章主要介紹如何安裝實驗系統的軟件平臺、如何搭建和如何進行軟件平臺與硬件平臺的連接。軟件平臺的搭建包括兩個部分EmbestIDE集成開發環境的安裝EmbestFlash編程器的安裝軟件安裝完畢后,請詳細閱讀相關軟件說明及軟件使用手冊。下面介紹如何進行軟件平臺和硬件平臺的連接。?實驗軟件平臺和硬件平臺的連接如圖2-1所示,PC端與仿真器通過實驗系統提供的并口線連接,仿真器和開發板通過一根20針的JTAG線連接。其中需要注意:1)開發板使用5VDC電源供電,建議使用實驗系統提供的變壓器2)仿真器側面的Jtag跳線撥到20位置3)硬件平臺最好預先參照EmbestEduKit11用戶手冊(在EmbestARM教學系統光盤中)進行基本硬件檢測教學系統的硬件電路概述EMBESTARMEDUKITII教學試驗平臺是一款功能強大的32位的嵌入式開發板,里面采用了SAMSUNG公司的以ARM7TDMI-S為內核的處理器S3c44B0X,同時可以兼容S3c2410,具有JTAG調試等功能。板上提供了一些鍵盤、LED和串口等一些常用的功能模塊,并且具有IDE硬件接口,CF存儲卡接口、以太網接口和SD卡接口等等,對用戶在32位ARM嵌入式領域進行開發試驗非常方便。功能特點使用CPU擴展接口,可以使用SAMSUNG公司的S3c44B0X和S3c2410;令系統核心板包括SDRAM、CPU、核心電壓模塊、實時時鐘、系統跳線、系統時鐘、核心板接口等;。SDRAM用量與CPU有關,2410采用64M,44B0采用8/16M兼容芯片為HY57V561620或HY57V641620;令完全自主設計的軟硬件系統,可以支持JTAG仿真技術,支持ADS、SDT和IDE等集成環境開發;令具有2/4M兼容的NorFlash和8/16/32/64/128M兼容的NandFlash;令兩個以太網口,一個為44B0和4510專用,另外一個為Mil接口的CPU專用,用到的芯片分別是CS8900A和RTL8201;令具有USB接口電路;。具有串行口2個,可以跟上位機進行通訊;令內部包含采用UDA1341Ts芯片的音頻電路模塊,方便進行音頻調試試驗;令內部包含IIC器件,采用支持IIC的EEPROM-AT24co8;。顯示部分包括STN/TFT兼容接口的彩色LCD、LED指示燈和6個數碼管;令采用變阻器形式的ADC數據采集電路;。提供實時時鐘控制試驗;令提供觸摸屏接口電路;令4X4鍵盤,可以擴展至64鍵,使用芯片SD7218;用PWM控制的蜂鳴器電路,可以發出不同頻率的聲音;力提供用I/O控制的跑馬燈試驗;提供由MAX485控制的RS422和RS485接口電路;。提供CAN接口電路,方便組裝現場總線;令具有IDE硬盤接口、CF存儲卡接口、SD卡接口和PS2接口;

令WDT控制電路,提供SPI接口;令包含紅外線接口模塊:。具有采用擴展子板形式的GPRS模塊電路和GPS模塊電路;EMBESTARMEDVKIT【I教學試驗平臺主要功能模塊如下:以太網接口USB控制器UART接口PS2接口口型QNVOasUSB控制器以太網控制器PCI接口CFCARD接口end){nd〕xgHHncc口鞘NVOFLASIRS232驅動器IIS控制器以太網接口USB控制器UART接口PS2接口口型QNVOasUSB控制器以太網控制器PCI接口CFCARD接口end){nd〕xgHHncc口鞘NVOFLASIRS232驅動器IIS控制器HS控制器S3C44B0XPACKLED顯示一口受口蟲dSlNANDLED驅動BUZZERAIN輸入VGA圖2-13ARM開發板功能模塊原理說明(略)硬件結構(略)集成開發環境使用說明EmbestIDE主框架窗口在Windows98/NT/2000/XP環境中運行EmbestIDEforARM(主應用程序為EmbestlDE.exe)后,即進入EmbestIDE集成開發環境。EmbestIDE集成開發環境主界面見下圖。Mla()//?frinsmtstr_test源文件窗口口吟P0⑨ ■?國中//?Tvrnifuliniti<ilicatisntrrninil_1.usart_tie5C-MSdRTIDESC;termm1_1.tem_d41??Meriwin?T_dit*_1;tcrninal_1.tMud_rjtr- 8nUDS;Mla()//?frinsmtstr_test源文件窗口口吟P0⑨ ■?國中//?Tvrnifuliniti<ilicatisntrrninil_1.usart_tie5C-MSdRTIDESC;termm1_1.tem_d41??Meriwin?T_dit*_1;tcrninal_1.tMud_rjtr- 8nUDS;8%?4;t,retru】_1.forndt-3_】nt)tfSJCYhCJtt”;//?9prnterain4lZ/CSource?_JASMSatire*而口LinkScript圖letm_eb42tilesft口CSeurccS/hASMSource,L[LinkScrip!1_eM5rile*工程管理由ISMSource ZinkScript-??c;m_cbCJilkSBfilCSeurcc目tem.cjIA<MKnurr*寄存器窗口Irrimul數據觀察官?m2?…?KFff...tMMOee1tIB9fESpin_rxdpin_tid__i_Oil?_sck?civI?M,tarr?x2■,.X...II卜辦聲ci>Read/內衣器窗口>2年script21PliMSRstep5topr-*glisteqr.ad■"egwite—beadS出窗口3?4?cut”?refreshadisplayiidisassMferesettar*? fstepstat*stoptar9*listall?displayr?:regi,iplay?Pt.str圖2-27EmbestIDE主界面圖EmbestIDE集成開發環境的主框架窗口由標題欄、菜單條、工具條、工程管理窗口、源文件窗口、輸出窗口和狀態條等組成。標題欄顯示當前打開的文件名。工程管理窗口用于顯示當前打開工程的有關信息,包括工程的文件組成等內容。源文件窗口用于文本編輯器進行C、匯編等源文件的編輯以及調試時的源代碼執行跟蹤。輸出窗口輸出編譯信息、調試信息、命令行輸入輸出和輸出一些查詢結果信息等。主框架窗口的最底端為狀態欄,用于顯示關于菜單條、工具條等的簡單說明信息以及文本編輯器中當前光標所在的行列號等。用戶可以通過鼠標拖動,將菜單條、工具條、工程管理窗口、源文件窗口和輸出窗口等隨意更換順序和位置,也可以隱藏其中的某些窗口。在調試過程中,可以根據需要打開和關閉寄存器窗口、函數棧窗口、變量窗口、存儲器窗口、數據觀察窗口以及反匯編窗。

工程管理.工程管理介紹在EmbestIDE集成開發環境中,工程是一個非常重要的概念,它是用戶組織一個應用的所有源文件、設置編譯鏈接選項、生成調試信息文件和最終的目標Bin文件的一個基本結構。一個工程管理一個應用的所有源文件、庫文件、其它輸入文件,并根據實際情況進行相應的編譯鏈接設置,一個工程須生成一個相對應的目錄,以進行文件管理。EmbestIDE工程管理提供以下功能:將所有源文件組成一個有機整體,實現一個具體的應用。在工程管理窗口中可方便地管理組成工程的所有源文件(見下圖)。以工程為單位定義設置應用程序的各選項,包括目標處理器和調試設備的選擇與設置,調試相關信息的配置,以及編譯、匯編、鏈接等選項的設置等。系統提供一個專門的勸話框來設置這些選項。〔WorkspaceB嗎Workspace'Examples':12project(s)B霹analogtestfiles國口CSourceFilesBCJASMSourceFiles國adc_irq.s國cstartup.s莊口HeaderSourceFiles國口LinkScriptFile:?]國example12cfilesexampletimerfile:田薜interruptfilesS]@led_blinkfiles口Ne世Folder..E)霹Iled_swingfiles 故-test0Project…El犀pollingfiles 能3 >0at用品 set_flash_sram file Settr)E]厚termfiles由霹I timefiles DockingView?]罅 timerfiles Hide囹品ucosfiles __| 囪PropertiesFiles]

圖2-28工程管理窗及右鍵菜單提供build菜單和工具按鈕,讓用戶輕松進行工程的編譯、鏈接。編譯、鏈接信息輸出到輸出窗口中的Build標簽窗中(見下圖),編譯鏈接出現的錯誤,通過鼠標左鍵雙擊錯誤信息提示行來定位相應的源文件行。圖2-29圖2-29編譯鏈接輸出子窗口一個應用工程編譯鏈接后根據編譯器的設置生成相應格式的調試信息文件,調試通過的程序轉換成二進制格式的可執行文件后最終在目標板上運行。.工程的創建工程是置于工作區中管理的,因此在創建一個工程的同時,會創建一個工作區。操作過程:1)點擊菜單項File〉NewWorkspace,系統彈出一個對話框,如下圖所示。CreateaNewProjectProjectname:|NewProjectNameOKLocation:|E:\EmbestlDE\Examples\Samsung\NIOKCancel圖2?30創建一個新工程2)在Projectname框中輸入新建工程名,Location框中輸入該工程要保存的目錄路徑,或點擊目選擇要保存的目錄路徑。3)點擊0K按鈕,將創建一個新工程,并同時創建一個與工程名相同的工作區。此時在工作區窗口將打開該工作區和工程。.建立一個新的源文件點擊菜單項File>New,系統彈出一個新的、沒有標題的文本編輯窗,輸入光標位于窗口中第一行,用戶即可編輯輸入源文件代碼。默認情況下,在用戶編輯輸入時,按C語法來進行顏色加亮顯示。編輯完后,保存該文件。.工程中文件的加入選擇Project菜單中AddToProject>Files命令,或單擊工程管理窗口中的相應右鍵菜單命令,彈出文件選擇對話框,在工程目錄下使用CTRL鍵同時選擇要加入的源文件:圖2-31加入源文件到工程中5.設置活動工程在一個工作區中可以存在幾個同時打開的工程,但只有一個工程處于活動狀態,處于活動狀態的工程才可以作為調試工程。在工作區窗口中,處于活動狀態的工程,其工程圖標將顯示為加亮彩色。如圖2-32所示。E)I?Workspace'term':5projectfs]E53term_eb40filestermeb4O,E國term_eb42E屆term_eb55E舞termeb63BuildUNewFolder...AddFilestoProject...SetasActiveProject活動工程彩色圖標getting...■;Func囿Files3DockingView

HideProperties圖2?32彩色圖標及右鍵菜單設置活動工程在工作區窗口中,選中要設置為活動狀態的工程,點擊鼠標右鍵,彈出右鍵菜單,選擇SaveasActiveProject項,可將該工程設置為活動狀態,如圖2?32所示.2.4.3工程基本配置選擇菜單項Project〉Settings…或快捷鍵Alt+F7,彈出工程設置對話框。在工程設置對話框中,選擇相應的配置頁面可對處理器、仿真器、調試器、編譯器和匯編器等作配置。如對處理器Processor設置對話框,如圖2-33,其它設置類同。圖2-33處理器配置對話框工程的編譯鏈接圖2-54工程build菜單和工具條完成工程的設置后,就可以對工程進行編譯鏈接了。用戶可以通過選擇主窗口Build菜單項或Build工具條按鈕,編譯相應的文件或工程,同時將在輸出窗的Build子窗口中輸出有關信息。如果在編譯鏈接過程中,出現任何錯誤,包括源文件語法錯誤和其它錯誤時,編譯鏈接操作立刻終止,并在輸出窗的Build子窗口中提示錯誤,如果是語法錯誤,用戶可以通過鼠標左鍵雙擊錯誤提示行,來定位引起錯誤的源文件行。加載調試EmbestIDEforARM包含ARM模擬器,支持脫離目標板的ARM應用模擬調試,是開發人員進行在線調試前的開發輔助工具。在線調試時,首先將集成環境與JTAG仿真器連接,點擊Debug>RemoteConnect菜單項可激活連接,然后點擊Download菜單將目標文件下載到目標系統的指定存儲區中。如果在工程設置對話框調試選項中設置了自動下載選項,EmbestIDE中的調試器會在與仿真器連接后自動進行下載,文件下載后即可進行在線仿真調試。1.斷點和單步調試器可以控制目標程序的運行和停止,并反匯編正在調試的二進制代碼,同時可通過設置斷點來控制程序的運行,輔助用戶更快的調試目標程序。EmbestIDE的調試器可以在源程序、反匯編程序、以及源程序匯編程序混合模式窗口中設置和刪除斷點。設置斷點的有以下幾種方法:.將鼠標指向源程序行左邊需設定斷點處,鼠標形狀會變成手形指針,然后單擊鼠標左鍵,這時,程序行左邊會出現紅色圓形含黃色條的斷點標志。.將光標設置在需要設置斷點的代碼行處,按F9快捷鍵。.將光標設置在需要設置斷點的代碼行處,點擊Debug菜單,選取ToggleBreakpoint菜單項。第一次設置的斷點均為有效斷點,設置了有效斷點的源程序界面如圖2-55所示,青色圈處為有效斷點標志://-設置定時時間at91_tc_writ?(aTCe_DESC,ti?er_ualue);〃x--SoftwareTriggeronTinerC\〃x-g?asoftuar?triggersinultan?ouslyfor“chofth&chanat91_tc_trig_c?d(&TCG_DESC.TC_TRIG_CHaNNEL);//*啟動定時器at91_irq_open(TC0_DESC.periph_id,7,fiIC_SRCTVPE_INT_EDGE_TRIGGERED,£0圖2-55有效斷點標志在源程序窗,若在條非執行語句設斷點,EmbestIDE不會做出任何響應。斷點狀態分為有效和無效狀態,程序不會在無效狀態的斷點停止。無效斷點的源程序界面如圖2-56所示,青色圈處為無效斷點標志://*defineledatPIOoutputat91_pio_open(&PIO.DESC,LED.MASK,PIO.OUTPUT);7-〃xdefineswitchatPIOinputOat91_pio_open(&PIO_DESC,SW.MASK.PIO.INPUT);//?Timerinitializationat91_tc_open(?TCe_DESC,TC.WAUEITC_CPCTRGITC_CLKS_MCK8,6.6);圖2-56無效斷點標志當程序運行到有效斷點處時,會停止在有效斷點處,其界面如圖2?57所示:〃x設置定時時間at91_tc_write(aTCe_DESC,timer.ualuo);//?SoftwareTriggeronTiaer//x?-g?neratosasoftxaretriggersimultaneouslyforeachofthechannels.at91.tc.trig.c?d(&TCLDESC.TC.TRIG.CHANNEL):〃*啟動定時器at91_irq_open(TCe_DESC.periph.id,7,filC.SRCTYPE.INT.EDGE.TRIGGERED.&OSTickI圖2-57停止在斷點處的程序界面用戶可使用斷點列表來查詢所有斷點信息和狀態。點擊Debug獺選取“Breakpoint…”菜單項,即可彈出斷點列表對話框,斷點列表對話框如圖2-58所示:Breakpointslist□□□□□□□□10x0200012ce:\embestide\targets\at91\t...0stk==0x15memwrite2□□□□□□□□10x0200012ce:\embestide\targets\at91\t...0stk==0x15memwrite20x02000138e:\embestide\targets\at91\t...030x02000120e:\embestide\targets\at91\t...040x02000164e:\embestide\targets\at91\t...050x02000188e:\embestide\targets\at91\t...060x02000178e:\embestide\targets\at91\t...070x02000194e:\embestide\targets\at91\t...080x0200019ce:\embestide\targets\at91\t...0IDAddressLocationCountWhenCommancOKICancelModifyDeleteDeleteAllViewCode圖2-58斷點列表對話框界面在斷點列表對話框點擊Delete按鈕將會刪除當前選擇的斷點,點擊DeleteALL按鈕將刪除當前列表中所有斷點,點擊ViewCode按鈕將顯示當前所選擇斷點對應的源文件,如果是匯編斷點并且不對應任何源文件,點擊ViewCode按鈕將沒有任何反應,雙擊某一斷點行或者點擊Modify按鈕,將可修改斷點信息,修改界面如圖2-59所示:BreakpointModifyLocation:Location:|0x0200012cCancelFunction:CancelSourceFile:|e:\embestide\targets\at91\targPEnableCount:PEnableCount:Advanced>>若要設置斷點條件屬性,點擊斷點信息修改窗口的Advanced按鈕,將下拉出另一附加窗口,界面如圖2-60麻,“When”輸入欄用于輸入斷點條件表達式,“Command”輸入欄用于輸入程序到達斷點時候系統自動執行的命令。圖2-60條件斷點信息修改界面2.反匯編窗反匯編窗用于顯示反匯編二進制代碼后得到的匯編級代碼,可以混合源代碼顯示,也可以混合二進制代碼顯示。反匯編窗可以設置和清除匯編級別斷點。EmbestIDE-[Disassembly]犀)FileEditViewProjectBuildDebugToolsWindowHelp『00?80昌laciaul底畫,Fa4「W?袤?SB|◎刊幣件七9晚扇R回口網耳]產」,X[嗎固原R國口網總B國term_eb40afilesElCJCSource團CJASMSource由CJLinkScriptB圓term_eb42files國口CSource國OASMSource由口LinkScriptB厚term_eb55files由口CSource田口ASMSource由CJLinkScriptB摩term_eb63files白口CSource國term.ci1 1±J2<J可-zJ#-(useforthat theoption-rw-bases0x34 -1It 勿UectorTable:Idr pc,[pc,11*0x18]0x02000020 Idr pc, [pc, It18] ; 0x20000ii0Idr pc. [pc,#+0x18]0x02000024 Idr pcv [pc, It18] ; 0x2000044Idr pc, [pc,SI*0x18]0x02000028 Idr pc, [pc, 1t18] ; 0x2000048Idr pc. [pc,tt+0x18]Ox0200002c Idr pc, [pc, It18] ; 0x200004cIdr pc, [pc,11*0x18] 」0x02000030 Idr pc, [pc. 1t18] ; 0x20000501G4: nopOx02000034 nop (mourO.rO)Idr pc, [pc,1l-0xF2O]0x02000038 Idr pc, [pc.ttffFfFOeO] ; 0x1FFI:120[106: Idr pc, [pc,tt-0xF20]Ox0200003c Idr pc, [pc,ItFFFFFOeO] ; 0x1Fff124Ox020000^0 andeq r0, rO,U840x02000044 andeq r0, rO,088 色id | JjFFunc國Ffes|

3.寄存器窗點擊菜單項View〉debugwindows〉Variables可以打開和關閉寄存器窗口。寄存器窗用于顯示和修改目標系統中處理器內核寄存器及其外圍接口寄存器值。寄存器名稱和數目依賴于目標系統處理器類型,當調試不同目標系統的時候,顯示的內容會不一樣。寄存器值可以按照十進制、十六進制或者二進制格式顯示,并可自動刷新或者根據需要由用戶手動刷新顯示。寄存器顯示按照寄存器組方式,每組寄存器都可以分別設置不同的顯示格式。注:如果在工程配置的Processor設置對話框沒有選擇相應的處理器廠家及芯片型號,Peripheral窗口將顯示空白寄存器窗的界面如圖2-62所示:Registers-Current -User -FIQ -sue―—―-Abort -Undef-Undef 5:5Register晶Peripher點圖2-62寄存器窗界面點擊某一個寄存器,該寄存器的名字和值會顯示在寄存器窗上部的輸入欄中,在輸入欄可以改變該寄存器的值,輸入欄如圖2-63所示:RegR20xe50b3014圖2-63寄存器值修改輸入欄當寄存器的值被修改后會以紅色顯示該值,如圖2-64所示:

.存儲區窗存儲區窗用于顯示和修改目標系統中存儲區的內容。存儲區窗顯示從輸入的起始地址開始存儲的存儲區內容,顯示長度根據存儲區窗大小而自動匹配。存儲區內容可以按照字節、半字或字長度顯示,并同時以十六進制數和對應的ASCII字符顯示存儲區內容。當存儲區窗顯示范圍內的存儲區數據有變化的時候,會以紅色顯示這些數據。IDE同時提供了兩個內存顯示窗口Memory1窗和Memory2窗(功能同Memoryl窗)。按照字節長度顯示的存儲區窗的界面如圖2-65所示:10X0000000?0+1+2+3+4+5+6+7+800000000 18 FO 9F E5 18 FO 9F E5 18 00000009 FO 9F E5 18 FO 9F E5 18 F0 00000012 9F E5 00 00 A0 E1 20 FF 1F 0000001B E5 20 FF 1F E5 54 00 00 02 ....T...00000024 58 00 00 02 5C 00 00 02 60OO0OOO2D 00 00 02 64 00 00 02 5C 3700000036 03 02 68 82 02 02 64 37 03 ..h...d7.0O0OOO3F 02 E4 18 00 01 A8 61 00 00 a..00000048 50 C3 00 00 03 00 00 00 58 P X00000051 18 00 01 00 CO FE FF 00 00 T 000O0O5AFFFFEC0C0202A83B031 ;.nnnnnn63n?nnnnnnnnnnnnnnnn -i二JZEKru1kMemorY2/圖2?65存儲區窗界面用戶可以在窗口上部的存儲區起始地址欄修改顯示起始地址,修改后存儲區窗會自動從新的地址開始顯示存儲區內容;地址輸入欄可以記錄用戶最近查看的10個起始地址值,用戶可從卜拉菜單中選擇想要查看的起始地址。存儲區起始地址欄如圖2-66所示:0X02000200020001000200010902000112020OO11BOx020001000200010902000112020OO11BOx020004000x020005000x02000600圖2-66存儲區起始地址輸入欄若要修改存儲區內容,可在十六進制數據欄或者ASCII字符數據欄直接修改,修改的數據會立刻寫到對應的存儲區中,并以紅色顯示改變了的數據。.watch窗點擊菜單項View〉DebugWindows>Watch可以打開和關閉數據觀察窗(watch)。數據觀察窗用于顯示用戶想要觀察的變量或表達式值,用戶可以隨時增加或刪除觀察數據。觀察數據值可以按照十進制或者十六進制格式顯示。觀察數據值會跟隨用戶的每一步操作而自動重新計算和顯示。數據觀察窗有兩個頁面:“Watch1”和“Watch2",每個頁面可以單獨輸入不同的數據。觀察數據名會跟隨工程自動存儲,當下一次打開同一個工程的時候,會自動調入原先存在的觀察數據名。數據觀察窗缺省顯示為十六進制,其界面如圖2-67所示:

圖2-67數據觀察窗界面用戶可以使用以下兩種方法增加觀察數據:.雙擊數據觀察窗最后的空行的名字欄,數據觀察會在此處出現一個輸入框,輸入數據回車或者點擊其它行,調試器將計算數據值,并顯示在對應的值欄目。.在數據觀察窗在點擊鼠標右鍵,在數據觀察窗菜單中選取“Add”菜單項,將彈出輸入對話框,在其中輸入想要觀察的數據或者表達式。.變量窗點擊菜單項View〉DebugWindows>Variables可以打開和關閉變量窗。變量窗用于顯示全局以及局部變量信息,并可修改變量值。變量窗有兩個頁面:“Global”和“Local”,分別用于顯示全局變量和函數局部變量。變量值以及局部變量名會跟隨用戶的每一步操作而自動重新計算和顯示。當變量窗中變量值有變化的時候,變量窗會變紅顯示這些數據值。變量窗缺省顯示為十六進制,其界面如圖2-68所示:用戶可以察看變量的屬性,其中包括變量名字、變量值和變量類型。用戶可以修改變量值,方法是雙擊要修改的變量值欄,在顯示的輸入框中輸入新值。當輸入的數據為合法數據時候,調試器會修改目標系統中對應變量的值,并變紅顯示修改后的數據。.函數棧窗點擊菜單項View>DebugWindows>CallStack可以打開和關閉函數棧窗。函數棧窗用于顯示函數運行調用關系,函數參數值可以按照十六進制或者十進制格式顯示。最后調用的函數(即當前運行函數)在窗口最上部的第一行,按照調用關系依次往下排列,起始函數在窗口末的最后一行。函數棧窗的界面如圖2-69所示(設置所有函數參數屬性顯示):圖2-69函數棧窗界面函數參數的名字、類型或值都可以單獨設置是否顯示。如果關閉所有函數參數顯示,將只顯示函數名字和返回類型。雙擊函數棧窗的某一函數所在行,源文件窗會顯示出該函數調用函數棧中上一函數返回后將要執行的下一句代碼,并在該源代碼行前面放置一藍色向右箭頭標志(見下圖的青色圓圈包圍處),函數棧窗同時會高亮顯示該函數棧函數信息行。雙擊后調試器界面變化如圖2-70所示:2.4.6Flash編程工具EmbestIDEforARM提供了Flash編程工具,可以在板(onboard)榛除Falsh或將文件燒寫到Flash中。軟件界面如圖2-71所示。FlashProgrammer其他特點:編程配置數據的保存和載入。編程前的寄存器讀取功能和目標測試功能。FLASH扇區地址指示功能。?簡單宜接的處理器寄存器設置界面。圖2-71FlashProgrammer軟件界面第三章嵌入式軟件開發基礎實驗ARM匯編指令實驗一實驗目的初步學會使用EmbestIDEforARM開發環境及ARM軟件模擬器;通過實驗掌握簡單ARM匯編指令的使用方法。實驗設備硬件:PC機軟件:EmbestIDEProARM集成開發環境,Windows98/2000/NT/XPo實驗內容熟悉開發環境的使用并使用Idr/str,mov等指令訪問寄存器或存儲單元。使用add/sub/lsl/lsr/and/orr等指令,完成基本數學/邏輯運算。3.1.4實驗原理1.存儲㈱格式ARM體系結構可以用兩種方法存儲字數據,分別稱為大端格式和小端格式。1)大端格式中,如下圖所示。在這種格式中,字數據的高位字節存儲在低地址中,而字數據的低位字節則存放在高地址中,如下圖所示。89101145670123高地址31 2322 1615 87字地址高地址31 2322 1615 8784低地址0低地址2)小端格式在這種格式中,字數據的高位字節存儲在高地址中,而字數據的低位字節則存放在低地址中,如下圖所示。高地址31 2322 1615 87 0字地址低地址高地址31 2322 1615 87 0字地址低地址111098765432103.GNU基礎知識EmbestIDE集成了GNU匯編器as,編譯器gcc,鏈接器Id。因此,我們寫程序要符合GNU的語法和規則。關于as、gcc和Id的具體使用,請參照EmbestIDE所帶的電子文檔ProgRef.chm,在此不再贅述。這里簡單介紹幾點基本知識:1)程序默認入口點為“_start”,代碼段默認起始地址為0x80002)as常用偽操作符.equ.equ偽操作為數字常量、基于寄存器的值和程序中的標號定義一個字符名稱。語法格式.equsymbol,expr其中,expr為基于寄存器的地址值、程序中的標號,32位的地址常量或者32位的常量。Symbol為.equ偽操作為expr定義的字符名稱。示例.equVersion,"0.1".global及.globl.global聲明一個符號可以被其他文件引用。相當于聲明了一個全局變量,.globl與.global相同。語法格式.globalsymbol其中,symbol為聲明的符號的名稱。它是區分大小寫的。示例.globalMyAsmFunc.text.text偽操作將操作符開始的代碼編講到代碼段或代碼段子段(subsection)語法格式.text{subsection}示例.text.end標記匯編文件的結束行,即標號后的代碼不作處理。語法格式.end3.1.5實驗操作步驟1)新建工程:運行EmbestIDE集成開發環境,選擇菜單項FileNewWorkspace,系統彈出一個對話框,按照圖3-1所示輸入相關內容。

圖3-1新建工作區點擊0K按鈕,將創建一個新工程,并同時創建?個與工程名相同的工作區。此時在工作區窗口將打開該工作區和工程。2)建立源文件:點擊菜單項File-New,系統彈出一個新的、沒有標題的文本編輯窗,輸入光標位于窗口中第一行,按照實驗參考程序編輯輸入源文件代碼。編輯完后,保存文件asm1_a.s。3)添加源文件:選擇Project-AddToProject-Files命令,或單擊工程管理窗口中的相應右鍵菜單命令,彈出文件選擇對話框,在工程目錄下選擇剛才建立的源文件asm1_a.s。4)基本配置:選擇菜單項Project-Settings..或快捷鍵Alt+F7,彈出工程設置對話框。在工程設置對話框中,選擇Processor設置對話框,按照圖3-2所示,進行目標板所用處理器的配置。圖3-2新的工作區處理器配置5)生成目標代碼:選擇菜單項Build-Buildasm1_a或快捷鍵F7,生成目標代碼。

II叫圜蠢I。雇圖3-3EmbestIDE編譯按鈕面板6)調試設置:選擇菜單項Project-Settings..或快捷鍵Alt+F7,彈出工程設置對話框。在工程設置對話框中,選擇Remote設置對話框,按照圖3-4所示對調試設備模塊進行設置。圖3-4圖3-4新工作區仿真器配置選擇Debug設置對話框,按照下面各圖進行調試模塊配置。三]Processor|RemoteDebug|Directory|Compiler]AssembV|>三]Category:(GeneralSymbolfile:|.\debug\asm1_a.elf …|ActionafterconnectedGNone「Autodownload「CommandscriptI 」(a)連接相關配置(b)下載相關配置圖3-5新工作區調試器配置注意:Symbolfile'jDownloadfile設置應該相同,用戶可以從Linker頁面拷貝系統默認的輸出文件配置:且該實驗輸入下載地址為0x8000,即為AS默認的代碼段起始地址。由于匯編和鏈接選項在本實驗中沒有進行配置,完全使用其默認選項,所以,代碼段是從0x8000開始的,卜載地址應該它保持一致。7)選擇Debug菜單RemoteConnect進行連接軟件仿真器,執行Download命令下載程序,并打開寄存器窗口。打開memory窗口,觀察地址0x8000~0x801f的內容,與地址OxffO~Oxfff的內容。8)單步執行程序并觀察和記錄寄存器與memory的值變化。9)結合實驗內容和相關資料,觀察程序運行,通過實驗加深理解ARM指令的使用。10)理解和掌握實驗后,完成實驗練習題。.6實驗參考程序實驗A參考程序:/*********************************************************************************************TOC\o"1-5"\h\zNAME: asm1_a.s *Author: Embest *Desc: ARMinstructionexamplesHistory: shw.He2005.02.22 */*****************★*****?*?*****★************?*?***?*******★**?*★**★★*★★**?***★**★★**?********

constantdefine/* */.equx,45rx=45*/.equy,64/*y=647.equstack_top,0x1000/*definethetopaddressforstacks*/.global_startrcode */r */.text_start:movsp,#stack_toprcodestart*/movr0t#xi*putxvalueintoR0*/strr0,[sp]rsavethevalueofR0intostacks*/movr0,#y/*putyvalueintoR0*/Idrr1,[sp]rreadthedatafromstack,andputitintoR1*/addr0,rO,r1strr0,[sp]stop:bstop/*endthecode,cycling*/.end.7練習題.編寫程序循環對R4?R11進行累加8次賦值,R4?R11起始值為1?8,每次加操作后把R4?R11的內容放入SP棧中,SP初始設置為0x800。最后把R4?R11用LDMFD指令清空賦值為0。.更改實驗A中x、y的值,觀察執行結果。C語言程序實驗一實驗目的學會使用EmbestIDE編寫簡單的C語言程序并進行調試:學會編寫和使用命令腳本文件;掌握通過memory/register/watch/variable窗U分析判斷運行結果。實驗設備硬件:PC機。軟件:EmbestIDEProARM集成開發環境,Windows98/2000/NT/XP,實驗內容利用命令腳本初始化棧指針,并使用c語言完成延時函數。實驗原理.命令腳本文件用戶在集成環境與目標板連接時、軟件調試過程中以及復位目標板后,有時需要集成環境自動完成一些特定的功能,比如復位目標板、清除看門狗、屏蔽中斷寄存器、存儲區映射等,這些特定的功能可以通過執行一組命令序列完成,保存一組命令序列的文本文件稱為命令腳本文件(EmbestlDE使用.cs作為命令腳本文件擴展名)。命令腳本文件中各行以半角格式的“;”號開始作為注釋內容,分號前是一條命令。凡是可以在調試命令窗口使用的命令,都可以在腳本文件中使用,包括執行腳本文件命令"SCRIPT”。調試命令及詳細請參照EmbestIDE所帶的文檔UserGuide.chm中“調試命令列表”一節。命令腳本文件執行時按照命令在腳本文件中排列的先后順序自動連續地執行。.命令腳本文件的執行方法命令腳本文件有兩種執行方法:在命令輸入窗口,輸入:script腳本文件名在項目設置對話框調試屬性頁指定連接后的行為(Actionafterconnected),此時,可選擇命令腳本文件(Commandscript),并在編輯框中設定命令腳本文件名,則在IDE與目標系統連接后首先自動執行指定的腳本文件。3.常用命令介紹GO-執行程序說明: 從當前PC執行目標程序。MEMWRITE-存儲區寫語法: memwrite[-e]地址數值說明: 向存儲區指定地址寫入數值。選項: -e大印第安方式寫入示例: memwrite0x10000x5A向地址0x1000處寫入數值0x5Amemwrite-e0x20000000x22334455等效于memwrite0x20000000x55443322REFRESH-刷新窗口說明: 刷新所有窗口命令,調試命令執行后,各窗口相關內容并不更新,用戶可以調用本命令刷新界面各窗口保持與實際內容一致。REGWRITE-寄存器寫語法: regwrite寄存器名稱寄存器值示例: regwritepc0x3840向PC寄存器寫入數值0x3840RESET-復位目標設備STOP-停止執行程序2.5實驗操作步驟1)參考前面實驗創建新的工程(工程名為C1);2)按照參考程序,編寫源文件Cl.c和Cl.cs?并把它們加入工程里面。Cl.cs加在工程根目錄即可。3)參考前面例子進行標準的設置,其中需要注意的是,在調試Debug對話框設置的時候,增加連接后自動執行腳本文件:Debug|Debug|Directory|Compiler|ProcessorRemote「None「AutodownloadGCommandscript4)參考前面實驗步驟進行編譯;5)下載,打開Memory/Register/Watch/Variable窗口,單步執行,通過memory/register/watch/variable窗口分析判斷結果,在watch框中輸入要觀察變量I和變量J的值,并記錄下來。特別注意在variable窗口觀察變量I的變化并記錄下來;6)結合實驗內容和相關資料,觀察程序運行,通過實驗;7)理解和掌握實驗后,完成實驗練習題。2.6實驗參考程序c1.c參考源代碼:/*********************************************************************************************File:c1.cAuthor:embestDesc:clanguageexample1History:*********************************************************************************************/TOC\o"1-5"\h\zr 7r functiondeclare 7/* 7voiddelay(intnllme);/*********************************************************************************************name: __starttunc: entry pointpara: noneret: nonemodify:comment:*********************************************************************************************/_start()(inti=5;for(;;){delay(i);)/*********************************************************************************************name: delaytunc: delaysometimepara: nlime-inputret: nonemodify:comment:*********************************************************************************************/voiddelay(nTme)(inti,j=0;for(i=0;i<nlime;i++){forg=0;j<10;j++)())}C1.cs參考源代碼stop ;stoptargetboardregwritesp0x1000;initializethesp,sp=0x10003.2.7練習題參考匯編實驗,編寫程序,實現從匯編語言中使用B或BL命令跳轉到C語言程序的Main。函數中執行,并從Main。函數中調用delay。函數;調試時使用common目錄下ev40boot.cs命令腳本文件,觀察該命令腳本文件所完成的存儲單元配置的情況。第四章基本接口實驗存儲器實驗.1實驗目的通過實驗熟悉ARM的內部存儲空間分配。熟悉使用寄存器配置存儲空間的方法。掌握對存儲區進行訪問的方法。.2實驗設備硬件:EmbestArmEduKit-lI實驗平臺,EmbestARM標準/增強型仿真器套件,PC機。軟件:EmbestIDEProARM集成開發環境,Windows98/2000/NT/XP?4.1.3實驗內容掌握S3C44B0X處理器對存儲空間的配置和讀寫訪問的方法:熟練使用命令腳本文件對ARM存儲控制寄存器進行正確配置;使用匯編編程,對RAM按字、半字和字節讀寫;C語言編程,對RAM按字、半字和字節讀寫。.4實驗原理.存儲控制器0x1000-00000x0?00_00000x0c00_00000x0a00_00000x0800.00000x0600.00000x0400,00000x0200.00000x01c0_00000x0000_0000NOTE:SROMmeansROMorSRAMtypememorySRCMCRAM'SDRAM

(nGCS7)SROM'CRAM'SDRAM

(nGCS6)0x1000-00000x0?00_00000x0c00_00000x0a00_00000x0800.00000x0600.00

溫馨提示

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

評論

0/150

提交評論