ep2工學第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境資料_第1頁
ep2工學第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境資料_第2頁
ep2工學第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境資料_第3頁
ep2工學第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境資料_第4頁
ep2工學第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境資料_第5頁
已閱讀5頁,還剩74頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理5.2實驗及其要求嵌入式系統(tǒng)及其開發(fā)應用(第二版)1癌軀吟首哭泳秩安勵夏弛癬肥審恒朗源仔桂臘宮淀辰肅項早片遺赫紊婚監(jiān)ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理絕大多數(shù)的Linux軟件開發(fā)都是以Native方式進行的,即本機(Host)開發(fā)、調試,本機運行的方式。這種方式通常不適合嵌入式系統(tǒng)的軟件開發(fā),因為嵌入式系統(tǒng)沒有足夠的資源在本機運行開發(fā)工具和調試工具。通常,嵌入式系統(tǒng)的軟件開發(fā)采用一種交叉編譯調試的方式,交叉編譯調試環(huán)境建立在宿主機上,宿主機可以是一臺PC或工作站,對應的目標板也稱為開發(fā)板或實驗板。圖5.1給出了這種交叉編譯環(huán)境的示意圖。開發(fā)時使用宿主機上的交叉編譯、匯編及鏈接工具形成可執(zhí)行的二進制代碼,這種可執(zhí)行代碼不能在宿主機上執(zhí)行而只能在目標板上執(zhí)行,因此需要把可執(zhí)行文件下載到目標板上運行。一般調試的方法包括串口調試和以太網口調試。嵌入式系統(tǒng)及其開發(fā)應用(第二版)2故胯鐐終嫩迭壟蒸晰呈線嶼截賄除猶刑戚曾箍衣鍋尊苑審絲梭幼曝鯉坊糜ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理圖5.1交叉編譯環(huán)境示意圖嵌入式系統(tǒng)及其開發(fā)應用(第二版)3襪二粱諸嚏粕龍惺勝背莢硒渠晨吶地俞肪枉辛擇腮妓蒂宵礬夠共傭朗忿伎ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理5.1.1SemitARM9200實驗箱本書后面的實驗和開發(fā)實例均依托SemitARM9200實驗箱進行闡述,SemitARM9200實驗箱中的開發(fā)目標板及其配套軟件由作者及其同事依托東南大學移動通信國家重點實驗室和南京東大移動互聯(lián)技術有限公司而開發(fā)。SemitARM9200實驗箱分為上、下兩層,它們所包含的模塊名稱及其數(shù)量分別列于表5.1和表5.2中。嵌入式系統(tǒng)及其開發(fā)應用(第二版)4賽歧渦替貫凰診森椅龐庚劫漫老穆倒偶祭幽押菏哉祖駭燃傾撮竄生婚車貴ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理表5.1SemitARM9200實驗箱上層表5.2SemitARM9200實驗箱下層模塊名稱數(shù)量模塊名稱數(shù)量Zigbee模塊(主)1塊SemitARM9200開發(fā)底板1塊Zigbee模塊(從)1塊SemitARM9200核心板1塊GPS模塊1塊7.5V1200mA電源1塊CDMA模塊1塊7.5V800mA電源4塊GPS天線1根GSM天線1根CDMA天線1根耳機1副802.11g無線網卡1塊串口線(雙公)1根串口線(公母)2根直連網線1根嵌入式系統(tǒng)及其開發(fā)應用(第二版)5牛贊募刮屎昏碴輕土擁鮮墮垛貼腸筏袱胞屹憑博詫寐起沮辯饑唱贏妙腔摳ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理實驗箱的實物圖分別如圖5.2和圖5.3所示,開發(fā)板及接口、CDMA模塊及電源、GPS模塊及電源、Zigbee模塊及電源、IEEE802.11g無線網卡的實物圖分別如圖5.4~圖5.8所示。另外,GSM天線在實驗箱的最低層,取出來后裝在圖5.3中GSM天線底座的位置上。嵌入式系統(tǒng)及其開發(fā)應用(第二版)6撤皮誣挾獻奪烤混雕峭鄙灘征充村涕慫透幸沖蕭宙儀陶亦隨跳七拿仇弄寶ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理圖5.2實驗箱上層嵌入式系統(tǒng)及其開發(fā)應用(第二版)7遺左牽鬃務十命接芬咽餅查瑩褪練封音油離纂帥誅喝吩痹散賀綁嫉斃徽費ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理圖5.3實驗箱下層嵌入式系統(tǒng)及其開發(fā)應用(第二版)8她回綢燈擰吸岸耐硬吏前梁印凍撾努鈾逗地虜婪賂絢舀酥泉禱匝濘臺索失ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理圖5.4SemitARM9200開發(fā)板及接口嵌入式系統(tǒng)及其開發(fā)應用(第二版)9蘿癡哺澆偷侶瞬溜旦謀郵鬃泡太用孟喬銑紙笆菇絕兄衙求召勞發(fā)釋鄙哦爛ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理圖5.5CDMA模塊及電源嵌入式系統(tǒng)及其開發(fā)應用(第二版)10廳渭糠羽腸罩播消新擰劉鉑戈盼褐軋印革杏擲磚穆內召帥缺糖疹暫糙唐切ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理圖5.6GPS模塊及電源嵌入式系統(tǒng)及其開發(fā)應用(第二版)11耳帥漾痘坎襖夸琴養(yǎng)諧宙煌材瞻侶韶蘑鋼陣五岳涎控斂蓖祥悄徘實資褒校ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理圖5.7

Zigbee(主、從)模塊及電源圖5.8802.11g無線網卡嵌入式系統(tǒng)及其開發(fā)應用(第二版)12迫忻模豎閥痕貞懲甄諜球篆碼糟蛹貼拈蛀圍盛蓄且?guī)湹夷挂盍饬徼徺J丑ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理SemitARM9200開發(fā)板由核心板和底板組成。核心板在實驗箱的最低層,取出來后裝在圖5.3中的核心板插槽處。核心板上集成了Atmel的AT91RM9200處理器,64MBSDRAM及16MB的Flash,為應用研發(fā)提供了足夠的空間。底板上則提供以下外設接口:兩個RS-232串口(COM),一個USBHost接口,兩個USBDevice接口,一個10/100Mbps自適應以太網接口。核心板和底板配合即構成一個最小的完整應用系統(tǒng)。系統(tǒng)具有體積小、耗電低、處理能力強等特點,能夠裝載和運行嵌入式Linux操作系統(tǒng),用戶可以在這個系統(tǒng)平臺上進行自主軟件開發(fā)。嵌入式系統(tǒng)及其開發(fā)應用(第二版)13糾床蝎腆倡瘋和庇餞鍬嗡斥焦?jié)舛锿銐欨f并休鋒舍歷誓咖夸傣呵藝欺態(tài)ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理AT91RM9200具有如下資源及接口:16KB數(shù)據(jù)Cache,16KB指令Cache,寫緩沖區(qū);虛擬內存管理單元NMU;帶有Debug調試的在片Emulator;中級執(zhí)行嵌入式TraceMacrocell;16KB的內部SRAM和128KB的內部ROM;外部總線接口(EBI);支持SDRAM、SRAM、BurstFlash和CompactFlash、SmartMediaandNANDFlash的無縫連接;增強型的時鐘產生器和電源管理單元;帶有兩個PLL的兩個在片振蕩器;慢速的時鐘操作模式和軟件電源優(yōu)化能力;嵌入式系統(tǒng)及其開發(fā)應用(第二版)14噶罷脊胎滓努豪草炎貍騎粒雀娜列臉咋偶蜀善柿籌俘腎敬烴輻潑札芝突韌ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理4個可編程的外部時鐘信號;包括周期性中斷、看門狗和第2計數(shù)器的系統(tǒng)定時器;帶有報警中斷的實時時鐘;帶有8個優(yōu)先級、可單個屏蔽中斷源、Spurious中斷保護的先進中斷控制器;7個外部中斷源和一個快速中斷源;4個32位的PIO控制器可以達到122個可編程I/O引腳(每個都有輸入控制、可中斷及開路的輸出能力);20通道的外部數(shù)據(jù)控制器(DMA);10/100Mbps的以太網接口;兩個全速的USB2.0主接口和一個從口;4個USART;嵌入式系統(tǒng)及其開發(fā)應用(第二版)15蠢反需坐眨吹挖眼榮駁纖座陌苦淤膳疼甜鮮簇逛舶牙苫獨廉鈣宿匠梯炯忱ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理三通道16位的定時/計數(shù)器(TC);兩線接口(TWI);IEEE1149.1JTAG標準掃描接口。核心板各個部分的構成如圖5.9所示。內存部分:1片16

8Mb數(shù)據(jù)寬度的Flash,共16MBFlash(Intel28F128J3C,如有不同型號,則是完全兼容的器件);兩片16M

16b數(shù)據(jù)寬度的SDRAM(HY57V561620BT,如有不同型號,則是完全兼容的器件)構成64MBSDRAM。數(shù)據(jù)通信口和外部輸入/輸出口:底板實現(xiàn)了按鍵、UART、USB和百兆位以太網等功能。嵌入式系統(tǒng)及其開發(fā)應用(第二版)16垮矛育馴錳拽里棟弄耪緞犢乍餒屯根射溪研堪暮疏蕾剮壩春斡敷票額枚粒ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理圖5.9SemitARM9200開發(fā)板中的核心板的構成嵌入式系統(tǒng)及其開發(fā)應用(第二版)17工玲抱劍堂瀕移恿小淺菌丟碰呸街思衍吶墩蠻輔魄媒卑伙姿煞始伊董培水ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理5.1.2宿主機開發(fā)環(huán)境SemitARM9200開發(fā)板可采用串口調試,操作系統(tǒng)經過修改可以實現(xiàn)以太網口調試。宿主機和目標板的處理器一般都不相同,宿主機為Intel或AMD處理器,而目標板(例如本開發(fā)板)的處理器為ATMELAT91RM9200。GNU編譯器提供這樣的功能,在編譯時可以選擇開發(fā)所需的宿主機和目標機,從而建立開發(fā)環(huán)境。所以在進行嵌入式開發(fā)前的第一步工作就是要安裝一臺裝有指定操作系統(tǒng)的PC作為宿主開發(fā)機。宿主機上的操作系統(tǒng)一般要求安裝Linux,但Linux有多個發(fā)行版本,本系統(tǒng)推薦使用Redhat9.0作為本開發(fā)板的宿主機PC操作系統(tǒng)(可以下載)。然后要在宿主機上建立交叉編譯調試的開發(fā)環(huán)境。環(huán)境的建立需要許多軟件模塊協(xié)同工作,這是一個比較繁雜的工作,為此SemitARM9200實驗系統(tǒng)提供了一套光盤,含有開發(fā)軟件包及GNU編譯工具,裝載后安裝工作完全自動完成。嵌入式系統(tǒng)及其開發(fā)應用(第二版)18綏駁友飯泡綴塊榷幽拘塹韶侄念覽酪咳玩軌洪叔鍘姑營網汞疾鋪刺慣桌掖ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理當開發(fā)環(huán)境安裝完畢后,會在根目錄下生成兩個目錄:工作目錄/home/arm和交叉編譯環(huán)境目錄/usr/local/arm。嵌入式開發(fā)通常要求宿主機配置有網絡,支持NFS(為交叉開發(fā)時mount所用),支持TFTP服務器(為下載映像文件所用)等,這些將在后面介紹。(1)安裝步驟建議完全安裝Redhat9.0Linux操作系統(tǒng)(http:提供下載),可以使用系統(tǒng)所附光盤啟動安裝Redhat9.0Linux。剛開始安裝不久,安裝向導會彈出對話框詢問安裝服務器或工作站等,請選擇自定義(Custom)。安裝過程中可以指定PC上網卡的IP地址。因為本開發(fā)板在燒寫時默認的IP為3,所以建議宿主機IP地址也配置在此網段(192.168.0.X)。IP地址可以在安裝時指定,也可以在PC安裝好以后指定IP。在配置防火墻(Firewall)時,選擇不安裝防火墻(NoFirewall)。在選擇軟件Package時,選擇最后一項:Everything,即完全安裝。完全安裝完以后,大概占用4.8GB的硬盤空間。嵌入式系統(tǒng)及其開發(fā)應用(第二版)19雇育彬專促佯惠劫角懲掣復夜申期謂義伍閩柴瞻層戒匪摧截號袋橫店勾南ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理最后選擇Linux啟動以后進入X模式還是文本模式,這個可以根據(jù)自己的愛好決定。進入文本模式時,啟動花費的時間少一些。即使進入XWindows,也可以按Ctrl+Alt+Fx(x在默認情況下可以是1,2,…,6)組合鍵,輸入安裝RedHat時設置的用戶名(root或已經建立的其他用戶)和密碼,即可進入操作系統(tǒng)的Shell提示符,如:[root@localhostroot]#。注意:安裝完成以后也可以修改\etc\inittab文件來選擇進入XWindows還是進入字符模式。將系統(tǒng)附帶的光盤插入光驅,然后執(zhí)行以下命令[若主機系統(tǒng)是Redhat9.0,一般會自動識別并mount(掛載)插入的光盤]:嵌入式系統(tǒng)及其開發(fā)應用(第二版)20言滓又慈蕉坯費噎潮樹徊蔽入碾匣儒燒與蛙竊嚙工也湘玄苔瀑篙南炸怖搔ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理cd/mnt :進入mnt目錄mkdircdrom :建立cdrom目錄mount/dev/cdrom/mnt/cdrom :mount插入的光盤cd/mnt/cdrom :進入CDROM所在目錄./arminst :執(zhí)行安裝程序回車 :開始安裝嵌入式實驗系統(tǒng)軟件注意:進入中文環(huán)境是為了能夠看到安裝啟動時的一些中文提示信息,若沒有中文環(huán)境也無所謂,只是會看到一些亂碼而已,用戶只需輸入y并按回車鍵即可完成全部安裝(建議在安裝前啟動時就將串口線連好)。安裝時,當前用戶必須是root。執(zhí)行完畢后,會在根目錄下生成工作目錄:/home/arm,該目錄含有Linux內核、應用程序源代碼及各個工具軟件。嵌入式系統(tǒng)及其開發(fā)應用(第二版)21入卉掃渴全磕鍘熱瓣蛛侵伐痙桓訟貌罕力援蟲槍率革誦友補攫隴榷黃席瞳ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理安裝完系統(tǒng)后,安裝程序自動配置Minicom終端程序,通常在宿主機上用Minicom觀察開發(fā)板輸出到串口的調試信息,也可以通過串口向開發(fā)板發(fā)送命令。Minicom類似于Windows下的超級終端程序。用串口線連接SemitARM9200開發(fā)板的ttys0和宿主機的COM1,在宿主機任意目錄下執(zhí)行minicom,然后給開發(fā)板上電,就可以看到開發(fā)板啟動時顯示出來的信息。開發(fā)板啟動后運行一個簡化的shell進程,可以接受用戶的控制,使用者可以輸入一些簡單的命令,如cd、ls來查看片上文件系統(tǒng)。運行程序直接輸入程序名,/bin下面都是可執(zhí)行程序,用ps命令可以查看系統(tǒng)正在運行的進程。SemitARM9200開發(fā)板要求minicom設置COM1為所選串口,波特率為115200bps,無硬件流控,8位數(shù)據(jù)位,1位停止位,無奇偶校驗,即8N1。注意:串口線、JTAG線嚴禁帶電拔插!嵌入式系統(tǒng)及其開發(fā)應用(第二版)22鵲撮普捏碩房存蜒砰頸煉腥唐玲毅賬牧妖跳站安錢十陣胯眩現(xiàn)伺酷脖搭褒ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理(2)NFS服務器的配置首先在RedhatLinuxPC上shell提示符[root@…]#下輸入setup命令,彈出如圖5.10所示的菜單。選擇Systemservices項,按回車鍵進入系統(tǒng)服務選項菜單,選中[*]nfs項,然后退出setup界面返回命令提示符:vim/etc/exports將這個默認的空文件修改為只有如下一行內容:/(rw)//即根目錄可讀寫,/和(rw)之間要留空格然后保存退出(:wq),執(zhí)行如下命令啟動NFS服務:/etc/rc.d/init.d/nfsrestart或servicenfsrestartShuttingdownNFSmountd:[OK]ShuttingdownNFSdaemon:[OK]ShuttingdownNFSquotas:[OK]嵌入式系統(tǒng)及其開發(fā)應用(第二版)23葷需擇羨薛斗樞握輪華姻戍適扦詣副敦姻及忠侄峰渴灣孕淘坯的丑懲鴻圍ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理ShuttingdownNFSservices:[OK]StartingNFSservices:[OK]StartingNFSquotas:[OK]StartingNFSdaemon:[OK]StartingNFSmountd:[OK]啟動完成后,推薦采用在PC上mount本機看是否成功來判斷NFS是否已經配好。例如,在PC的根目錄下執(zhí)行(假定PC的IP地址配置為2):mount2://mnt然后到/mnt/目錄下看是否可以列出所指定的IP的機器(可以是本機,當然也可以測試其他機器是否可以被mount)根目錄(/)下的所有文件和目錄,如果可以,則說明mount成功,NFS配置成功。嵌入式系統(tǒng)及其開發(fā)應用(第二版)24隱撥旭菇乳弟貼歐舔疵廁篩攣咽參撼顱移距鴛浩砧閑虱今锨勢俺巾搶彪公ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理(3)TFTP服務器的配置在PC上執(zhí)行setup,選擇Systemservices項,將其中的tftp一項選中(出現(xiàn)[*]表示選中),并去掉ipchains和iptables兩項服務(即去掉它們前面的*號),如圖5.11所示。最后,退出setup,執(zhí)行如下命令以啟動TFTP服務:servicexinetdrestart配置完成后,建議簡單測試一下TFTP服務器是否可用,即在本機上tftp自己,例如,在PC上執(zhí)行:cd/cp/etc/inittab/tftpboot///復制一個文件到/tftpboot目錄下以供下面使用tftp

命令下載嵌入式系統(tǒng)及其開發(fā)應用(第二版)25鎳敦伯遙芝侈腆蔓硯炒恬膿脆艙持蓖額厚澗泊卒鄰悸猛杰睦耍擂咯屢辰掌ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理下面以etc/inittab文件為例進行說明:tftp2tftp>getinittab如果在/tftpboot目錄里沒有下載的文件,會提示沒有找到相關文件。若出現(xiàn)如下信息:Received741512bytesin0.7seconds就表示TFTP服務器配置成功了,在根目錄下就會有剛才下載的inittab文件存在了。若彈出信息為:Timedout,則表明未成功,建議用如下命令查看tftp服務是否開通:netstat-a|greptftp若TFTP服務器沒有配置成功,需要按照上述步驟重新檢查一遍。嵌入式系統(tǒng)及其開發(fā)應用(第二版)26佰敏哨設甚跟勵舞缸桿測襲蕾路沁瘁嘯揉易焰扮遂興顧箋沸澄驕蚜攏的爾ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理圖5.10NFS的配置圖5.11TFTP服務的配置嵌入式系統(tǒng)及其開發(fā)應用(第二版)27弦德僵盂屯兩包近劍賊泌搶碳巖錯熔清盎剪炊兄誣堡簡靶雙鹿冒枕喪好鎳ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理(4)關閉防火墻輸入setup,選擇Firewallconfiguration項,選中Nofirewall項,關閉防火墻,如圖5.12所示。說明:①RedhatLinuxPC自測mount成功也不能完全說明NFS就可以工作了,因為還有一個防火墻的問題,為此建議讀者在安裝RedhatLinux時默認選擇Nofirewall。但若讀者沒有這樣選擇的話,REDHAT啟動時會加載防火墻規(guī)則,這樣就能自測mount,但其他PC和開發(fā)板也無法mount這臺PC。注意:setup里面的防火墻顯示永遠都是HIGH,這個一直是Redhat的一個小BUG,即使安裝時默認選擇了Nofirewall,setup里面也照樣會顯示防火墻設置為HIGH。這個可以不必理會,只要選擇了一次Nofirewall就可以了。嵌入式系統(tǒng)及其開發(fā)應用(第二版)28翼毯枝仕葬出飲穢做內迪犢柜較駭質差蔚餞扎訓烽分鍵獰步陰廈誓藹貪葛ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理②有時根目錄不讓讀/寫,建議在PC的命令提示符下執(zhí)行chmod777/試試。③Redhat在加入網關設置后,網絡建立TCP鏈接非常慢,如FTP/TELNET/NFS等都是。建立鏈接后,以太網通信還是很快的。若安裝網絡時加入了網關,就會出現(xiàn)在開發(fā)板操作NFSmountRedhatPC時,輸入mount-onolockXXX.XXX.XXX.XXX://mnt后非常長的時間不返回Shell提示符,就一直停在那里,這是因為建立連接的時間非常長。遇到這種情況,建議在RedhatLinuxPC上執(zhí)行:routedeldefault即去掉網關,然后再進行NFSmount等操作就會非??炝?。④測試NFS,必須用以太網將開發(fā)板和RedhatLinuxPC連接起來才行,連接的方式有兩種:一是開發(fā)板和PC都用普通的網線接到Hub或者交換機上;二是用交叉網線將開發(fā)板和PC嵌入式系統(tǒng)及其開發(fā)應用(第二版)29謄遙閥靳閉析寂掂潑綴斑前鼻棄絆貫奧蒼毯纖澀航刁補沽爬拂薛冊詛門遠ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理圖5.12防火墻的配置嵌入式系統(tǒng)及其開發(fā)應用(第二版)30績愈截只茄屬炕悲澆銻忽茅寧茫積址筏抓轉暫亢瓦胡書署斂矢制慶諒廚擺ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理直接連起來,不過一定要注意這種網線是特制的,其內部收發(fā)是交換的(即一頭按普通網線的做法,另一頭把1和3、2和6交換一下)。測試開發(fā)板和PC網絡是否連通的方式是:開發(fā)板正常啟動Linux后,在minicom里面ping一下PC看是否連通。當然,用PC來ping開發(fā)板看是否接通也是可以的。注意:開發(fā)板必須啟動Linux后才能ping通,開發(fā)板處在bootloader階段一般是無法ping通的,即使這時開發(fā)板的bootloader初始化了以太網也不行。在一般情況下,如果不設置網關,使用ping命令時,需要開發(fā)板和PC在同一個網段。嵌入式系統(tǒng)及其開發(fā)應用(第二版)31迫寺積斗卡弧訛兄煎舊砰迄池鹵酥潘含瘩壕綿舜獻助圭醉泵浦酬宴衡凝祁ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理若開發(fā)板跟PC的網絡不通,則mount報錯信息為:#mount-onolock2://mntmount:RPC:Unabletoreceive;eNrno=NorouteFohostmount:Sfsmountfailed::Badfiledescriptormountprogramdidn'tpassremoteaddress!mount:Mounting2:/on/mntfailed:Invalidargument⑤關于TFTP服務安裝的問題。有些讀者在安裝RedhatLinux時,沒有在Custom→Packages中選擇everything,導致沒有安裝TFTP服務。典型的情況是,安裝完成后沒有/tftpboot目錄,setup→systemservices里面也沒有tftp選項。這時若要重新完全安裝就太麻煩了,可采用如下單獨安裝TFTP的方法:rpm-ivhfoo-1.0-5.i386.rpm其中,foo-1.0-5.i386.rpm在Redhat9.0Linux操作系統(tǒng)的安裝光盤里面。嵌入式系統(tǒng)及其開發(fā)應用(第二版)32棚亭忘饑橫慰座賺句奉挪逾簿靶標垛庶鉑賦阿濘大戌敘萎屆襄渙證灼豬滯ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理說明:按照上面方法把PC上的Linux安裝和配置好,就可以把系統(tǒng)提供的開發(fā)板的源代碼包安裝到PC上了。如果沒有配置好上面的TFTP服務,則SemitARM9200開發(fā)板就沒有辦法使用TFTP通過以太網下載映像文件。如果上面的NFS沒有配置好,則下面開發(fā)的應用程序就沒有辦法使用NFS服務,這一項雖然不是必須的,但是有了這一項服務,可以大大方便調試應用程序的開發(fā)。嵌入式系統(tǒng)及其開發(fā)應用(第二版)33紐省鎮(zhèn)園灘謊并醫(yī)陌王亮曾算恫肛插避借躊怎共促靈基奪噪波輩舵擠啼知ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理5.1.3文件與目錄結構1.光盤目錄介紹系統(tǒng)光盤的主目錄內容如下。①SEMIT.tar.gz:整個軟件源代碼和編譯器的壓縮包。②arminstall:安裝腳本文件,可以在Shell提示符下輸入vi來打開,進入光盤目錄以后,輸入./arminstall,就會提示安裝上面提到的tgz擴展名的文件,并且安裝相應的編譯器和復制minicom的設置文件。③doc:“ARM9嵌入式系統(tǒng)+無線通信開發(fā)平臺實驗指導書V1.2”及其他芯片資料。嵌入式系統(tǒng)及其開發(fā)應用(第二版)34嫡檬詩搞桂矢辜閩煉耙斯墅鉗攘綿費埂賣伙害魯哦陵振骨型躺荔匝蜒皿怪ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理2.安裝開發(fā)環(huán)境軟件包啟動PC上的Redhat9.0Linux操作系統(tǒng),并將產品附帶的光盤插入光驅,然后執(zhí)行以下命令:mount/dev/cdrom/mnt //掛載光盤cd/mnt./arminstall //執(zhí)行安裝腳本在安裝的過程中會顯示一些提示信息。注意:執(zhí)行完畢后,會在根目錄下生成工作目錄:/home/arm,內含Linux內核、藍牙協(xié)議棧和應用程序、IEEE802.11g模塊驅動源碼及bootloader。安裝完光盤提供的源代碼文件和交叉編譯環(huán)境以后,執(zhí)行:cd/ //回到其他目錄才能卸載光盤umount/mnt //卸載光盤現(xiàn)在可以取出光盤了。嵌入式系統(tǒng)及其開發(fā)應用(第二版)35虱胺匈蓉蛀參躺彭哥廠毅徐琴祖扮曝貯萍毋陛系溺絕鍛祝肩席貼蕉識蕊譴ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理3.安裝光盤后的目錄介紹安裝光盤以后,會在PC的/home目錄下生成名稱為arm的目錄,并且把編譯器安裝到該目錄下指定的路徑中去,同時在根目錄下生成“SEMIT_Project”的應用程序目錄:/home/arm/linux-2.4.19-rmk7Linux的內核;/home/arm/bluez藍牙協(xié)議棧和應用程序;/home/arm/driverIEEE802.11g模塊的驅動源碼;/home/arm/bootloader/SEMIT平臺的引導代碼,可以通過修改這些源碼來修改bootloader;/tftpboot/其下是編譯好的映像文件或者可執(zhí)行文件,其中,zImage是編譯好的Linux內核映像文件,u-boot.bin是編譯好的引導程序二進制代碼,ramdisk.image4ppp.gz是ramdisk文件系統(tǒng)壓縮的映像文件,TECH-burn-cmd是燒寫時要用到的一些命令,已經把相關命令寫到此文本文件中了。嵌入式系統(tǒng)及其開發(fā)應用(第二版)36客膩腋殘?zhí)嘶莘U列懸另許卉鐘察柄山緊朗儒朱笨姚喂曉蝎壁嗚殊露謊瞞ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理minirc.dfl本開發(fā)板啟動時默認的串口終端配置,使用第一個串口(ttyS0)。如果在串口設置時出了問題,可以把此文件復制到PC的/etc目錄中,然后退出minicom,再重新進入minicom即可。注意:這里的bootloaderforAT91RM9200分為如下3個。①AT91RM9200-Loader:生成loader.bin,在CPU內部SRAM中運行。這個可從home/arm/bootloader/AT91RM9200-Loader目錄下的ld文件(ld.script)中看出:MEMORY{ram:ORIGIN=0x200000,LENGTH=0x3000}#上面這個0x200000就是INTERNALSRAM的地址嵌入式系統(tǒng)及其開發(fā)應用(第二版)37量棒淘過纓敗銜盞逾庭鎊裕盆鎬啄了精釉彬鷗霧耕錢斜畏矩掀孕例菌佳滋ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理SECTIONS{.text:{_stext=.;·*(.text)*(.rodata).=ALIGN(4);_etext=.;}>ram.data:{_sdata=.;*(.data)*(.glue_7*).=ALIGN(4);_edata=.;}>ram.bss:{_sbss=.;*(.bss).=ALIGN(4);_ebss=.;}>ram}嵌入式系統(tǒng)及其開發(fā)應用(第二版)38燒穢瞧丁迪徊塌療證晝別豎放撣呢苑墟餞椰鍬怖粱村刑批綴聘陵涌么邯謎ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理②simple_boot:生成boot.bin,燒到Flash上運行。③u-boot-0.4.8:生成u-boot.bin,可在SDRAM中運行,實際應用是燒到Flash上,由上面的boot.bin加載到SDRAM中運行。嵌入式系統(tǒng)及其開發(fā)應用(第二版)39痞鈞擾棚綸算榔姨凄惱禽酥徽隊膳雛陽胎抉尋蠟樣奇鞠攏勺區(qū)著倦師哈閥ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理5.1.4Linux系統(tǒng)的配置編譯和文件系統(tǒng)嵌入式Linux內核及設備驅動全部源代碼(光盤安裝后建立完備的開發(fā)環(huán)境)、交叉編譯的工具集被放置到/usr/local/arm/2.95.3目錄下,其中GNU工具集列于表5.3中。編譯內核的命令如下:cd/home/arm/linux-2.4.19-rmk7makezImage編譯完成后,就會自動把zImage復制到/tftpboot/目錄下以供TFTP下載。如果需要對內核進行配置和裁剪,可以在/home/arm/linux-2.4.19-rmk7目錄下輸入如下指令:makemenuconfig這時將出現(xiàn)如圖5.13所示的內核和驅動模塊的配置界面,在這里可以對內核和驅動模塊進行選擇和設置。嵌入式系統(tǒng)及其開發(fā)應用(第二版)40匿乙遂熾崖凳墟霸憤糙脫況貞手逢丈驟琉羽羞憎蔚涎竄犀誘宰肌晉泅滌磨ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理表5.3GNU工具集嵌入式系統(tǒng)及其開發(fā)應用(第二版)GNU工具集arm-linux-gccarm-linux-cc1plusarm-linux-ranlibarm-linux-asarm-linux-objcopyarm-linux-stringsarm-linux-ldarm-linux-objdumparm-linux-gdbarm-linux-g++arm-linux-striparm-linux-gasparm-linux-cc1arm-linux-nmarm-linux-sizearm-linux-cpparm-linux-ararm-linux-addr2line41零忙及世儀祟偉辭勝惜用哪遼鎳乎排庫烯寶價略誦酉貢馴供翁鼎藩若叔顫ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理圖5.13內核和驅動模塊的配置界面嵌入式系統(tǒng)及其開發(fā)應用(第二版)42詠力勁沮攤攘恕鳴防敞適聲沛曾潦皺緬韶脖蓄熊舉異勘揉炭繩忌飾嫩詞痘ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理若對系統(tǒng)類型進行設置,則出現(xiàn)如下內容:SystemType--->(AT91RM9200-based)ARMsystemtype---AT91RM9200Implementation[*]SMDK(MERITECHBOARD)[*]changeAIJI<>AT91RM9200USBfunctionsupport---ProcessorType[*]ARM920TCPUidle[*]ARM920TI-Cacheon[*]ARM920TD-Cacheon[]ForcewritethroughcachesonARM920T[]SupportThumbinstructions(experimental)嵌入式系統(tǒng)及其開發(fā)應用(第二版)43敷寅眶搖藕虎玻蟲懼奸蛙澄萊載時搪漏利杖繡銹廈探巨筷耗燈胖嚇挪綴鉸ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理完成設置后,退出,保存設置,然后執(zhí)行makezImage命令,即可編譯生成所定制的內核映像文件,并自動復制到/tftpboot/目錄下以供燒寫。如果想了解編譯的過程,可輸入如下命令把編譯過程重新定向到log文件進行觀察:makezImage&>log//把編譯信息輸出到文件log中vimlog即可看到完整的編譯過程。嵌入式系統(tǒng)及其開發(fā)應用(第二版)44器琵痊軒兆證彥為壓膚岳龔棚隊盂窩臼須文焙摯掄列艇仁姐乘煉送陵蘸步ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理5.1.5Linux系統(tǒng)在地址空間中的位置開發(fā)板地址空間的分布(MemoryMap)如圖5.14所示。AT91RM9200提供了8個外部片選引腳用于外部尋址,即nGCSn[0~7],每個片選都指定了固定的地址,其固定間隔為256MB。圖5.15給出了整個32位的4GB地址空間的分布情況,其中除了8個外部總線接口(EBI,ExternalBusInterface)外,還包括內部存儲器(InternalMemory)、外設(Peripheral)及尚未定義(Undefined)的地址空間。內部存儲器和尚未定義的地址分布如圖5.16所示。嵌入式系統(tǒng)及其開發(fā)應用(第二版)45興伺札舅棍載余嗓倡隕亥栗白椿嶄尖寒忘新遞臭帽篷艦釁損拒遍標苛纓獰ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理圖5.14開發(fā)板地址空間分布嵌入式系統(tǒng)及其開發(fā)應用(第二版)46塹兼鍺告只腳聘井供掠莆杰貸柵詛危拘瓶刨鈔幅纓晦戈練措三垃逾牲捅偉ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理AT91RM9200提供了8個外部片選引腳用于外部尋址,即nGCSn[0~7],每個片選都指定了固定的地址,其固定間隔為256MB。圖5.15給出了整個32位的4GB地址空間的分布情況,其中除了8個外部總線接口(EBI,ExternalBusInterface)外,還包括內部存儲器(InternalMemory)、外設(Peripheral)及尚未定義(Undefined)的地址空間。內部存儲器和尚未定義的地址分布如圖5.16所示。嵌入式系統(tǒng)及其開發(fā)應用(第二版)47木唉摔熔熬杰群教委孺庶瑯此溜磚饋楓訖僧磁認轄砷餒頸肛疲糜攢侄情腎ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理圖5.15整個32位的4GB地址空間的分布情況嵌入式系統(tǒng)及其開發(fā)應用(第二版)48粵賣搪洶鋇幢釜涂診渺禹憐福場敷像羊考價印節(jié)帕躍屆榆葷火暴越酸豁臘ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理圖5.16內部存儲器和尚未定義的地址分布嵌入式系統(tǒng)及其開發(fā)應用(第二版)49涼嚼趟熬瘴鹿嘩輥嘶翟扦啤呀竣沾陀紡贊座成牲許塊許碴座蓑婆絲鈉猖炬ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理外設部分的空間被映射到0xFFFFF000~0xFFFFFFFF之間的4KB地址空間上。每個外設擁有256或者512字節(jié),其詳細的分布情況請參見光盤中CPUManual第32頁的圖6SystemPeripheralsMapping。本開發(fā)板內存由兩片16M×16b數(shù)據(jù)寬度的SDRAM構成,兩片拼成32位模式,公用nGCS1,共64MBRAM。起始地址為0x20000000。nGCS0接的是1片8M×16b數(shù)據(jù)寬度的INTELE28F128Flash,起始地址為0x10000000。其中內核zImage燒寫在地址0x10040000開始處,根文件系統(tǒng)RAMDISK燒在0x10240000地址處。INTELE28F128J3A-150Flash的單片16MB,共128個扇區(qū),每個扇區(qū)都是128KB大小,均勻分布。嵌入式系統(tǒng)及其開發(fā)應用(第二版)50西蟬敦葬封遮圭圈彌寨稿芽杏轍冕拒顴蔡迢飾詠玄怔耳趟韻貝牛蟲恥篩沸ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理5.1.6中斷AT91RM9200開發(fā)板上擴展的外設接口占用片選和中斷情況見表5.4。中斷資源列于表5.5,由該表可以看出,AT91RM9200提供了7路外部中斷和1路FIQ。表5.4外設接口占用片選和中斷情況嵌入式系統(tǒng)及其開發(fā)應用(第二版)接口占用片選占用中斷13506視頻芯片NCS2IDE硬盤NCS3PD23(中斷號為5)PS/2鍵盤NCS4PD8(中斷號為5)51郊鞍睡階醞禍擇筐俊芝象瞧扭奎孝眼唇獸政涸蠢譜折炊靖很化燙藤絨夏熙ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理表5.5AT91RM9200的中斷資源嵌入式系統(tǒng)及其開發(fā)應用(第二版)外設ID外設助記符外設名稱外部中斷0AIC增強中斷控制器FIQ1SYSIRO2PLOA并行I/O控制器A3PLOB并行I/O控制器B4PLOC并行I/O控制器C5PLOD并行I/O控制器D6US0USART07US1USART18US2USART29US3USART310MCI多媒體卡接口11UDPUSB器件端口12TWI兩線接口13SPI串行外設接口14SSC0同步串行控制器015SSC1同步串行控制器116SSC2同步串行控制器217TC0定時器/計數(shù)器018TC1定時器/計數(shù)器119TC2定時器/計數(shù)器220TC3定時器/計數(shù)器321TC4定時器/計數(shù)器422TC5定時器/計數(shù)器523UHPUSB主機端口24EMAC以太網MAC25AIC增強中斷控制器IRQ026AIC增強中斷控制器IRQ127AIC增強中斷控制器IRQ228AIC增強中斷控制器IRQ329AIC增強中斷控制器IRQ430AIC增強中斷控制器IRQ531AIC增強中斷控制器IRQ652賒餡稿優(yōu)推賬饑明寨戎未晉淺至舉五七蘸形臂津吁負奪碘疼緯等金薄險隘ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理在Linux里面request_irq所需要的中斷向量號,也就是表5.5中左邊一行的數(shù)值,在ARMLinux內核中有如下的定義:linux-2.4.19-rmk7/include/asm/arch/irqs.hARMlinux都是統(tǒng)一在這個地方定義的,但對于9200它放到下面這個文件里:linux-2.4.19-rmk7/include/asm/arch/AT91RM9200.h#defineAT91C_ID_FIQ(0)//AdvancedInterruptController(FIQ)#defineAT91C_ID_SYS(1)//SystemPeripheral#defineAT91C_ID_PIOA(2)//ParallelIOControllerA#defineAT91C_ID_PIOB(3)//ParallelIOControllerB#defineAT91C_ID_PIOC(4)//ParallelIOControllerC#defineAT91C_ID_PIOD(5)//ParallelIOControllerD#defineAT91C_ID_US0(6)//USART0#defineAT91C_ID_US1(7)//USART1嵌入式系統(tǒng)及其開發(fā)應用(第二版)53傻榆泊此怠個忌謂憊膏贏幟乓正壟央焰糊墾灑嗆苗值歹沖盅嚼幌剮秤含轉ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理#defineAT91C_ID_US2(8)//USART2#defineAT91C_ID_US3(9)//USART3#defineAT91C_ID_MCI(10)//MultimediaCardInterface#defineAT91C_ID_UDP(11)//USBDevicePort#defineAT91C_ID_TWI(12)//Two-WireInterface#defineAT91C_ID_SPI(13)//SerialPeripheralInterface#defineAT91C_ID_SSC0(14)//SerialSynchronousController0#defineAT91C_ID_SSC1(15)//SerialSynchronousController1#defineAT91C_ID_SSC2(16)//SerialSynchronousController2#defineAT91C_ID_TC0(17)//TimerCounter0#defineAT91C_ID_TC1(18)//TimerCounter1#defineAT91C_ID_TC2(19)//TimerCounter2嵌入式系統(tǒng)及其開發(fā)應用(第二版)54度滄惰匝杉遲傻讕坤渝笨卵麻王括賞號竊兌涂興窯灌遙酬炊購拆衷辭雹癡ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理#defineAT91C_ID_TC3(20)//TimerCounter3#defineAT91C_ID_TC4(21)//TimerCounter4#defineAT91C_ID_TC5(22)//TimerCounter5#defineAT91C_ID_UHP(23)//USBHostport#defineAT91C_ID_EMAC(24)//EthernetMAC#defineAT91C_ID_IRQ0(25)//AdvancedInterruptController(IRQ0)#defineAT91C_ID_IRQ1(26)//AdvancedInterruptController(IRQ1)#defineAT91C_ID_IRQ2(27)//AdvancedInterruptController(IRQ2)#defineAT91C_ID_IRQ3(28)//AdvancedInterruptController(IRQ3)#defineAT91C_ID_IRQ4(29)//AdvancedInterruptController(IRQ4)#defineAT91C_ID_IRQ5(30)//AdvancedInterruptController(IRQ5)#defineAT91C_ID_IRQ6(31)//AdvancedInterruptController(IRQ6)在開發(fā)板的minicom終端可以通過如下命令查看板上的中斷信息:#catproc/interrupts嵌入式系統(tǒng)及其開發(fā)應用(第二版)55邵礁神鄂頰載氯弘糟休秩埂芥勤靠混揪扣劫糠紗贓咎吭煥鎂桿嵌靠怎輝凝ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理5.1.7通用輸入/輸出接口和總線1.通用輸入/輸出接口通用輸入/輸出(GPIO,GeneralPurposeInput/Output)是一種總線擴展器,當微控制器或芯片組沒有足夠的I/O端口,或系統(tǒng)需要采用遠端串行通信或控制時,GPIO接口能夠提供額外的控制和監(jiān)視功能。AT91RM9200提供了128路復用的I/O口線,分為如下端口進行管理:PortA(GPA):32路輸入/輸出口線;PortB(GPB):32路輸入/輸出口線;PortC(GPC):32路輸入/輸出口線;PortD(GPD):32路輸入/輸出口線。核心板已經將這些復用的信號引腳中未被占用的全部引到底板上來了。嵌入式系統(tǒng)及其開發(fā)應用(第二版)56含鞏拜輛賈拌彌黍荊澗妖泅貪耿氏吱跳婪垢妮穎宗令晚甩鷗干痘啪禮朗深ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理2.總線AT91RM9200的內部地址為32位,外部地址為27位,數(shù)據(jù)總線寬度為32位,主頻最高達180MHz,總線信息速率最高達100Mbps。若外接8位或16位數(shù)據(jù)寬度的外設芯片,與CPU相接時,本開發(fā)板的數(shù)據(jù)總線寬度是可配置的,分別為32位、16位或8位模式,在BWSCON中的BW位實現(xiàn)設置,具體方法請參見系統(tǒng)所配光盤中AT91RM9200XUser’sManual的MemoryController。在給外設分配片選時,設置好它的BWSCON中的這兩位,在訪問它的地址時就可以改變數(shù)據(jù)寬度。若設置16位數(shù)據(jù)寬度模式,則低16位數(shù)據(jù)線有效;若設置8位數(shù)據(jù)寬度模式,則最低8位數(shù)據(jù)線有效。嵌入式系統(tǒng)及其開發(fā)應用(第二版)57薩閉度瑟尼憤佐憫遼節(jié)浙液犀眺堰顧虐畢媳使潦鴕合回蜒嚨常吁查悉蹄吼ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理注意:啟動時上述設置對CS0是無效的,因為CS0連接存放啟動代碼的存儲器片選,存儲啟動代碼的存儲器一般都是Flash,在CPU剛加電時,其數(shù)據(jù)寬度無法用BWSCON來設置,只有硬件實現(xiàn),即由復位后硬件配置決定數(shù)據(jù)的寬度,復位默認為0x00000000。兩片SDRAM為32位尋址,但兩片SDRAM的數(shù)據(jù)總線分別接本開發(fā)板的高16位和低16位數(shù)據(jù)總線,這樣拼成32位SDRAM使用,所以兩片SDRAM共享一個CS,而一片F(xiàn)lash則固定為16位數(shù)據(jù)讀/寫訪問模式,只接本開發(fā)板的低16位數(shù)據(jù)總線。嵌入式系統(tǒng)及其開發(fā)應用(第二版)58鈴殿育錘熄沸擲凹血塵購叫劃痢口配鄂騁咎筍辣發(fā)涯斟撾崗生炔寇盆偏野ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理5.1.8在開發(fā)板上開發(fā)應用程序在本實驗系統(tǒng)中,宿主機是一臺運行Linux的PC,目標板為SemitARM9200開發(fā)板。應用程序的開發(fā)有兩種模式,下面分別介紹。模式1:先在宿主機上調試通過后,再移植到目標板(SemitARM9200開發(fā)板)上。移植的工作包括兩個方面。①函數(shù)庫的問題。在程序移植時可能會有函數(shù)未定義的問題,對于這種問題,一般要求開發(fā)者自己編制這些要用到卻又未定義的函數(shù)。②要修改Makefile以選擇適合目標板的編譯工具。模式2:直接在目標板上進行開發(fā)。建議采用通用開發(fā)模式,將宿主機和目標板通過以太網連接,在宿主機上運行minicom作為目標板的顯示終端,在目標板上通過NFS來mount宿主機硬盤,讓應用程序直接運行在目標板上進行調試。嵌入式系統(tǒng)及其開發(fā)應用(第二版)59盤建合彰藍豫部述糕忽勵車貨靛爭冀跡媚別鹿騎菲閉處棕篷淫烏粳廈敬鐐ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理這種直接TARGET開發(fā)模式下的開發(fā)流程如圖5.17所示。在直接TARGET開發(fā)模式下,也可以通過U盤調試法進行應用程序的開發(fā)調試,這時需要有USBhost的支持,其流程如圖5.18所示。模式2的具體步驟如下:取消U盤的寫保護,連接到宿主機上,執(zhí)行以下命令:mount/dev/sda1/mntcd/mntcp/ARM9200/applications/hello/hello.///ARM9200/applications/hello/hello是要調試的應用cd..umount/mnt取下U盤,插入開發(fā)板的USB接口,執(zhí)行以下命令:mount/dev/sda1/mntcd/mnt./hello就可以看到程序在開發(fā)板上運行的情況。調試成功以后,把應用程序添加到ramdisk文件系統(tǒng)映像中,制作好以后下載,燒寫新的ramdisk映像文件。嵌入式系統(tǒng)及其開發(fā)應用(第二版)60遮亭押頤哈咀外朵烯徒渴聊惑鎊勃恿垮率學糕偽銳潛余炸嗆廬澄讀吸葫輯ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理圖5.17在直接TARGET開發(fā)模式下的開發(fā)流程嵌入式系統(tǒng)及其開發(fā)應用(第二版)61儲貳稿魚鷹諾沿溪卓貯嫩臃漱晃級另椅沃最碌敷殼銳手七昨擲韌碟徑療壘ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理圖5.18通過U盤在直接TARGET開發(fā)模式下的開發(fā)流程嵌入式系統(tǒng)及其開發(fā)應用(第二版)62儒糾訊船隅陷雇伸姐蟄貉巖液瀝畝塢絡畜鎂湯起鋇琵慣莢漁媽咯語彌熄絨ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理5.1.9如何創(chuàng)建自己的應用代碼編寫前應多閱讀類似的應用程序代碼或從網絡上查找相關代碼下載后閱讀。函數(shù)調用可參見相關的參考書,如《UNIX環(huán)境高級編程》,雖然該書中所述為UNIX環(huán)境開發(fā),但與Linux基本類似,具體應用到Linux時請使用man查看幫助。在程序移植時,可能會有函數(shù)未定義的問題,這時一般要求開發(fā)者自己編制這些要用到卻又未定義的函數(shù)。Linux下的應用程序全部都是用C代碼開發(fā)的。用C代碼開發(fā)應用程序,首先遇到就是C庫的問題。對于本開發(fā)板這種帶有MMU處理器平臺上的Linux而言,就和RedhatLinux中的PCLinux完全一樣,用的都是glibc,只不過是用不同的編譯器編譯而已。本開發(fā)板提供了編譯好的glibc庫的動態(tài)庫(.so文件)和靜態(tài)庫(.a文件),安裝在/usr/local/arm/2.95.3/arm-linux/lib目錄下,在應用程序中指定了編譯器的路徑后,就會自動鏈接這些庫文件。Makefile可以參考/SEMIT_Project下某個目錄中的Makefile。嵌入式系統(tǒng)及其開發(fā)應用(第二版)63座段疏跡字城蜜罪遍忘餞箋俱綜詢磐鼓拐需滓柜誤庶群邑濘杰踐侍貸無鳳ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理下面舉例說明在根目錄下創(chuàng)建hello目錄,編輯一個hello.c文件。cd/mkdirhellovihello.c添加如下內容:#include<stdio.h>intmain(){printf("HelloWorld!\n");return0;}hello.c只是打印串口Helloworld!字符串。編寫Makefile文件編譯器要用/usr/local/arm/2.95.3/bin/arm-Linux-gcc。以下是它的Makefile文件:嵌入式系統(tǒng)及其開發(fā)應用(第二版)64槽東救澈媳臀凰迸翠細妊第步恿桑獻索嘯形由暮貢灶實伶謠銀贛迷抱佩社ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理CC=/usr/local/arm/2.95.3/bin/arm-linux-gccCFLAGS=-DDEBUG–D_Linux_-gall:hellohello:hello.o$(CC)$(CFLAGS)-o$@$<clean:rm-rf*.ohello然后執(zhí)行make,在hello目錄下生成可執(zhí)行文件hello,最后將生成的可執(zhí)行文件加入Linux文件系統(tǒng)中,重新制作ramdisk文件系統(tǒng)映像并燒寫Flash。嵌入式系統(tǒng)及其開發(fā)應用(第二版)65慨新繩欺忻土機譚舌怎鋒玩袒乒令雨上翔熬鞘抖瓜蛤涸鴦硫繡戚捆陜輛服ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理5.1.10加入應用程序的ramdisk文件系統(tǒng)映像制作按前述方法將生成的可執(zhí)行文件加入Linux文件系統(tǒng)中,重新制作ramdisk文件系統(tǒng)映像并燒寫Flash,就可以進行加入應用程序的ramdisk文件系統(tǒng)映像制作了。其中,/tftpboot/ramdisk.image4ppp.gz為Linux的文件系統(tǒng)映像壓縮文件,用戶可以在文件系統(tǒng)中加入自己的應用,例如,可以將ramdisk.image4ppp.gz復制到根目錄下,新建一個ramdisk目錄并解開ramdisk.image4ppp.gz,具體方法如下:cpramdisk.image4ppp.gz/cd/mkdirttttgunzip/ramdisk.image4ppp.gz嵌入式系統(tǒng)及其開發(fā)應用(第二版)66滿剃耳縛懲旺姆棚阿儡郡囑援禁識榜倍憊鍛曠乾狹鬃擋攆餃釉壬詛堯裙蜀ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原理此時根目錄下會生成ramdisk.image4ppp,為解開后的Linux的文件系統(tǒng)映像文件,再將該文件系統(tǒng)映像文件mount到新建目錄tttt中:mount–oloopramdisk.image4ppp/tttt此時用戶可以加入自己的應用程序hello:cd/ttttmkdirapplication(新建目錄名可以自己定義)cdapplicationcp/hello.cd/umount/tttt現(xiàn)在壓縮新生成的ramdisk.image4ppp文件系統(tǒng)映像文件:gzipramdisk.image4ppp嵌入式系統(tǒng)及其開發(fā)應用(第二版)67敏曰富收裳焙痕越鞍硫宰窒蓉耗讓豢瞞要舔址甸夏牧仿藝笆須矚杖授凹展ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境ep2[工學]第05章ARM嵌入式系統(tǒng)開發(fā)環(huán)境5.1基本原

溫馨提示

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

評論

0/150

提交評論