![嵌入式實(shí)驗(yàn)指導(dǎo)書計(jì)算機(jī)專業(yè)08版_第1頁](http://file4.renrendoc.com/view/9ba6270eb808644482d0fb3f7dc502fe/9ba6270eb808644482d0fb3f7dc502fe1.gif)
![嵌入式實(shí)驗(yàn)指導(dǎo)書計(jì)算機(jī)專業(yè)08版_第2頁](http://file4.renrendoc.com/view/9ba6270eb808644482d0fb3f7dc502fe/9ba6270eb808644482d0fb3f7dc502fe2.gif)
![嵌入式實(shí)驗(yàn)指導(dǎo)書計(jì)算機(jī)專業(yè)08版_第3頁](http://file4.renrendoc.com/view/9ba6270eb808644482d0fb3f7dc502fe/9ba6270eb808644482d0fb3f7dc502fe3.gif)
![嵌入式實(shí)驗(yàn)指導(dǎo)書計(jì)算機(jī)專業(yè)08版_第4頁](http://file4.renrendoc.com/view/9ba6270eb808644482d0fb3f7dc502fe/9ba6270eb808644482d0fb3f7dc502fe4.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
嵌入式實(shí)驗(yàn)指導(dǎo)書(計(jì)算機(jī)專業(yè)適用)08版計(jì)算機(jī)專業(yè)適用信息科學(xué)與工程學(xué)院2008年4月目錄目錄 2第一章嵌入式系統(tǒng)開發(fā)與應(yīng)用概TOC\o"1-5"\h\z述 31.1嵌入式系統(tǒng)開發(fā)與應(yīng)用 32基于ARM的嵌入式開發(fā)環(huán)境概述 3第二章EmbestARM實(shí)驗(yàn)教學(xué)系統(tǒng) 5教學(xué)系統(tǒng)介紹 5教學(xué)系統(tǒng)安裝 ...103教學(xué)系統(tǒng)的硬件電路 112.4集成開發(fā)環(huán)境使用說TOC\o"1-5"\h\z明 12第三章嵌入式軟件開發(fā)基礎(chǔ)實(shí)驗(yàn) 261ARM匯編指令實(shí)驗(yàn)一 262C語言程序?qū)嶒?yàn)32第四章基本接口實(shí)驗(yàn) 36存儲(chǔ)器實(shí)驗(yàn) 36I/O接口實(shí)驗(yàn) 46數(shù)碼管顯示實(shí)驗(yàn) ...53第五章人機(jī)接口實(shí)驗(yàn) ????????571液晶顯示實(shí)驗(yàn) 575x4鍵盤控制實(shí)驗(yàn) 70觸摸屏控制實(shí)驗(yàn) ...74第六章實(shí)時(shí)操作系統(tǒng)實(shí)驗(yàn) ..831uC/OS-II應(yīng)用實(shí)驗(yàn) 832第一章嵌入式系統(tǒng)開發(fā)與應(yīng)用概述1.1嵌入式系統(tǒng)開發(fā)與應(yīng)用以嵌入式計(jì)算機(jī)為技術(shù)核心的嵌入式系統(tǒng)是繼網(wǎng)絡(luò)技術(shù)之后,又一個(gè)IT領(lǐng)域新的技術(shù)發(fā)展方向。由于嵌入式系統(tǒng)具有體積小、性能強(qiáng)、功耗低、可靠性高以及面向行業(yè)具體應(yīng)用等突出特征,目前已經(jīng)廣泛地應(yīng)用于軍事國防、消費(fèi)電子、信息家電、網(wǎng)絡(luò)通信、工業(yè)控制等各個(gè)領(lǐng)域。嵌入式的廣泛應(yīng)用可以說是無所不在。就我們周圍的日常生活用品而言,各種電子手表、電話、手機(jī)、PDA、洗衣機(jī)、電視機(jī)、電飯鍋、微波爐、空調(diào)器都有嵌入式系統(tǒng)的存在,如果說我們生活在一個(gè)充滿嵌入式的世界,是毫不夸張的。據(jù)統(tǒng)計(jì),一般家用汽車的嵌入式計(jì)算機(jī)在24個(gè)以上,豪華汽車的在60個(gè)以上。ARM系列處理器核是英國先進(jìn)RISC機(jī)器公司(AdvancedRISCMachines,ARM)的產(chǎn)品。ARM公司自成立以來,一直以IP(IntelligenceProperty)提供者的身份向各大半導(dǎo)體制造商出售知識(shí)產(chǎn)權(quán),而自己從不介入芯片的生產(chǎn)銷售,它提供一些高性能、低功耗、低成本和高可靠性的RISC處理器核、外圍部件和系統(tǒng)級(jí)芯片的應(yīng)用解決設(shè)計(jì)方案。ARM處理器核具有低功耗、低成本等卓越性能和顯著優(yōu)點(diǎn),越來越多的芯片廠商早已看好ARM的前景。目前非常流行的ARM芯核有ARM7TDMI,ARM720T,ARM9TDMI,ARM920T,XScale等。此外,ARM芯片還獲得了許多實(shí)時(shí)操作系統(tǒng)(RealTimeOperatingSystem)供應(yīng)商的支持,比較知名的有:WindowsCE、uCLinux、VxWorks、uC/OS等。ARM公司具有完整的產(chǎn)業(yè)鏈,ARM的全球合作伙伴主要為半導(dǎo)體和系統(tǒng)伙伴、操作系統(tǒng)伙伴、開發(fā)工具伙伴、應(yīng)用伙伴、ARM技術(shù)共享計(jì)劃(ATAP),ARM的緊密合作伙伴已發(fā)展為122家半導(dǎo)體和系統(tǒng)合作伙伴、50家操作系統(tǒng)合作伙伴,35家技術(shù)共享合作伙伴,并在2002年在上海成立中國全資子公司。早在1999年,ARM就已突破L5億個(gè),市場(chǎng)份額超過了50%,而在最新的市場(chǎng)調(diào)查表明,在2001年度里,ARM占據(jù)了整個(gè)32、64位嵌入式微處理器市場(chǎng)的75%,在2002年度里,占據(jù)了整個(gè)32、64位嵌入式微處理器市場(chǎng)的79.5%,全世界已使用了20多億個(gè)ARM核。ARM已經(jīng)成為業(yè)界的龍頭老大,“每個(gè)人口袋中裝著ARM”,是毫不夸張的。因?yàn)閹缀跛械氖謾C(jī)、移動(dòng)設(shè)備、PDA幾乎都是用具有ARM核的系統(tǒng)芯片開發(fā)的。2基于ARM的嵌入式開發(fā)環(huán)境概述1交叉開發(fā)環(huán)境作為嵌入式系統(tǒng)應(yīng)用的ARM處理器,其應(yīng)用軟件的開發(fā)屬跨平臺(tái)開發(fā),因此需要一個(gè)交叉開發(fā)環(huán)境。交叉開發(fā)是指在一臺(tái)通用計(jì)算機(jī)上進(jìn)行軟件的編輯編譯,然后下載到嵌入式設(shè)備中進(jìn)行運(yùn)行調(diào)試的開發(fā)方式。用來開發(fā)的通用計(jì)算機(jī)可以選用比較常見的PC機(jī)、工作站等,運(yùn)行通用的Windows或Unix操作系統(tǒng)。開發(fā)計(jì)算機(jī)一般稱宿主機(jī),嵌入式設(shè)備稱為目標(biāo)機(jī),3在宿主機(jī)上編譯好的程序,下載到目標(biāo)機(jī)上運(yùn)行,交叉開發(fā)環(huán)境提供調(diào)試工具對(duì)目標(biāo)機(jī)上運(yùn)行的程序進(jìn)行調(diào)試。交叉開發(fā)環(huán)境一般由運(yùn)行于宿主機(jī)上的交叉開發(fā)軟件(最少必須包含編譯調(diào)試模塊)、宿主機(jī)到目標(biāo)機(jī)的調(diào)試通道組成。運(yùn)行于宿主機(jī)上的交叉開發(fā)軟件最少必須包含編譯調(diào)試模塊,其編譯器為交叉編譯器。作為宿主機(jī)的一般為基于x86體系的桌上型計(jì)算機(jī),而編譯出的代碼必須在ARM體系結(jié)構(gòu)的目標(biāo)機(jī)上運(yùn)行,這就是所謂的交叉編譯了。在宿主機(jī)上編譯好目標(biāo)代碼后,通過宿主機(jī)到目標(biāo)機(jī)的調(diào)試通道將代碼下載到目標(biāo)機(jī),然后由運(yùn)行于宿主機(jī)的調(diào)試軟件控制代碼在目標(biāo)機(jī)上運(yùn)行調(diào)試。為了方便調(diào)試開發(fā),交叉開發(fā)軟件一般為一個(gè)整合編輯、編譯匯編鏈接、調(diào)試、工程管理及函數(shù)庫等功能模塊的集成開發(fā)環(huán)境IDE(IntegratedDevelopmentEnvironment)o模擬開發(fā)環(huán)境模擬開發(fā)環(huán)境建立在交叉開發(fā)環(huán)境基礎(chǔ)之上,是對(duì)交叉開發(fā)環(huán)境的補(bǔ)充。這時(shí),除了宿主機(jī)和目標(biāo)機(jī)之外,還需要提供一個(gè)在宿主機(jī)上模擬目標(biāo)機(jī)的環(huán)境,使得開發(fā)好的程序直接在這個(gè)環(huán)境里運(yùn)行調(diào)試。軟件模擬不可能完全代替真正的硬件環(huán)境,這種模擬調(diào)試只能作為一種初步調(diào)試,主要是用作用戶程序的模擬運(yùn)行,用來檢查語法、程序的結(jié)構(gòu)等簡(jiǎn)單錯(cuò)誤,用戶最終還必須在真實(shí)的硬件環(huán)境中實(shí)際運(yùn)行調(diào)試,完成整個(gè)應(yīng)用的開發(fā)。評(píng)估電路板評(píng)估電路板,也稱作開發(fā)板,一般用來作為開發(fā)者學(xué)習(xí)板、實(shí)驗(yàn)板,可以作為應(yīng)用目標(biāo)板出來之前的軟件測(cè)試、硬件調(diào)試的電路板。尤其是對(duì)應(yīng)用系統(tǒng)的功能沒有完全確定、初步進(jìn)行嵌入式開發(fā)且沒有相關(guān)開發(fā)經(jīng)驗(yàn)的非常重要。開發(fā)評(píng)估電路板并不是ARM應(yīng)用開發(fā)必須的,對(duì)于有經(jīng)驗(yàn)的工程師完全可以自行獨(dú)立設(shè)計(jì)自己的應(yīng)用電路板和根據(jù)開發(fā)需要設(shè)計(jì)實(shí)驗(yàn)板。選購合適于自己實(shí)際應(yīng)用的開發(fā)板可以加快開發(fā)進(jìn)度,可以減少自行設(shè)計(jì)開發(fā)的工作量。嵌入式操作系統(tǒng)很多初學(xué)者認(rèn)為嵌入式開發(fā)必須采用嵌入式操作系統(tǒng)。實(shí)際上,一個(gè)嵌入式應(yīng)用是否采用嵌入式操作系統(tǒng),采用哪種嵌入式操作系統(tǒng)完全由項(xiàng)目的復(fù)雜程度、實(shí)時(shí)性要求、應(yīng)用軟件規(guī)模、目標(biāo)板硬件資源以及產(chǎn)品成本等因素決定。嵌入式操作系統(tǒng)一般可以提供內(nèi)存管理、多任務(wù)管理、外圍資源管理,給應(yīng)用程序設(shè)計(jì)帶來很多好處,但嵌入式操作系統(tǒng)同時(shí)也會(huì)占用一定的系統(tǒng)資源,并且要在用戶自己的目標(biāo)板上運(yùn)行起來,并基于操作系統(tǒng)來設(shè)計(jì)自己的應(yīng)用程序,也會(huì)相應(yīng)地帶來很多新的問題。所以對(duì)于不太復(fù)雜的應(yīng)用完全可以不用操作系統(tǒng),而對(duì)于應(yīng)用軟件規(guī)模較大的場(chǎng)合,采用操作系統(tǒng)則可以省掉很多麻煩。一般來說一套具備最基本功能的交叉開發(fā)環(huán)境是ARM嵌入式開發(fā)必不可少的,至于嵌入式實(shí)時(shí)操作系統(tǒng)、評(píng)估板等其他開發(fā)工具則可以根據(jù)應(yīng)用軟件規(guī)模和開發(fā)計(jì)劃選用。4第二章EmbestARM實(shí)驗(yàn)教學(xué)系統(tǒng)2.1教學(xué)系統(tǒng)介紹
EmbestARM教學(xué)系統(tǒng)包括EmbestIDE集成開發(fā)環(huán)境,EmbestJTAG仿真器,F(xiàn)lash編程器,EmbestArmEduKitII開發(fā)板、各種連接線、電源適配器以及實(shí)驗(yàn)指導(dǎo)書等?;緦?shí)驗(yàn)?zāi)P褪疽鈭D如2T所示:圖2-1實(shí)驗(yàn)?zāi)P褪疽鈭D1.1EmbestIDE集成開發(fā)環(huán)境1)EmbestIDE開發(fā)環(huán)境界面如圖2-2所示&r”ilgrjF======『f?ircAE::?*“二”三1)EmbestIDE開發(fā)環(huán)境界面如圖2-2所示&r”ilgrjF======『f?ircAE::?*“二”三圖2-2EmbestIDE開發(fā)環(huán)境軟件界面EmbestIDE主要特征EmbestIDE可在Windows98、2000、NT及XP等操作系統(tǒng)上運(yùn)行,主要支持ARM系列處理器。對(duì)于ARM系列處理器,EmbestIDE目前支持ARM7以及ARM9系列。EmbestIDEforARM主要特性如下:,支持開發(fā)語言:C和匯編。,界面友好,使用方便:類似MSVisualStudio的用戶界面。,工程管理器:圖形化的工程管理工具,負(fù)責(zé)應(yīng)用源程序的文件組織和管理,提供編譯、鏈接、庫文件的設(shè)置窗口,可在一個(gè)工作區(qū)中同時(shí)管理多個(gè)應(yīng)用軟件和庫工程。,源碼編輯器:標(biāo)準(zhǔn)的文本編輯功能,支持語法關(guān)鍵字、關(guān)鍵字色彩顯示等。IDE同時(shí)提供了高效的FindinFiles引擎,可迅速查找定位指定的字符串信息。,編譯工具:集成著名優(yōu)秀自由軟件GNU的GCC編譯器,并經(jīng)過優(yōu)化和嚴(yán)格測(cè)試,運(yùn)行在Win32環(huán)境;同時(shí)兼容ARMSDT2.51編譯器,可以方便ARMSDT及ADS的用戶在EmbestIDE下編譯工程代碼。IDE提供了圖形化的編譯器開關(guān)設(shè)置界面,用戶可以簡(jiǎn)單、直觀、快捷地完成工程編譯選項(xiàng)設(shè)置。編譯信息的輸出,條理清晰,可迅速定位產(chǎn)生語法錯(cuò)誤的源文件行。,調(diào)試器:提供對(duì)ARMAXD調(diào)試器的支持,可以方便使用EmbestJTAG仿真器調(diào)試ARMSDT及ADS環(huán)境的工程代碼。源碼級(jí)調(diào)試,提供了圖形和命令行兩種調(diào)試式,可進(jìn)行斷點(diǎn)設(shè)置、單步執(zhí)行、異常處理,可查看修改內(nèi)存、寄存器、變量等,可查看函數(shù)棧,可進(jìn)行反匯編等。支持ARM/Thumb指令調(diào)試。,調(diào)試設(shè)備:EmbestJTAG仿真器,連接到主機(jī)的通信接口可以是DB25的LPT口、USB接口或Ethernet接口,另外一端是IDC插頭,連接到目標(biāo)板的JTAG接口。用戶可以使用EmbestIDE配合EmbestJTAG仿真器進(jìn)行應(yīng)用軟件的開發(fā),EmbestIDE同時(shí)也支持一些國內(nèi)外常用的JtagCable線。,脫機(jī)調(diào)試:EmbestIDEforARM帶ARM指令集模擬器,用戶可以在PC上模擬調(diào)試ARM應(yīng)用軟件。,豐富的例程:提供ADI、Atmel,Samsung、CirrusLogic^OKI、Philips、Sharp等多家公司ARM處理器的調(diào)試程序示例和使用說明。,聯(lián)機(jī)幫助:中、英文兩種版本的在線幫助文檔。在嵌入式軟件開發(fā)時(shí),完成設(shè)計(jì)和編碼后,即開始調(diào)試程序,這是軟件開發(fā)的第三步。EmbestIDE的調(diào)試功能包括:,斷點(diǎn)功能:斷點(diǎn)設(shè)置、斷點(diǎn)屏蔽、斷點(diǎn)取消、條件斷點(diǎn)、查看斷點(diǎn)列表。,程序的單步執(zhí)行。,變量監(jiān)視功能:隨程序運(yùn)行同步更新變量,變量值即時(shí)修改。,寄存器即時(shí)查看與修改。提供外圍寄存器編輯器,可查看編輯ARM處理器的外圍寄存器定義,存儲(chǔ)器查看與修改,存儲(chǔ)器內(nèi)容顯示格式定制。,堆棧顯示。,同時(shí)提供圖形界面操作和命令行操作方式。,支持被調(diào)試代碼的多種顯示模式,能以源碼的形式、匯編的形式、混合的形式來顯示程序。,提供外圍寄存器細(xì)節(jié)屬性窗口,調(diào)試過程中可動(dòng)態(tài)修改外圍寄存器單元的配置6,具有與MSVisualStudio類似的調(diào)試菜單功能:Go,Stop,Reset,Stepinto,Stepover,Stepout,RuntoCursor等。,程序的上載和下載。2.1.2EmbestJTAG仿真器JTAG仿真器也稱為JTAG調(diào)試器,是通過ARM芯片的JTAG邊界掃描口進(jìn)行調(diào)試的設(shè)備。"AG仿真器連接比較方便,通過現(xiàn)有的JTAG邊界掃描口與ARMCPU核通信,屬于完全非插入式(即不使用片上資源)調(diào)試,它無需目標(biāo)存儲(chǔ)器,不占用目標(biāo)系統(tǒng)的任何端口,而這些是駐留監(jiān)控軟件所必需的。另外,由于JTAG調(diào)試的目標(biāo)程序是在目標(biāo)板上執(zhí)行,仿真更接近于目標(biāo)硬件,因此,許多接口問題,如高頻操作限制、AC和DC參數(shù)不匹配,電線長(zhǎng)度的限制等被最小化了。使用集成開發(fā)環(huán)境配合JTAG仿真器進(jìn)行開發(fā)是目前采用最多的一種調(diào)試方式。EmbestJTAG仿真器如下圖所示。
(a)EmbestEmulatorforARM(b)EmbestPowerICEforARM???, FMKJiilmmIUUNetICEM二 -U- *一一 -(c)EmbestUnetICEforARM圖2-3EmbestJTAG仿真器圖EmbestJTAG仿真器目前分為三種類型,包括標(biāo)準(zhǔn)型(EmbestEmulatorforARM),增強(qiáng)型(EmbestPowerlCEforARM)和通用型(EmbestUnetICEforARM),主要區(qū)別在于下載調(diào)試的速度不同。其中EmbestEmulatorforARM,EmbestPowerlCEforARM根據(jù)采用打印機(jī)并口(LPTx)與主機(jī)通訊,即仿真器一端是一個(gè)DB25的接口,用于連接計(jì)算機(jī)的并行口,另外一端是20針的IDC插頭,用于連接目標(biāo)板。EmbestUnetICEforARM則
可以使用USB接口或EthernetRJ45接口與主機(jī)通訊,分別使用USB線或交叉網(wǎng)線與主機(jī)USB或RJ45接口相連。EmbestJTAG仿真器面板上面都有三只指示燈,對(duì)當(dāng)前的工作狀態(tài)做出指示。1.3Flash編程器當(dāng)用戶程序編寫完之后,需要把程序生成的二進(jìn)制執(zhí)行文件燒寫到開發(fā)板的Flash存儲(chǔ)器中觀察實(shí)際運(yùn)行結(jié)果。英禧特公司提供了一套完善的Flash編程器,用戶可以直接使用該編程器對(duì)開發(fā)板上的Flash進(jìn)行讀寫(使用時(shí)需要配合前面提到的EmbestJTAG仿真器)。其運(yùn)行界面如圖2-4所示:圖2-4Flash編程器界面Flash編程器的主要特征:,支持所有基于ARM7和ARM9核的處理器,如ATMEL公司AT91系列,SAMSUNG公司S3c系列等。用戶也可以通過選擇自定義(USER->DEFINE),來定義編程使用的CPU類型。,支持大多數(shù)廠家生產(chǎn)的FLASH芯片,如AMD公司AM29系列,INTEL公司28列,SST公司29\39\49系列。英禧特公司可免費(fèi)提供新Flash芯片型號(hào)支支持對(duì)FLASH進(jìn)行空白檢查、擦除、編程、文件校驗(yàn)、計(jì)算校驗(yàn)和、保護(hù)、上載。,支持8位、16位和32位讀寫訪問寬度。,支持Windows98、2000、NT及XP操作系統(tǒng)。81.4EmbestArmEduKitII開發(fā)板EmbestArmEduKitII開發(fā)板是實(shí)驗(yàn)系統(tǒng)的主要硬件平臺(tái),它是英禧特公司開發(fā)的一款全功能ARM開發(fā)板,基于Samsung公司的S3C44B0X處理器(ARM7TDMI),資源豐富。硬件系統(tǒng)包含了嵌入式系統(tǒng)開發(fā)應(yīng)用所需的大部分設(shè)備,如串口、以太網(wǎng)口、USB口、音頻輸出、LCD及TSP觸摸屏、4*4的小鍵盤、固態(tài)硬盤、大容量的Flash和SDRAM等等。用戶不僅可以在該硬件平臺(tái)上完成實(shí)驗(yàn)系統(tǒng)提供的實(shí)驗(yàn)例子,還可以參考該平臺(tái)設(shè)計(jì)自己的目標(biāo)系統(tǒng)。該硬件平臺(tái)如下圖所示:圖2-5實(shí)驗(yàn)系統(tǒng)硬件平臺(tái)EmbestArmEduKit11開發(fā)板的基本資源如下:,電源:外部5V電源供電或者由USB接PC供電,電源指示LED以及500mA保險(xiǎn)絲,lMX16bitFlash,4XlMX16bitSDRAM,4KbitIICBUS的串行EEPROM,2個(gè)串口,其中一個(gè)為簡(jiǎn)單接口,一個(gè)為全接線接口,可跳接RS232MODEM,復(fù)位開關(guān),兩個(gè)中斷按鈕,兩個(gè)LED,外部IDE硬盤接口,LCD及TSP觸摸屏接口9,20針JTAG接口,USB連接器,4X4鍵盤接口,4個(gè)2X20PINCPU擴(kuò)展接口,10M以太網(wǎng)接口,8段數(shù)碼管,MICROPHONE輸入口,IIS音頻信號(hào)輸出口,可接雙聲道SPEAKER,固態(tài)硬盤16Mx8bit,320*240帶觸摸功能的顯示屏1.5各種連接線與電源適配器實(shí)驗(yàn)系統(tǒng)除了提供以上的組件以外,還提供了各種連接時(shí)候需要的電纜線。包括直通網(wǎng)線,USB線,串口線,并口線和兩根JTAG線(分別是20針和14針接□)o實(shí)驗(yàn)系統(tǒng)還提供一個(gè)5V電源適配器(EmbestArmEduKitII實(shí)驗(yàn)板用)2.2教學(xué)系統(tǒng)安裝EmbestARM教學(xué)系統(tǒng)包括EmbestIDE集成開發(fā)環(huán)境,F(xiàn)lash編程器,EmbestJTAG仿真器,EmbestEduKitII開發(fā)板、各種連接線及電源適配器。其中EmbestIDE和Flash編程器是屬軟件平臺(tái)部分,其余屬于硬件平臺(tái)部分。本章主要介紹如何安裝實(shí)驗(yàn)系統(tǒng)的軟件平臺(tái)、如何搭建和如何進(jìn)行軟件平臺(tái)與硬件平臺(tái)的連接。軟件平臺(tái)的搭建包括兩個(gè)部分EmbestIDE集成開發(fā)環(huán)境的安裝EmbestFlash編程器的安裝軟件安裝完畢后,請(qǐng)?jiān)敿?xì)閱讀相關(guān)軟件說明及軟件使用手冊(cè)。下面介紹如何進(jìn)行軟件平臺(tái)和硬件平臺(tái)的連接。,實(shí)驗(yàn)軟件平臺(tái)和硬件平臺(tái)的連接如圖2-1所示,PC端與仿真器通過實(shí)驗(yàn)系統(tǒng)提供的并口線連接,仿真器和開發(fā)板通過一根20針的JTAG線連接。其中需要注意:1)開發(fā)板使用5VDC電源供電,建議使用實(shí)驗(yàn)系統(tǒng)提供的變壓器2)仿真器側(cè)面的Jtag跳線撥到20位置3)硬件平臺(tái)最好預(yù)先參照EmbestEduKitII用戶手冊(cè)(在EmbestARM教學(xué)系統(tǒng)光盤中)進(jìn)行基本硬件檢測(cè)102.3教學(xué)系統(tǒng)的硬件電路3.1概述EMBESTARMEDUKIT?教學(xué)試驗(yàn)平臺(tái)是一款功能強(qiáng)大的32位的嵌入式開發(fā)板,里面采用了SAMSUNG公司的以ARM7TDMI-S為內(nèi)核的處理器S3C44B0X,同時(shí)可以兼容S3c2410,具有JTAG調(diào)試等功能。板上提供了一些鍵盤、LED和串口等一些常用的功能模塊,并且具有IDE硬件接口,CF存儲(chǔ)卡接口、以太網(wǎng)接口和SD卡接口等等,對(duì)用戶在32位ARM嵌入式領(lǐng)域進(jìn)行開發(fā)試驗(yàn)非常方便。功能特點(diǎn),使用CPU擴(kuò)展接口,可以使用SAMSUNG公司的S3c44B0X和S3C24101,系統(tǒng)核心板包括SDRAM、CPU、核心電壓模塊、實(shí)時(shí)時(shí)鐘、系統(tǒng)跳線、系統(tǒng)時(shí)鐘、核心板接口等;,SDRAM用量與CPU有關(guān),2410采用64M,44B0采用8/16M兼容芯片為HY57V561620或HY57V641620;,完全自主設(shè)計(jì)的軟硬件系統(tǒng),可以支持"AG仿真技術(shù),支持ADS、SDT和IDE等集成環(huán)境開發(fā);,具有2/4M兼容的NorFlash和8/16/32/64/128M兼容的NandFlash;,兩個(gè)以太網(wǎng)口,一個(gè)為44B0和4510專用,另外一個(gè)為MII接口的CPU專用,用到的芯片分別是CS8900A和RTL8201;,具有USB接口電路;,具有串行口2個(gè),可以跟上位機(jī)進(jìn)行通訊;,內(nèi)部包含采用UDA1341Ts芯片的音頻電路模塊,方便進(jìn)行音頻調(diào)試試驗(yàn);,內(nèi)部包含IIC器件,采用支持IIC的EEPROM-AT24C08;,顯示部分包括STN/TFT兼容接口的彩色LCD、LED指示燈和6個(gè)數(shù)碼管;,采用變阻器形式的ADC數(shù)據(jù)采集電路;提供實(shí)時(shí)時(shí)鐘控制試驗(yàn);,提供觸摸屏接口電路;,4X4鍵盤,可以擴(kuò)展至64鍵,使用芯片SD7218;,用PWM控制的蜂鳴器電路,可以發(fā)出不同頻率的聲音;,提供用I/O控制的跑馬燈試驗(yàn);,提供由MAX485控制的RS422和RS485接口電路;,提供CAN接口電路,方便組裝現(xiàn)場(chǎng)總線;,具有IDE硬盤接口、CF存儲(chǔ)卡接口、SD卡接口和PS2接口;,WDT控制電路,提供SPI接口;,包含紅外線接口模塊;,具有采用擴(kuò)展子板形式的GPRS模塊電路和GPS模塊電路;11EMBESTARMEDVKIT?教學(xué)試驗(yàn)平臺(tái)主要功能模塊如下:USB控制器以太網(wǎng)接口IIS控制器UART接口IIS控制器RS232驅(qū)動(dòng)器LCD接口1USB控制器LCD接口2PS2接口JTAG調(diào)試接口SPI接口ADC接口以太網(wǎng)控制器SDCARD接口TSP接口PCI接口CFCARD接口S3C44B0X_PACKNANDFLASHCPLDIDE接口LED顯示CAN接口調(diào)試接口CPLDBUFFERLED驅(qū)動(dòng)CAN控制器鍵盤接口復(fù)位AIN輸入電源電源開關(guān)BUZZERVGA圖2-13ARM開發(fā)板功能模塊原理說明(略)硬件結(jié)構(gòu)(略)2.4集成開發(fā)環(huán)境使用說明2.4.1EmbestIDE主框架窗口在Windows98/NT/2000/XP環(huán)境中運(yùn)行EmbestIDEforARM(主應(yīng)用程序?yàn)镋mbestIDE.exe)后,即進(jìn)入EmbestIDE集成開發(fā)環(huán)境。EmbestIDE集成開發(fā)環(huán)境主界面見下圖。12圖2-27EmbestIDE主界面圖EmbestIDE集成開發(fā)環(huán)境的主框架窗口由標(biāo)題欄、菜單條、工具條、工程管理窗口、源文件窗口、輸出窗口和狀態(tài)條等組成。標(biāo)題欄顯示當(dāng)前打開的文件名。工程管理窗口用于顯示當(dāng)前打開工程的有關(guān)信息,包括工程的文件組成等內(nèi)容。源文件窗口用于文本編輯器進(jìn)行C、匯編等源文件的編輯以及調(diào)試時(shí)的源代碼執(zhí)行跟蹤。輸出窗口輸出編譯信息、調(diào)試信息、命令行輸入輸出和輸出一些查詢結(jié)果信息等。主框架窗口的最底端為狀態(tài)欄,用于顯示關(guān)于菜單條、工具條等的簡(jiǎn)單說明信息以及文本編輯器中當(dāng)前光標(biāo)所在的行列號(hào)等。用戶可以通過鼠標(biāo)拖動(dòng),將菜單條、工具條、工程管理窗口、源文件窗口和輸出窗口等隨意更換順序和位置,也可以隱藏其中的某些窗口。在調(diào)試過程中,可以根據(jù)需要打開和關(guān)閉寄存器窗口、函數(shù)棧窗口、變量窗口、存儲(chǔ)器窗口、數(shù)據(jù)觀察窗口以及反匯編窗。2.4.2工程管理.工程管理介紹在EmbestIDE集成開發(fā)環(huán)境中,工程是一個(gè)非常重要的概念,它是用戶組織一個(gè)應(yīng)用的所有源文件、設(shè)置編譯鏈接選項(xiàng)、生成調(diào)試信息文件和最終的目標(biāo)Bin文件的一個(gè)基本結(jié)構(gòu)。一個(gè)工程管理一個(gè)應(yīng)用的所有源文件、庫文件、其它輸入文件,并根據(jù)實(shí)際情況進(jìn)行相應(yīng)的編譯鏈接設(shè)置,一個(gè)工程須生成一個(gè)相對(duì)應(yīng)的目錄,以進(jìn)行文件管理。EmbestIDE工程管理提供以下功能:,將所有源文件組成一個(gè)有機(jī)整體,實(shí)現(xiàn)一個(gè)具體的應(yīng)用。在工程管理窗口中可方便地管理組成工程的所有源文件(見下圖)。,以工程為單位定義設(shè)置應(yīng)用程序的各選項(xiàng),包括目標(biāo)處理器和調(diào)試設(shè)備的選擇與設(shè)置,調(diào)試相關(guān)信息的配置,以及編譯、匯編、鏈接等選項(xiàng)的設(shè)置等。系統(tǒng)提供一個(gè)專門的對(duì)話框來設(shè)置這些選項(xiàng)。Workspace臼啕Workspace'Examples':12projectfs]r:53analogjesttiles?:」CSourceFilesRLJASMSourceFiles省adc_irq.s牙cstartup.s?」HeaderSourceFiles'4LinkScriptFilet:國example」2cHiesuTMTTiiTdaffBF*品interruptfiles?led_blinkfilesCiNertFolder...3uTMTTiiTdaffBF*品interruptfiles?led_blinkfilesCiNertFolder...3國led_swingfilest:留pollingtilesAddHestoProject...5e<asActiveProject?留set_flash_sramfileS扉termfiles圖辱timefiles?國timerfiles?品ucosfilesJetting...DockingViewHxfe杳Properbes圖2-28工程管理窗及右鍵菜單,提供build菜單和工具按鈕,讓用戶輕松進(jìn)行工程的編譯、鏈接。編譯、鏈接信息輸出到輸出窗口中的Build標(biāo)簽窗中(見下圖),編譯鏈接出現(xiàn)的錯(cuò)誤,通過標(biāo)左鍵雙擊錯(cuò)誤信息提示行來定位相應(yīng)的源文件行。RuiIdlnjproj?ct:raatrttvlt4sO:\tliivstHUM.ugenytlvtfcii:ll:\t八1V .c .3<?ratHlIIIIciMiii11IMt7NNNMNN .rll.?f*T.BMiid<chuX:?La5.}tu4-n11圖2-29編譯鏈接輸出子窗口,一個(gè)應(yīng)用工程編譯鏈接后根據(jù)編譯器的設(shè)置生成相應(yīng)格式的調(diào)試信息文件,調(diào)試通過的程序轉(zhuǎn)換成二進(jìn)制格式的可執(zhí)行文件后最終在目標(biāo)板上運(yùn)行。2.工程的創(chuàng)建工程是置于工作區(qū)中管理的,因此在創(chuàng)建一個(gè)工程的同時(shí),會(huì)創(chuàng)建一個(gè)工作區(qū)。操作過程:1)點(diǎn)擊菜單項(xiàng)File>NewWorkspace,系統(tǒng)彈出一個(gè)對(duì)話框,如下圖所示。CreateaNewProtectProjectname:|NewProjectNameLocation:|E:\EmbestlDE\Examples\Samsung\NICancel圖2-30創(chuàng)建一個(gè)新工程142)在Projectname框中輸入新建工程名,Location框中輸入該工程要保存的目錄路0徑,或點(diǎn)擊選擇要保存的目錄路徑。3)點(diǎn)擊0K按鈕,將創(chuàng)建一個(gè)新工程,并同時(shí)創(chuàng)建一個(gè)與工程名相同的工作區(qū)。此時(shí)在工作區(qū)窗口將打開該工作區(qū)和工程。.建立一個(gè)新的源文件點(diǎn)擊菜單項(xiàng)File>New,系統(tǒng)彈出一個(gè)新的、沒有標(biāo)題的文本編輯窗,輸入光標(biāo)位于窗口中第一行,用戶即可編輯輸入源文件代碼。默認(rèn)情況下,在用戶編輯輸入時(shí),按C語法來進(jìn)行顏色加亮顯示。編輯完后,保存該文件。.工程中文件的加入
選擇Project菜單中AddToProject>Files命令,或單擊工程管理窗口中的相應(yīng)右鍵菜單命令,彈出文件選擇對(duì)話框,在工程目錄下使用CTRL鍵同時(shí)選擇要加入的源文件:圖2-31加入的源文件:圖2-31加入源文件到工程中.設(shè)置活動(dòng)工程在一個(gè)工作區(qū)中可以存在幾個(gè)同時(shí)打開的工程,但只有一個(gè)工程處于活動(dòng)狀態(tài),處于活動(dòng)狀態(tài)的工程才可以作為調(diào)試工程。在工作區(qū)窗口中,處于活動(dòng)狀態(tài)的工程,其工程圖標(biāo)將顯示為加亮彩色。如圖2-32所示。0弱Workspace'term':5project(s)?犀term_eb40filestermeb40,ffi國term_eb42 旦3dffl國term_eb55QjNewFolder...?掣?掣termeb63AddFilestoProject...SetasActiveProject活動(dòng)工程彩色圖標(biāo)vDockingView
Hide活動(dòng)工程彩色圖標(biāo)vDockingView
Hide囪Properties圖2-32彩色圖標(biāo)及右鍵菜單設(shè)置活動(dòng)工程15在工作區(qū)窗口中,選中要設(shè)置為活動(dòng)狀態(tài)的工程,點(diǎn)擊鼠標(biāo)右鍵,彈出右鍵菜單,選擇SaveasActiveProject項(xiàng),可將該工程設(shè)置為活動(dòng)狀態(tài),如圖2-32所示..4.3工程基本配置選擇菜單項(xiàng)Project>Settings…或快捷鍵Alt+F7,彈出工程設(shè)置對(duì)話框。在工程設(shè)置對(duì)話框中,選擇相16應(yīng)的配置頁面可對(duì)處理器、仿真器、調(diào)試器、編譯器和匯編器等作配置。如對(duì)處理器Processor設(shè)置對(duì)話框,如圖2-33,其它設(shè)置類同圖2-33處理器配置對(duì)話框.4.4工程的編譯鏈接圖2-54工程build菜單和工具條完成工程的設(shè)置后,就可以對(duì)工程進(jìn)行編譯鏈接了。用戶可以通過選擇主窗口Build菜單項(xiàng)或Build工具條按鈕,編譯相應(yīng)的文件或工程,同時(shí)將在輸出窗的Build子窗口中輸出有關(guān)信息。如果在編譯鏈接過程中,出現(xiàn)任何錯(cuò)誤,包括源文件語法錯(cuò)誤和其它錯(cuò)誤時(shí),編譯鏈接操作立刻終止,并在輸出窗的Build子窗口中提示錯(cuò)誤,如果是語法錯(cuò)誤,用戶可以通過鼠標(biāo)左鍵雙擊錯(cuò)誤提示行,來定位引起錯(cuò)誤的源文件行。172.4.5加載調(diào)試EmbestIDEforARM包含ARM模擬器,支持脫離目標(biāo)板的ARM應(yīng)用模擬調(diào)試,是開發(fā)人員進(jìn)行在線調(diào)試前的開發(fā)輔助工具。在線調(diào)試時(shí),首先將集成環(huán)境與JTAG仿真器連接,點(diǎn)擊Debug>RemoteConnect菜單項(xiàng)可激活連接,然后點(diǎn)擊Download菜單將目標(biāo)文件下載到目標(biāo)系統(tǒng)的指定存儲(chǔ)區(qū)中。如果在工程設(shè)置對(duì)話框調(diào)試選項(xiàng)中設(shè)置了自動(dòng)下載選項(xiàng),EmbestIDE中的調(diào)試器會(huì)在與仿真器連接后自動(dòng)進(jìn)行下載,文件下載后即可進(jìn)行在線仿真調(diào)試。
1.斷點(diǎn)和單步調(diào)試器可以控制目標(biāo)程序的運(yùn)行和停止,并反匯編正在調(diào)試的二進(jìn)制代碼,同時(shí)可通過設(shè)置斷點(diǎn)來控制程序的運(yùn)行,輔助用戶更快的調(diào)試目標(biāo)程序。EmbestIDE的調(diào)試器可以在源程序、反匯編程序、以及源程序匯編程序混合模式窗口中設(shè)置和刪除斷點(diǎn)。設(shè)置斷點(diǎn)的有以下幾種方法:.將鼠標(biāo)指向源程序行左邊需設(shè)定斷點(diǎn)處,鼠標(biāo)形狀會(huì)變成手形指針,然后單擊鼠標(biāo)左鍵,這時(shí),程序行左邊會(huì)出現(xiàn)紅色圓形含黃色條的斷點(diǎn)標(biāo)志。.將光標(biāo)設(shè)置在需要設(shè)置斷點(diǎn)的代碼行處,按F9快捷鍵。.將光標(biāo)設(shè)置在需要設(shè)置斷點(diǎn)的代碼行處,點(diǎn)擊Debug菜單,選取ToggleBreakpoint菜單項(xiàng)。第一次設(shè)置的斷點(diǎn)均為有效斷點(diǎn),設(shè)置了有效斷點(diǎn)的源程序界面如圖2-55所示,青色圈處為有效斷點(diǎn)標(biāo)志://?,量足時(shí)時(shí)間BtSIt?(?TC8_0€SC.tinar.ualue):〃?-一SoftMareTriggeronTieer,,八一generateasoftiT,tri”“simultaneouslyfor??ch chac//X啟動(dòng),時(shí)4atS1_irq_open(TC0_DE5C.p??-iph_id,?.ftlC.SRCTVPE.IHT.EDSE.TRIGGEBEO80圖2-55有效斷點(diǎn)標(biāo)志在源程序窗,若在一條非執(zhí)行語句設(shè)斷點(diǎn),EmbestIDE不會(huì)做出任何響應(yīng)。斷點(diǎn)狀態(tài)分為有效和無效狀態(tài),程序不會(huì)在無效狀態(tài)的斷點(diǎn)停止。無效斷點(diǎn)的源程序界面如圖2-56所示,青色圈處為無效斷點(diǎn)標(biāo)志://*defin*ledatPIOoutputat31.pio.open(4tf>I0.DESC.LEO_NA$K,PIO.OUTPUT):〃*<defineewxtchatPIOinputOat91.pio.open(GPIO.DESC.SU.NASK.PID.INPUT);//*Ti?<rinitializationfits1_tc_open(aTCO_OESC.TC_MftUEITC_CPCTRG|TC_CLKS_HCK8.G.0);圖2-56無效斷點(diǎn)標(biāo)志當(dāng)程序運(yùn)行到有效斷點(diǎn)處時(shí),會(huì)停止在有效斷點(diǎn)處,其界面如圖2-57所示:
18//■?tf1.te.Mr)t?(<TCt.0ESC.〃?--〃?-- .MftaST*tFi■coiiBkaF/X]eTC8_0CSCrjTRIG/MfiOMeLi?r?laMltwouslu,?rMeheftfxchunwii〃?定內(nèi)H?til.sr(uo*^(TCO.XSC|wr&ph.id.T.01C.皿TVFf_nn_£0tt_YltlG?U£DMtTictil圖2-57停止在斷點(diǎn)處的程序界面用戶可使用斷點(diǎn)列表來查詢所有斷點(diǎn)信息和狀態(tài)。點(diǎn)擊Debug菜單,選取“Breakpoint…”菜單項(xiàng),即可彈出斷點(diǎn)列表對(duì)話框,斷點(diǎn)列表對(duì)話框如圖2-58所示:Dreafrpomts3ID!AddreteLocation CountWhen Commant1214567R00000000DxD?0D01?ceVmbewtjdeVnrgettWtSIV… 1214567R00000000TOC\o"1-5"\h\z1)x02000138cAcmbcddeVargeW?d1禮“ (IOxOPOnOI70cVfnbc7tidWxrqf*;\a91W.. (IUxU^UUUl64 cAcmbcstide03ts怪刑母.. (If)xft?nnniRR cymbeaMRurjjetWi恰iv… (IUxOZQUDWB trAriiQbUeiirgtH叫由1L. 00x02000194 cAefnbeMdeV,r0eH\al91V… 0DxOPODDI9c eAcmbesbiirVlargrt^at9lM-- 0ModifyDeleteIDeleteAilModifyDeleteIDeleteAilIViewCodeOK|CancelI圖2-58斷點(diǎn)列表對(duì)話框界面在斷點(diǎn)列表對(duì)話框點(diǎn)擊Delete按鈕將會(huì)刪除當(dāng)前選擇的斷點(diǎn),點(diǎn)擊DeleteALL按鈕將刪除當(dāng)前列表中所有斷點(diǎn),點(diǎn)擊ViewCode按鈕將顯示當(dāng)前所選擇斷點(diǎn)對(duì)應(yīng)的源文件,如果是匯編斷點(diǎn)并且不對(duì)應(yīng)任何源文件,點(diǎn)擊ViewCode按鈕將沒有任何反應(yīng),雙擊某一斷點(diǎn)行或者點(diǎn)擊Modify按鈕,將可修改斷點(diǎn)信息,修改界面如圖2-59所示:BreakpointModifyLocation:|0x0200012c I? !Function:| CancelSourceFile:|e^embestidcMargets\at91\targPEnable Countfb Advanced?圖2-59斷點(diǎn)信息修改界面若要設(shè)置斷點(diǎn)條件屬性,點(diǎn)擊斷點(diǎn)信息修改窗口的Advanced按鈕,將下拉出另一附加窗口,界面如圖2-60所示,“When”輸入欄用于輸入斷點(diǎn)條件表達(dá)式,“Command”輸入欄用于輸入程序到達(dá)斷點(diǎn)時(shí)候系統(tǒng)自動(dòng)執(zhí)行的命令。19圖2-60條件斷點(diǎn)信息修改界面.反匯編窗反匯編窗用于顯示反匯編二進(jìn)制代碼后得到的匯編級(jí)代碼,可以混合源代碼顯示,也可以混合二進(jìn)制代碼顯示。反匯編窗可以設(shè)置和清除匯編級(jí)別斷點(diǎn)。圖2-61源文件與反匯編指令交叉顯示窗口界面.寄存器窗點(diǎn)擊菜單項(xiàng)View>debugwindows>Variables可以打開和關(guān)閉寄存器窗口。寄存器窗用于顯示和修改目標(biāo)系統(tǒng)中處理器內(nèi)核寄存器及其外圍接口寄存器值。寄存器名稱和數(shù)目依賴20于目標(biāo)系統(tǒng)處理器類型,當(dāng)調(diào)試不同目標(biāo)系統(tǒng)的時(shí)候,顯示的內(nèi)容會(huì)不一樣。寄存器值可以按照十進(jìn)制、十六進(jìn)制或者二進(jìn)制格式顯示,并可自動(dòng)刷新或者根據(jù)需要由用戶手動(dòng)刷新顯示。寄存器顯示按照寄存器組方式,每組寄存器都可以分別設(shè)置不同的顯示格式。注:如果在工程配置的Processor設(shè)置對(duì)話框沒有選擇相應(yīng)的處理器廠家及芯片型號(hào),Peripheral窗口將顯示空白寄存器窗的界面如圖2-62所示:兇u?4xflaRe?affl—Current User FIQ——SUC——Abort IRQ——UndeF 出Register[遇,Peripheral|圖2-62寄存器窗界面點(diǎn)擊某一個(gè)寄存器,該寄存器的名字和值會(huì)顯示在寄存器窗上部的輸入欄中,在輸入欄可以改變?cè)摷拇嫫鞯闹?,輸入欄如圖2-63所示:RegR2jnxe50b3014圖2-63寄存器值修改輸入欄當(dāng)寄存器的值被修改后會(huì)以紅色顯示該值,如圖2-64所示:[RegistersRegR4|D..',02i:Cb468曰. Current 金gR0:0x00000001fR1:0x02021224。R2:0x00000000\R3:取@29204。9§?,R5:0x00000001。R6:0x000000000R7:8x00000000.R8:0X00000000,R9:0x00000000R10:0x02020000$R11:0x00000000.R12:0x000080007R13:0X020203F0:.學(xué)R14:0x02033e28
.[內(nèi)5:8x02a2b4784s?:@xu2021ru 二I器Register|晶PeripheralR4:0x0202b468圖2-64寄存器值被修改的寄存器窗界面.存儲(chǔ)區(qū)窗存儲(chǔ)區(qū)窗用于顯示和修改目標(biāo)系統(tǒng)中存儲(chǔ)區(qū)的內(nèi)容。存儲(chǔ)區(qū)窗顯示從輸入的起始地址開始存儲(chǔ)的存儲(chǔ)區(qū)內(nèi)容,顯示長(zhǎng)度根據(jù)存儲(chǔ)區(qū)窗大小而自動(dòng)匹配。存儲(chǔ)區(qū)內(nèi)容可以按照字節(jié)、半字21或字長(zhǎng)度顯示,并同時(shí)以十六進(jìn)制數(shù)和對(duì)應(yīng)的ASCH字符顯示存儲(chǔ)區(qū)內(nèi)容。當(dāng)存儲(chǔ)區(qū)窗顯示范圍內(nèi)的存儲(chǔ)區(qū)數(shù)據(jù)有變化的時(shí)候,會(huì)以紅色顯示這些數(shù)據(jù)。IDE同時(shí)提供了兩個(gè)內(nèi)存顯示窗口Memory1窗和Memory2窗(功能同Memory1窗)。按照字節(jié)長(zhǎng)度顯示的存儲(chǔ)區(qū)窗的界面如圖2-65所示:圖2-65存儲(chǔ)區(qū)窗界面用戶可以在窗口上部的存儲(chǔ)區(qū)起始地址欄修改顯示起始地址,修改后存儲(chǔ)區(qū)窗會(huì)自動(dòng)從新的地址開始顯示存儲(chǔ)區(qū)內(nèi)容;地址輸入欄可以記錄用戶最近查看的10個(gè)起始地址值,用戶可從下拉菜單中選擇想要查看的起始地址。存儲(chǔ)區(qū)起始地址欄如圖2-66所示:圖2-66存儲(chǔ)區(qū)起始地址輸入欄若要修改存儲(chǔ)區(qū)內(nèi)容,可在十六進(jìn)制數(shù)據(jù)欄或者ASCH字符數(shù)據(jù)欄直接修改,修改的數(shù)據(jù)會(huì)立刻寫到對(duì)應(yīng)的存儲(chǔ)區(qū)中,并以紅色顯示改變了的數(shù)據(jù)。.watch窗點(diǎn)擊菜單項(xiàng)View>DebugWindows>Watch可以打開和關(guān)閉數(shù)據(jù)觀察窗(watch)o數(shù)據(jù)觀察窗用于顯示用戶想要觀察的變量或表達(dá)式值,用戶可以隨時(shí)增加或刪除觀察數(shù)據(jù)。觀察數(shù)據(jù)值可以按照十進(jìn)制或者十六進(jìn)制格式顯示。觀察數(shù)據(jù)值會(huì)跟隨用戶的每一步操作而自動(dòng)重新計(jì)算和顯示。數(shù)據(jù)觀察窗有兩個(gè)頁面:“Watch1”和“Watch2",每個(gè)頁面可以單獨(dú)輸入不同的數(shù)據(jù)。觀察數(shù)據(jù)名會(huì)跟隨工程自動(dòng)存儲(chǔ),當(dāng)下一次打開同一個(gè)工程的時(shí)候,會(huì)自動(dòng)調(diào)入原先存在的觀察數(shù)據(jù)名。數(shù)據(jù)觀察窗缺省顯示為十六進(jìn)制,其界面如圖2-67所示:22用戶可以使用以下兩種方法增加觀察數(shù)據(jù):.雙擊數(shù)據(jù)觀察窗最后的空行的名字欄,數(shù)據(jù)觀察會(huì)在此處出現(xiàn)一個(gè)輸入框,輸入數(shù)據(jù)回車或者點(diǎn)擊其它行,調(diào)試器將計(jì)算數(shù)據(jù)值,并顯示在對(duì)應(yīng)的值欄目。.在數(shù)據(jù)觀察窗在點(diǎn)擊鼠標(biāo)右鍵,在數(shù)據(jù)觀察窗菜單中選取“Add”菜單項(xiàng),將彈出輸入對(duì)話框,在其中輸入想要觀察的數(shù)據(jù)或者表達(dá)式。.變量窗點(diǎn)擊菜單項(xiàng)View>DebugWindows>Variables可以打開和關(guān)閉變量窗。變量窗用于顯示全局以及局部變量信息,并可修改變量值。變量窗有兩個(gè)頁面:“Global”和“Local”,分別用于顯示全局變量和函數(shù)局部變量。變量值以及局部變量名會(huì)跟隨用戶的每一步操作而自動(dòng)重新計(jì)算和顯示。當(dāng)變量窗中變量值有變化的時(shí)候,變量窗會(huì)變紅顯示這些數(shù)據(jù)值。變量窗缺省顯示為十六進(jìn)制,其界面如圖2-68所示:23用戶可以察看變量的屬性,其中包括變量名字、變量值和變量類型。用戶可以修改變量值,方法是雙擊要修改的變量值欄,在顯示的輸入框中輸入新值。當(dāng)輸入的數(shù)據(jù)為合法數(shù)據(jù)時(shí)候,調(diào)試器會(huì)修改目標(biāo)系統(tǒng)中對(duì)應(yīng)變量的值,并變紅顯示修改后的數(shù)據(jù)。.函數(shù)棧窗點(diǎn)擊菜單項(xiàng)View>DebugWindows>CallStack可以打開和關(guān)閉函數(shù)棧窗。函數(shù)棧窗用于顯示函數(shù)運(yùn)行調(diào)用關(guān)系,函數(shù)參數(shù)值可以按照十六進(jìn)制或者十進(jìn)制格式顯示。最后調(diào)用的函數(shù)(即當(dāng)前運(yùn)行函數(shù))在窗口最上部的第一行,按照調(diào)用關(guān)系依次往下排列,起始函數(shù)在窗口末的最后一行。函數(shù)棧窗的界面如圖2-69所示(設(shè)置所有函數(shù)參數(shù)屬性顯示):c?usnstructmtest3(intuoidtest2(intz?rr=0x0)intloop_teet(intloop_num:0x5)intt?et1(inta-Bb=8d:8e=0xa.in1intnain()1L. 1 /圖2-69函數(shù)棧窗界面函數(shù)參數(shù)的名字、類型或值都可以單獨(dú)設(shè)置是否顯示。如果關(guān)閉所有函數(shù)參數(shù)顯示,將只顯示函數(shù)名字和返回類型。雙擊函數(shù)棧窗的某一函數(shù)所在行,源文件窗會(huì)顯示出該函數(shù)調(diào)用函數(shù)棧中上一函數(shù)返回后將要執(zhí)行的下一句代碼,并在該源代碼行前面放置一藍(lán)色向右箭頭標(biāo)志(見下圖的青色圓圈包圍處),函數(shù)棧窗同時(shí)會(huì)高亮顯示該函數(shù)棧函數(shù)信息行。雙擊后調(diào)試器界面變化如圖2-70所示:IZ?,?■~“D-UO>RBIZ?,?■~“D-UO>RB圖2-70雙擊函數(shù)行后的調(diào)試器界面244.6Flash編程工具EmbestIDEforARM提供了Flash編程工具,可以在板(onboard)橡除Faish或?qū)⑽募龑懙紽lash中。軟件界面如圖2-71所示FlashProgrammer其他特點(diǎn):,編程配置數(shù)據(jù)的保存和載入。,編程前的寄存器讀取功能和目標(biāo)測(cè)試功能。,FLASH扇區(qū)地址指示功能。,簡(jiǎn)單直接的處理器寄存器設(shè)置界面圖2-71,簡(jiǎn)單直接的處理器寄存器設(shè)置界面圖2-71FlashProgrammer軟件界面25第三章嵌入式軟件開發(fā)基礎(chǔ)實(shí)驗(yàn)1ARM匯編指令實(shí)驗(yàn)一1.1實(shí)驗(yàn)?zāi)康?初步學(xué)會(huì)使用EmbestIDEforARM開發(fā)環(huán)境及ARM軟件模擬器;,通過實(shí)驗(yàn)掌握簡(jiǎn)單ARM匯編指令的使用方法。1.2實(shí)驗(yàn)設(shè)備,硬件:PC機(jī),軟件:EmbestIDEProARM集成開發(fā)環(huán)境,Windows98/2000/NT/XPo3.1.3實(shí)驗(yàn)內(nèi)容,熟悉開發(fā)環(huán)境的使用并使用Idr/str,mov等指令訪問寄存器或存儲(chǔ)單元。,使用add/sub/lsl/lsr/and/orr等指令,完成基本數(shù)學(xué)/邏輯運(yùn)算。3.1.4實(shí)驗(yàn)原理.存儲(chǔ)器格式ARM體系結(jié)構(gòu)可以用兩種方法存儲(chǔ)字?jǐn)?shù)據(jù),分別稱為大端格式和小端格式。1)大端格式在這種格式中,字?jǐn)?shù)據(jù)的高位字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的低位字節(jié)則存放在高地址中,如下圖所示。高地址3123221615870字地址89101184567401230低地址2)小端格式在這種格式中,字?jǐn)?shù)據(jù)的高位字節(jié)存儲(chǔ)在高地址中,而字?jǐn)?shù)據(jù)的低位字節(jié)則存放在低地址中,如下圖所示。高地址3123221615870字地址109887654432100低地址26GNU基礎(chǔ)知識(shí)EmbestIDE集成了GNU匯編器as,編譯器gcc,鏈接器Id。因此,我們寫程序要符合GNU的語法和規(guī)則。關(guān)于as、gcc和Id的具體使用,請(qǐng)參照EmbestIDE所帶的電子文檔ProgRef.chm,在此不再贅述。這里簡(jiǎn)單介紹幾點(diǎn)基本知識(shí):1)程序默認(rèn)入口點(diǎn)為“一start”,代碼段默認(rèn)起始地址為0x80002)as常用偽操作符.equ.equ偽操作為數(shù)字常量、基于寄存器的值和程序中的標(biāo)號(hào)定義一個(gè)字符名稱。語法格式.equsymbol,expr其中,expr為基于寄存器的地址值、程序中的標(biāo)號(hào),32位的地址常量或者32位的常量。Symbol為.equ偽操作為expr定義的字符名稱。示例.equVersion,"0.1”.global及.globl.global,global聲明一個(gè)符號(hào)可以被其他文件引用。相當(dāng)于聲明了一個(gè)全局變量,.globl與相同。語法格式.globalsymbol其中,symbol為聲明的符號(hào)的名稱。它是區(qū)分大小寫的。示例,globalMyAsmFunc?text,text偽操作將操作符開始的代碼編譯到代碼段或代碼段子段(subsection)語法格式.text{subsection)示例.text.end標(biāo)記匯編文件的結(jié)束行,即標(biāo)號(hào)后的代碼不作處理。語法格式.end1.5實(shí)驗(yàn)操作步驟1)新建工程:NewWorkspace,系統(tǒng)彈出一個(gè)運(yùn)行EmbestIDE集成開發(fā)環(huán)境,選擇菜單項(xiàng)File?對(duì)話框,按照?qǐng)D3T所示輸入相關(guān)內(nèi)容。27圖3T新建工作區(qū)點(diǎn)擊0K按鈕,將創(chuàng)建一個(gè)新工程,并同時(shí)創(chuàng)建一個(gè)與工程名相同的工作區(qū)。此時(shí)在工作區(qū)窗口將打開該工作區(qū)和工程。2)建立源文件:點(diǎn)擊菜單項(xiàng)File?New,系統(tǒng)彈出一個(gè)新的、沒有標(biāo)題的文本編輯窗,輸入光標(biāo)位于窗口中第一行,按照實(shí)驗(yàn)參考程序編輯輸入源文件代碼。編輯完后,保存文件asmla.s。3)添加源文件:選擇Project?AddToProject?Files命令,或單擊工程管理窗口中的相應(yīng)右鍵菜單命令,彈出文件選擇對(duì)話框,在工程目錄下選擇剛才建立的源文件asmla.s。4)基本配置:選擇菜單項(xiàng)Project?Settings…或快捷鍵Alt+F7,彈出工程設(shè)置對(duì)話框。在工程設(shè)置對(duì)話框中,選擇Processor設(shè)置對(duì)話框,按照?qǐng)D3-2所示,進(jìn)行目標(biāo)板所用處理器的配置。
圖3-2新的工作區(qū)處理器配置5)生成目標(biāo)代碼:選擇菜單項(xiàng)Build?Buildasml_a或快捷鍵F7,生成目標(biāo)代碼。28圖3-3EmbestIDE編譯按鈕面板6)調(diào)試設(shè)置:選擇菜單項(xiàng)Project?Settings…或快捷鍵Alt+F7,彈出工程設(shè)置對(duì)話框。在工程設(shè)置對(duì)話框中,選擇Remote設(shè)置對(duì)話框,按照?qǐng)D3-4所示對(duì)調(diào)試設(shè)備模塊進(jìn)行設(shè)置。
圖3-4新工作區(qū)仿真器配置選擇Debug設(shè)置對(duì)話框,按照下面各圖進(jìn)行調(diào)試模塊配置。Processor|RemoteDebug|Directory|Compiler|Assemb、Processor|RemoteCategory:Category:Symbolfile:|.\debug\asm1_a.elfActionafterconnectedGSymbolfile:|.\debug\asm1_a.elfActionafterconnectedGNone「Autodownload「Commandscript(a)連接相關(guān)配置29(a)連接相關(guān)配置29Processor|RemoteDebug|Directory|Compiler|Assemb?I>Category:DownloadCategory:DownloadPDownloadverifyPDownloadverifyDownloadfile:.\debug\asm1_a.elfExecuteprogramkom
rDon'tcare「DownloadaddressGProgramentrypoint(b)下載相關(guān)配置圖3-5新工作區(qū)調(diào)試器配置注意:Symbolfile與Downloadfile設(shè)置應(yīng)該相同,用戶可以從Linker頁面拷貝系統(tǒng)默認(rèn)的輸出文件配置;且該實(shí)驗(yàn)輸入下載地址為0x8000,即為AS默認(rèn)的代碼段起始地址。由于匯編和鏈接選項(xiàng)在本實(shí)驗(yàn)中沒有進(jìn)行配置,完全使用其默認(rèn)選項(xiàng),所以,代碼段是從0x8000開始的,下載地址應(yīng)該與它保持一致。7)選擇Debug菜單RemoteConnect進(jìn)行連接軟件仿真器,執(zhí)行Download命令下載程序,并打開寄存器窗口。打開memory窗口,觀察地址0x8000~0x801f的內(nèi)容,與地址0xff0~0xfff的內(nèi)容。8)單步執(zhí)行程序并觀察和記錄寄存器與memory的值變化。9)結(jié)合實(shí)驗(yàn)內(nèi)容和相關(guān)資料,觀察程序運(yùn)行,通過實(shí)驗(yàn)加深理解ARM指令的使用。10)理解和掌握實(shí)驗(yàn)后,完成實(shí)驗(yàn)練習(xí)題。1.6實(shí)驗(yàn)參考程序?qū)嶒?yàn)A參考程序:NAME:asmla.s*Author:Embest*Desc:ARMinstructionexamples*History:shw.He2005.02.22*30/*constantdefine*//* */.equx,45/*x=45*/.equy,64/*y=64*/.equstack_top,0x1000/*definethetopaddressforstacks*/?global_start*//*code*//*- */.text_start:/*codestart*/movsp,#stack_topmovrO,#x/*putxvalueintoR0*/strrO,[sp]/*savethevalueofR0intostacks*/movrO,#y/*putyvalueintoR0*/Idrrl,[sp]/*readthedatafromstack,andputitintoRI*/addrO,rO,rlstrrO,[sp]stop:bstop/*endthecode,cycling*/.end1.7練習(xí)題序循環(huán)對(duì)R4~R11進(jìn)行累加8次賦值,R4?R11起始值為1,8,每次加操作后把R4?R11的內(nèi)容放入SP棧中,SP初始設(shè)置為0x800。最后把R4~R11用LDMFD指令清空賦值為0o驗(yàn)A中x、y的值,觀察執(zhí)行結(jié)果。31C語言程序?qū)嶒?yàn)一1實(shí)驗(yàn)?zāi)康?學(xué)會(huì)使用EmbestIDE編寫簡(jiǎn)單的C語言程序并進(jìn)行調(diào)試;,學(xué)會(huì)編寫和使用命令腳本文件;,掌握通過memory/register/watch/variable窗口分析判斷運(yùn)行結(jié)果。實(shí)驗(yàn)設(shè)備,硬件:PC機(jī)。,軟件:EmbestIDEProARM集成開發(fā)環(huán)境,Windows98/2000/NT/XPo實(shí)驗(yàn)內(nèi)容利用命令腳本初始化棧指針,并使用c語言完成延時(shí)函數(shù)。實(shí)驗(yàn)原理.命令腳本文件用戶在集成環(huán)境與目標(biāo)板連接時(shí)、軟件調(diào)試過程中以及復(fù)位目標(biāo)板后,有時(shí)需要集成環(huán)境自動(dòng)完成一些特定的功能,比如復(fù)位目標(biāo)板、清除看門狗、屏蔽中斷寄存器、存儲(chǔ)區(qū)映射等,這些特定的功能可以通過執(zhí)行一組命令序列完成,保存一組命令序列的文本文件稱為命令腳本文件(EmbestlDE使用.cs作為命令腳本文件擴(kuò)展名)。命令腳本文件中各行以半角格式的“;”號(hào)開始作為注釋內(nèi)容,分號(hào)前是一條命令。凡是可以在調(diào)試命令窗口使用的命令,都可以在腳本文件中使用,包括執(zhí)行腳本文件命令"SCRIPT"。調(diào)試命令及詳細(xì)請(qǐng)參照EmbestIDE所帶的文檔UserGuide.chm中"調(diào)試命令列表”一節(jié)。命令腳本文件執(zhí)行時(shí)按照命令在腳本文件中排列的先后順序自動(dòng)連續(xù)地執(zhí)行。.命令腳本文件的執(zhí)行方法命令腳本文件有兩種執(zhí)行方法:,在命令輸入窗口,輸入:script腳本文件名,在項(xiàng)目設(shè)置對(duì)話框調(diào)試屬性頁指定連接后的行為(Actionafterconnected),此時(shí),可選擇命令腳本文件(Commandscript),并在編輯框中設(shè)定命令腳本文件名,則在IDE與目標(biāo)系統(tǒng)連接后首先自動(dòng)執(zhí)行指定的腳本文件。.常用命令介紹GO-執(zhí)行程序說明:從當(dāng)前PC執(zhí)行目標(biāo)程序。MEMWRITE-存儲(chǔ)區(qū)寫語法:memwrite[-e]地址數(shù)值說明:向存儲(chǔ)區(qū)指定地址寫入數(shù)值。選項(xiàng):-e大印第安方式寫入示例:memwrite0x10000x5A向地址0x1000處寫入數(shù)值0x5A32memwrite-e0x20000000x22334455等效于memwrite0x20000000x554433223)REFRESH-刷新窗口說明:刷新所有窗口命令,調(diào)試命令執(zhí)行后,各窗口相關(guān)內(nèi)容并不更新,用戶可以調(diào)用本命令刷新界面各窗口保持與實(shí)際內(nèi)容一致。REGWRITE-寄存器寫語法:regwrite寄存器名稱寄存器值示例:regwritepc0x3840向PC寄存器寫入數(shù)值0x3840RESET-復(fù)位目標(biāo)設(shè)備STOP-停止執(zhí)行程序3.2.5實(shí)驗(yàn)操作步驟1)參考前面實(shí)驗(yàn)創(chuàng)建新的工程(工程名為C1);2)按照參考程序,編寫源文件Cl.c和Cl.cs,并把它們加入工程里面。Cl.cs加在工程根目錄即可。3)參考前面例子進(jìn)行標(biāo)準(zhǔn)的設(shè)置,其中需要注意的是,在調(diào)試Debug對(duì)話框設(shè)置的時(shí)候,增加連接后自動(dòng)執(zhí)行腳本文件:圖3-10EmbestIDE調(diào)試配置4)參考前面實(shí)驗(yàn)步驟進(jìn)行編譯;335)下載,打開Memory/Register/Watch/Variable窗口,單步執(zhí)行,通過memory/register/watch/variable窗口分析判斷結(jié)果,在watch框中輸入要觀察變量I和變量J的值,并記錄下來。特別注意在variable窗口觀察變量I的變化并記錄下來;6)結(jié)合實(shí)驗(yàn)內(nèi)容和相關(guān)資料,觀察程序運(yùn)行,通過實(shí)驗(yàn);7)理解和掌握實(shí)驗(yàn)后,完成實(shí)驗(yàn)練習(xí)題。2.6實(shí)驗(yàn)參考程序cl.c參考源代碼:***************************File:cl.cAuthor:embestDesc:clanguageexample1History:/*- — — *//*functiondeclare*//* */voiddelay(intnTime);***************************name:startfunc:entrypointpara:noneret:nonemodify:comment:*************************/start()(inti=5;for(;;)delay(i);))34name:delayfunc:delaysometimepara:nTime-inputret:nonemodify:*comment:voiddelay(nTime)(inti,j=0;for(i=0;i<nTime;i++)(for(j=0;j<10;j++)())}CLcs參考源代碼stop;stoptargetboardregwritesp0x1000;initializethesp,sp=0x10002.7練習(xí)題參考匯編實(shí)驗(yàn),編寫程序,實(shí)現(xiàn)從匯編語言中使用B或BL命令跳轉(zhuǎn)到C語言程序的Main。函數(shù)中執(zhí)行,并從Main。函數(shù)中調(diào)用delay()函數(shù);調(diào)試時(shí)使用common目錄下ev40boot.cs命令腳本文件,觀察該命令腳本文件所完成的存儲(chǔ)單元配置的情況。35第四章基本接口實(shí)驗(yàn)4.1存儲(chǔ)器實(shí)驗(yàn)4.1.1實(shí)驗(yàn)?zāi)康?通過實(shí)驗(yàn)熟悉ARM的內(nèi)部存儲(chǔ)空間分配。,熟悉使用寄存器配置存儲(chǔ)空間的方法。,掌握對(duì)存儲(chǔ)區(qū)進(jìn)行訪問的方法。4.1.2實(shí)驗(yàn)設(shè)備,硬件:EmbestArmEduKit-H實(shí)驗(yàn)平臺(tái),EmbestARM標(biāo)準(zhǔn)/增強(qiáng)型仿真器套件,PC機(jī)。,軟件:EmbestIDEProARM集成開發(fā)環(huán)境,Windows98/2000/NT/XPo1.3實(shí)驗(yàn)內(nèi)容掌握S3C44B0X處理器對(duì)存儲(chǔ)空間的配置和讀寫訪問的方法:,熟練使用命令腳本文件對(duì)ARM存儲(chǔ)控制寄存器進(jìn)行正確配置;,使用匯編編程,對(duì)RAM按字、半字和字節(jié)讀寫;,C語言編程,對(duì)RAM按字、半字和字節(jié)讀寫。4.1.4實(shí)驗(yàn)原理1.存儲(chǔ)控制器圖4-1S3C44B0X復(fù)位后的存儲(chǔ)器地址分配36S3C44B0X處理器的存儲(chǔ)控制器可以為片外存儲(chǔ)器訪問提供必要的控制信號(hào),它主要包括以下特點(diǎn):,支持大、小端模式(通過外部引腳來選擇),地址空間:包含8個(gè)地址空間,每個(gè)地址空間的大小為32M字節(jié),總共有256M字節(jié)的地址空間。,所有地址空間都可以通過編程設(shè)置為8位、16位或32位對(duì)準(zhǔn)訪問。,8個(gè)地址空間中,6個(gè)地址空間可以用于ROM、SRAM等存儲(chǔ)器,2個(gè)用于ROM、SRAM、FP/EDO/SDRAM等存儲(chǔ)器。,7個(gè)地址空間的起始地址及空間大小是固定的。,1個(gè)地址空間的起始地址和空間大小是可變的。,所有存儲(chǔ)器空間的訪問周期都可以通過編程配置。,提供外部擴(kuò)展總線的等待周期。,支持DRAM/SDARM自動(dòng)刷新。,支持地址對(duì)稱或非地址對(duì)稱的DRAMo從圖4-1中可以看出,特殊功能寄存器位于0X01C00000到0X02000000的4M空間內(nèi)。Bank0-Bank5的起始地址和空間大小都是固定的,Bank6的起始地址是固定的,但是空間大小和Bank7一樣是可變的,可以配置為2/4/8/16/32M。Bank6和Bank7的詳細(xì)的地址和空間大小的關(guān)系可以參考表4-1表4-1Bank6/Bank7地址大/小ENDIAN模式選擇處理器復(fù)位時(shí)(nRESET為低),通過ENDIAN引腳選擇所使用的ENDIAN模式。ENDIAN引腳通過下拉電阻與Vss連接,定義為L(zhǎng)ittleendian模式;ENDIAN引腳通過上拉電阻和Vdd連接,則定義為Bigendian模式。如表4-2所示。表4-2大/小endian模式ENDIANInputENDIANMode0Littleendian1BigendianBANKO總線寬度BANKO(nGCSO)的數(shù)據(jù)總線寬度可以配置為8位、16位或32位。因?yàn)锽ANKO為啟動(dòng)ROM(映射地址為0X00000000)所在的空間,所以必須在第一次訪問ROM前設(shè)置BANKO數(shù)據(jù)寬度,該數(shù)據(jù)寬度是由復(fù)位后的邏輯電平?jīng)Q定的,表4-3所zjso表4-3數(shù)據(jù)寬度選擇37Citi(OpBOtinq?bOMO(Op?<atioQMode0kBootrmROMD?Uwidth0020118-bk1032bi1,存儲(chǔ)器控制專用寄存器總線寬度/等待控制寄存器(BWSCON)RWD**crl|itonValueH*VS(:uNIMH1CIKXHX)R-AKi.-. AVil [,:MrT寄存器各位功能:[ENDIAN]:只讀,指示系統(tǒng)選定的大/小端模式,0表示小端模式,1表示大端模式。[DWi]:i=0,7,其中DWO為只讀,因?yàn)閎ank。數(shù)據(jù)總線寬度在復(fù)位后已經(jīng)由的電平?jīng)Q定。DW1,DW7可寫,用于配置bankl,bank7的數(shù)據(jù)總線寬度,00表示8位數(shù)據(jù)總線寬度,01表示16位數(shù)據(jù)總線寬度,10表示32位數(shù)據(jù)總線寬度。[SWi]:i=l,7,寫入0則對(duì)應(yīng)的banki等待狀態(tài)不使用,寫入1則對(duì)應(yīng)的banki等待狀態(tài)使能。7,決定SRAM是否使用UB/LB。0表示不使用UB/LB,引腳[14:11]定義[STi]:i=l,為nWBE[3:0];l表示使用UB/LB,引腳[14:11]定義為nBE[3:0]。Bank控制寄存器(BANKCONn:nGCS0-nGCS5)RWStHRMD^KrlptlQnValue?■<l<iRWBunk?ouiilnHtOkiin*r)RANK0州11?RWPank1ainlHil0koMHANK'-ONU1G9QOOCHWRank?oontrrilE。a。rwRANKCihli?RWBank\ixinbnlcxnr??OAHKCd?<kgchBank4ociiliulcmottoHankSauiliulBank控制寄存器(BANKCONn:nGCS6-nGCS7)RpstzAddr?MR'WD?UflpdO?lWValu*BAHKCONe??i>hiRMaxitijfjyMoxin但DAHKC"WCSCMGL「憤DafA78ili<J 7r0x10X4刷新控制寄存器(REFRESH)ReghtefAddressRAMDescrlptonResetValue-3KMiAM',IXW nnif-t—:?'HlBANK大小寄存器(BANKSIZE)Re^istcfAddressR¥VDucripltonRefcvtValueHAHKSI/F'*'1 >?'/■<OMI模式設(shè)置寄存器(MRSR)38RegisterAOdTM£RWD?<crtpeonRttetMRSRE60<1C?C?KV.V.(MGrtAjlitWSt!-ejtel-f:5lk6XftXMksW<ht?nh?,X鉀r.nMn :juhux以上寄存器的詳細(xì)定義可以查看S3C44B0X的數(shù)據(jù)手冊(cè)下面列舉了13個(gè)存儲(chǔ)控制寄存器的配置示例:Idrr0,=SMRDATAIdmiarO,{rl-rl3}
IdrrO,=0x01c80000;BWSCONAddressstmiarO,{rl-rl3}SMRDATA:.long0x22221210;BWSCON.long0x00000600;GCSO.long0x00000700;GCS1.long0x00000700:GCS2.long0x00000700:GCS3.long0x00000700:GCS4.long0x00000700;GCS5.long0x00010000;GCS6,EDODRAM(Tacc=.long0x22221210;BWSCON.long0x00000600;GCSO.long0x00000700;GCS1.long0x00000700:GCS2.long0x00000700:GCS3.long0x00000700:GCS4.long0x00000700;GCS5.long0x00010000;GCS6,EDODRAM(Tacc=1).long0x00018000:GCS7,nouse.long0x00860459:Refresh(REFEN=1,TREFMD=O,Trp=0,Trc=5,Tchr=3).long.long0x0;BankSize,32MB/32MB.long0x20;MRSR6(CL=2).long0x20;MRSR7(CL=2).long0x20;MRSR6(CL=2).long0x20;MRSR7(CL=2)觀察上面寄存器介紹中的寄存器地址可以發(fā)現(xiàn),13個(gè)寄存器分布在從0x01c80000開始的連續(xù)地址空間,所以上面的程序可以利用指令“stmiar0,{rl-rl3)”實(shí)現(xiàn)將配置好的寄存器的值依次寫入到相應(yīng)的寄存器中。存儲(chǔ)器(SROM/DRAM/SDRAM)地址線連接如表4-4所示,數(shù)據(jù)寬度不同,連接方式也不同。表4-4存儲(chǔ)器地址線連接MEMORYADOR.PIMS3C4480XADOR9DAIABUS&1C4490XADDR41&?ltDATABUS&3C4480XADDA.DATABUSAOAlA2AlA2A3AiAlA4A5使用命令腳本文件配置存儲(chǔ)空間在使用仿真器對(duì)目標(biāo)系統(tǒng)進(jìn)行硬件仿真調(diào)試前,需要把代碼下載到目標(biāo)系統(tǒng)的RAM空間中,所以調(diào)試前首先應(yīng)該配置CPU的存儲(chǔ)控制寄存器,初始化可讀寫空間。EmbestIDEProARM集成環(huán)境下可以使用一系列存儲(chǔ)寫命令來完成存儲(chǔ)控制寄存器的配置,稱為命令腳本文件(*.cs,有關(guān)命令腳本文件請(qǐng)參考EmbestIDE在線用戶手冊(cè)),通過命令腳本文件(*.cs)還可以配置目標(biāo)系統(tǒng)的其他CPU控制寄存器,如中斷控制寄存器。39EmbestArmEduKitTI的調(diào)試配置使用的命令腳本文件如下:reset;Resetboardmemwrite0x01D300000x00000000;WTCON(watchdogtimercontrolRegister)disablewarchdogmemwriteOxOlEOOOOC0x07ffffff;INTMSK(disableallinterrupt)memwrite0x01E00024Oxffffffff;Clearallinterruptmemwrite0x01C800000x11110102;BWSCON(BusWidth&WaitStatusControlRegister)memwrite0x01C800040x00000600:BANKCONOmemwrite0x01C800080x00007FFC;BANKCONImemwrite0x01C8000C0x00007FFC;BANKCON2memwrite0x01C800100x00007FFC;BANKCON3memwrite0x01C800140x00007FFC;BANKC0N4memwrite0x01C800180x00007FFC;BANKCON5memwrite0x01C8001C0x00018000;BANKC0N6memwrite0x01C800200x00018000;BANKCON7memwrite0x01C800240x00860459;REFRESHmemwrite0x01C800280x00000010;BANKSIZEmemwrite0x01C8002C0x00000020;MRSRB6memwrite0x01C800300x00000020;MRSRB7,片選信號(hào)設(shè)置EmbestArmEduKit-II實(shí)驗(yàn)板的片選信號(hào)設(shè)置如表4-5所示:表4-5片選信號(hào)設(shè)置片選信號(hào)選擇的接口或器件片選控制寄存器NGCSOFLASHBANKCONONGCS6SDRAMBANKC0
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版數(shù)學(xué)八年級(jí)下冊(cè)《章前引言及 加權(quán)平均數(shù)》聽評(píng)課記錄1
- 人教部編版八年級(jí)道德與法治上冊(cè):7.1《關(guān)愛他人》聽課評(píng)課記錄2
- 蘇教版小學(xué)二年級(jí)下冊(cè)數(shù)學(xué)口算題
- 七年級(jí)生物教學(xué)計(jì)劃
- 工程建設(shè)項(xiàng)目招標(biāo)代理合同范本
- 2025年度二零二五年度食堂檔口租賃合同與食品安全宣傳教育協(xié)議
- 農(nóng)機(jī)合作社入社協(xié)議書范本
- 二零二五年度智能駕駛技術(shù)聘用駕駛員安全合作協(xié)議書
- 2025年度船舶買賣合同中的船舶交易市場(chǎng)分析及預(yù)測(cè)
- 2025年度員工公寓租賃補(bǔ)貼協(xié)議范本
- 2025年礦山開采承包合同實(shí)施細(xì)則4篇
- 2025年度茶葉品牌加盟店加盟合同及售后服務(wù)協(xié)議
- 氧氣、乙炔工安全操作規(guī)程(3篇)
- 建筑廢棄混凝土處置和再生建材利用措施計(jì)劃
- 集裝箱知識(shí)培訓(xùn)課件
- 某縣城區(qū)地下綜合管廊建設(shè)工程項(xiàng)目可行性實(shí)施報(bào)告
- 《架空輸電線路導(dǎo)線舞動(dòng)風(fēng)偏故障告警系統(tǒng)技術(shù)導(dǎo)則》
- 2024年計(jì)算機(jī)二級(jí)WPS考試題庫
- JJF(京) 92-2022 激光標(biāo)線儀校準(zhǔn)規(guī)范
- 普惠金融政策解讀
- 廣東省廣州黃埔區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末數(shù)學(xué)試卷(含答案)
評(píng)論
0/150
提交評(píng)論