1. 嵌入式軟體應用方向與計算機應用軟體方向
個人感覺嵌入式軟體應該是嵌入式系統上的軟體開發吧
關於嵌入式系統呢一下就知道了
就是微型計算機上的軟體開發
計算機應用軟體就是在計算機上的應用軟體開發
個人感覺嵌入式軟體的比較好點
學應用軟體的熱太多了現在
個人的理解,僅做一點點參考,
不敢保證是絕對正確的
2. 怎麼學習ARM和DSP
一 首先說說ARM的發展
可以用一片大好來形容,翻開各個公司的網站,招聘裡面嵌入式占據了大半工程師職位。
廣義的嵌入式無非幾種:傳統的什麼51、AVR、PIC稱做嵌入式微控制器;ARM是嵌入式微處理器;DSP;FPGA。
客觀的講,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。
DSP因為數字處理與通信領域的空前發展而火暴,小到MP3 射象頭,大到我們軍品里的控制器,應用面很廣。
FPGA的兄弟一般做ANSIC(特殊晶元設計,好象是這么翻譯的)。而ARM單純說來並不比一個單片機強多少,但是它的獨特就在於不斷下降的價格和提升的性能。這完全依靠於ARM公司的戰略,厲害!!很佩服他們的戰略眼光!!
值得注意的是:在找工作中,企業(著名的,小的不算)對單純的ARM硬體開發工程師並不比單片機重視,很少有大企業的職位里寫「從事過ARM開發優先」。寫的多的是什麼?「嵌入式LINUX」到這相信大家看出來了吧,需要的是硬體中的軟體。
二 ARM是硬體還是軟體
很難說,ARM是硬體,LINUX是軟體。ARM的硬體多半已經模塊化了,像我這樣把板子改成這樣的就算動的多的了,這同樣是ARM公司的戰略,再次佩服。
實際中的LINUX的開發工作更多,更耗時。從這方面說ARM應該算是軟體了。
在找工作中更是這樣,舉個例子,聯想里和ARM最接近的是「BIOS工程師」是軟體,MOTO里接近的是嵌入式LINUX工程師是軟體。而其他很多公司把嵌入式產品開發歸為硬體。所以,不要討論這個,好好玩轉自己的板子才是關鍵。實在不爽你就把自己叫「嵌入式開發工程師」
三 要不要買開發板 買哪家
我的答案是「在你個人的學習方法」,但是如果看家是需要看這騙筆記的水平,個人推薦還是買現成的。
1 買
買板子可以把注意力集中在軟體開發上,軟體開發(尤其是驅動)可以不必擔心自己硬體上的問題,我就是以便調試一邊寫驅動和程序,每次寫驅動前就要先確認硬體沒問題。另外,買板子更省錢和時間,我自己做的板子,原理圖PCB花了2周以上!製版又15天,回來以後焊接44B0 160個腳!那叫一個麻煩~~花了多少錢呢?2層板,製版費就300塊!當然 我把介面都外引了,還做了個20X18的LCD背板,板子比較大。總體下來 元件+LCD屏+PCB=11XX塊!夠2410的了。
再有就是買的資料相對來說比較全,但是不要指望有技術支持!都是騙人的,賣你之後就不會理你。
2 做
自己做可以更了解底層硬體,可以按照自己的要求加東西,比如我就加了GPS模塊、 GPRS模塊 、SD卡模塊,擴了個IIC的35個鍵子的鍵盤、把LCD介面按照買的LCD改裝了,可以用FPC線直接連接。做的很爽的。玩一把嗎。
當然,你可以有策略的做,比如像我一樣,把RAM和ROM,網路都保持和某現成的板子一樣,這樣他們的資料你就可以拿過來直接用,給自己留個退路。其他的如SD了 什麼的自己做。都達到了~~就是費錢,費時間。
再有就是給做的朋友幾點建議:盡量拿到現成的板子,盡量多搜集其他板子的全套資料,一定要拿到一張沒問題的原理圖。
網上流傳的原理圖多數是龔俊03年畫的,再這里對龔俊表達一下我的敬意!!牛人!
但是那個圖有個小BUG,我指的是03版的,後來的沒這問題了。8019那地址線和地址有問題。還有人仿照他的PDF圖畫的SCH,更是漏洞百出!譴責!順便譴責把龔俊板子偷賣的人。
3 買哪家
個人感覺分3類吧
1)首先是ZLG的,資料非常的全,感覺他是真正想教你怎麼開發ARM,而不是像有的公司自己技術都沒做好就做個板子出來賣錢。但是最大的不利就是價格太貴!而且主要是PHILIP的,貨源比較麻煩~~可能有人說21XX系列的不貴啊,那是匯流排不外擴的,只能跑UCOS,不能跑UCLINUX。但是說是話,21XX系列才是ARM7的價格性能結合點。ARM7最適合做工業控制,ARM普及,銷量都是怎麼來的?都是ARM7來的,而44B0是典型的商業片子。但是,這里如果你看中的是為工作做准備,還是選能跑UCLINUX的吧。
但是仍然作為第一個推薦,因為菜鳥時期,合適的資料太重要了!!在這里被ZLG的務實精神感動!你看人家那代碼寫的。
2)感覺立宇泰的44B0不錯
硬體沒別的,就是資料比較全的說,不像有些家,原理圖直接拿人家的,還錯的~~
3)找個最便宜的
好象最便宜的有賣350的吧?也是沒別的,就是即省了錢 還省時間搜集資料,至於資料全不全,別計較了~~硬體肯定好使就行吧。
四 要不要有51 AVR等單片機基礎
有更好,但沒有也無所謂。
兩個月以前,我只是看別人做,耳濡目染~~,本科學過單片機,從來沒做過。我們這的技術主幹做AVR和51,我就跟他們調過C語言程序。你看出來了?我是個不折不扣的菜鳥吧?
但是做這個之前我特意找了ZLG的兩本書,看了裡面的例子和原理圖,這很重要。常式里有匯編有C,都看懂了就OK,不用自己現寫
五 開發都需要學習哪些軟體
總結起來最主要的有以下幾個吧
1 ADS調試用
確切的說是ADS+AXD。ADS里包含AXD。原來都用SDT後來ARM公司停止對SDT支持了,改支持ADS了,還是用ADS吧。
有的人的程序發布的仍然是SDT版本的,但基本都可以找到相應ADS的,新人在這里不要發蒙。ADS是編譯器,AXD是調試器。便宜成AXF以後再在ARM的RAM里調試。
2 PLASHPGM
FLASH燒寫的軟體。AXD在RAM里調試,掉電就沒有了,方便程序修改。調試好的程序再下到FLASH里,上電直接運行。
同類的軟體還有很多,什麼FLUTED了、FLSHP了都是,但FLASHPGM最好,要是有人還問FLASH不支持BIN格式文件的問題就要看我寫的PLASHPGM使用了。
3 BANYANT調試代理(不知道名對不,起這么個難記的,我一般都叫它「半羊」因為知道它那幾天剛吃了烤羊)
調試代理就是用它幫你使用更簡單的JTAG(便宜啊)來實現原本1K才賣的JTAG模擬器的大部分功能。JTAG調試原理看我另一篇筆記。簡單的就可以把他理解為你自己做的JTAG的驅動就行了。
調試代理還有很多種,什麼H-JTAG了、ARM7了(不知道具體叫什麼,就記得可執行文件叫ARM7.EXE)都是,BANYANT比較好。
需要注意的是,沒種調試代理安裝方法雖然都簡單 但都不一樣,需要看說明。而且AXD調試之前都要運行。省錢了,就別怕麻煩了。
4 ARM-ELF-TOOLS工具鏈
裡面是UCLINUX開發用的工具比如ARM-ELF-GCC只類的。工具鏈就是把很多工具打包在一起發布的方便你開發的東西。具體安裝方法看我另一篇筆記。
另外如果你開發LINUX就要用ARM-LINUX-TOOLS,不一樣,不通用。
5 U-BOOT
大名鼎鼎的BOOTLOADER生成工具,同類的好象還有VIVI(名字很曖昧~~)
生成的BOOTLOADER燒到FLASH里,然後就可以用BOOTLOADER下載 燒寫其他了
有了BOOTLOADER才能下UCLINUX。BOOTLOADER就像電腦上的BIOS。當然UCOS的不用這個,用什麼我不知道:)
最新版本是1.1.4 具體使用方法看我另一篇筆記吧。
6 UCLINUX包
UCLINUX的源碼包,不用多說了吧?建議大家用現成的先體會一下,然後再自己編譯,裁剪。因為單獨UCLINUX的編輯技術上比較簡單,但涉及的方面還是比較廣的。
7 VMWARE
老牌的虛擬機軟體,在一個機器上虛擬出一個機器裝LINUX(PC上用的),省得你來回開關機了。記得裝VMWARE-TOOLS,安裝方法在我另一篇筆記里。
六 有哪些書推薦
主要推薦ZLG的三本書,有這3本再加網路就不用別的書了,其中主要推薦前2本,3是介紹體系結構的,也不錯
1 ARM嵌入式LINUX系統構建與驅動開發,北航版
驅動寫的很詳細,前期開發介紹也很好
2 ARM 嵌入式系統實驗教程(二),北航版
有ZLG2200的原理圖,實驗程序和注釋,了解人家是怎麼開發的。
3 ARM嵌入式系統基礎教程
最重要的是體系結構,匯編部分介紹,看看吧,增加理論素質。
4 44B0數據手冊
寫在這里是強調它的重要。
不推薦ZLG早期出的紅色皮的ARM什麼體系結構~只類的
寫的太多,看煩了。
其他的書沒了幾本,沒看見好的,大家有看過的推薦吧。
七 選UCOS?UCLINUX?LINUX?VXWORKS?還是當單片機用
1 搞開發,工程設計,用UCOS,小巧,多進程,簡單,體現了ARM7的精髓。
2 LINUX 正根的嵌入式系統,LINUX消費與通信領域用的比較多,但缺點是必須ARM9才能跑,ARM9的板子自己做就不行了,6層板太貴。買開發板1K達底吧。但是還是推薦選ARM9+LINUX
3 UCLINUX 算投機嵌入式系統:)ARM7上可以跑,由有LINUX近親,學好好可以比較方便的轉向LINUX,像我一樣的窮鬼用吧,呵呵
4 VXWORKS
學好後可以找到高薪工作,但工作機會本身並不比LINUX好找。
5 當單片機用
不推薦,雖然我景仰的ZLG一直號召這么干。因為對於學習來說多進程的系統設計才是ARM7的玩頭,至少你也要整個UCOS啊:)
有朋友問我先學這個當基礎不行嗎?那當然可以~~但我當時就用了1周搞定,就是我先的ADS在RAM中調試的筆記。後來我清空FLASH用的小段程序還是當時寫的LED閃爍程序呢。另外1周里其中還因為自己過於菜,沒把OM設置好導致晶陣不陣
哈哈。這個是必須做的,但一帶而過。目標放的遠一點。
八 學習要用多長時間
我從菜鳥到現在兩個多月,中間被打擾數次。仍然搞定了PCB設計與製版,RAM調試,FLASH下載,UBOOT移植和下載UCLINUX(沒剪裁,用現成的),LCD驅動。
再次坦誠的說:我確實比較菜,說這些不是讓大家羨慕,只是告訴你們「你們應該比這個更好」
我相信良好的態度+合適的方法+及時的總結=成績
九 ARM都玩什麼
就幾點
1 硬體設計
2 系統移植
3 驅動開發
4 應用開發
沒了。其中推薦把注意力放在後兩個上,3有難度,4比較靈活,最重要的是都是找工作的砝碼。
十 我用的什麼板子
很多人問我這個問題,我特意寫過一個的。再說一次吧。
我是自己做的,RAM、ROM、8019等比較麻煩而當時的自己不理解的都按照龔俊的做的。保持其他不便的情況下做了如下改動。
1 加了串口通信的GPS模塊、 GPRS模塊
一個UART0,一個UART1,當與要用超級終端時用跳線切換。
2 SD卡,和7843觸摸屏
同時掛在SPI匯流排上,因為SPI只能掛一個設備,同時還做了I/O模擬的准備,把兩個設備又通過跳線掛在4個IO上。
3 擴了個IIC的35個鍵子的鍵盤
用的ZLG的7290,不佔用CPU,最大支持64個鍵子,只上了35個,其他留介面。
4 把LCD介面按照買的LCD改裝了,可以用FPC線直接連接。
所以改動雖然多,但真正很移植了,初期調試有關的並沒動,就是為了現在不那麼菜的時候做准備:)
十一 開發流程
這里是我的開發流程
1 設計原理圖(含WIGGLER的JTAG訪真器)
2 設計PCB(含WIGGLER的JTAG訪真器)
3 製版
4 焊接電壓,確定電壓沒問題
5 焊接44B0+JTAG電路+WIGGLER的JTAG訪真器+周邊電路,用BANYANT+模擬器連接,BANYANT提示錯誤,但可以顯示44B0編號,好象是0X0F0F0F0F只類的,說明44B0沒問題
6 焊接晶體+RAM+ROM+周邊電路,用BANYANT+模擬器連接,可以顯示正確的44B0了
7 用BANYANT+模擬器連接,開AXD,在命令行窗口操作RAM,看可不可以修改,可以的話(用內存窗口看RAM地址)RAM就沒問題
可以用這個命令「setmem 0xc000000,0xffffffff,32」
我的RAM掛在BANK6上 所以地址是0XC000000,你要是改了就也得改。
8 用我寫的《自己寫了個C工程模板又寫了個使用說明 》里的方法調試程序吧,寫個簡單的,我當時寫個LED閃爍的。看好使不。
9 把程序按照《FLASH燒寫總結 》里的燒到FLASH里,測試一下
10 按照《UBOOT 移植操作》移植UBOOT
11 按照《UCLINUX下載簡單說明》下個UCLINUX
12 看看驅動開發的方法,自己寫個驅動看看
13 還有很多事東西著你玩 呵呵
十二 關於JTAG訪真器
JTAG訪真器現在用的多是簡板的,一個244那種,用的沒什麼不好。
按照並口定義不同分幾種,建議選WIFFLER定義的,因為支持的軟體多。這個網上多的是,不多說了。
值得提的是有的JTAG訪真器原理圖上有跳線用來使能復位信號,這個一般不跳上。就是不用復位信號,因為JTAG協議里本身也可以控制44B0復位。
當然,板子上的復位信號跳線也不用跳。
十三 哪個公司的ARM
這個是問題比較簡單。
1 ARM7主要就幾個公司的
三星,PHILIP,ATMEL的
ATMEL的有比較便宜的AT91SAM7S32 和AT91SAM7S64 專為8位應用產品量身定做,價格很便宜好象《3刀吧。和PHILIP的21XX差不多,資料太少,項目中選還不錯。
其他兩家上面說了的不多說了吧
2 ARM9
這個玩2410和2440的多吧,現在2440還比較火啊 可以考慮買個了
但是2410就比較便宜了,作為學習來說反到和不錯,推薦整一個:)
其實ARM9用的最多的領域應該是消費電子,比如手機PDA,而這上面用的多的應該是INTEL的和TI的吧。
但是INTEL的TI的入門材料少,價格高,自己看情況定吧。
3. 哪裡有ads 1.2開發環境下載,誰有可以給我一個
ADS1.2
ADS是ARM公司的集成開發環境軟體,他的功能非常強大。他的前身是SDT,SDT是ARM公司幾年前的開發環境軟體,目前SDT早已經不再升級。ADS包括了四個模塊分別是:SIMULATOR;C 編譯器;實時調試器;應用函數庫。
ADS的編譯器調試器較SDT都有了非常大的改觀, ADS1.2提供完整的WINDOWS界面開發環境。C編譯器效率極高,支持c 以及c++,使工程師可以很方便的使用C語言進行開發。提供軟體模擬模擬功能,使沒有Emulators的學習者也能夠熟悉ARM的指令系統。配合FFT-ICE使用,ADS1.2提供強大的實時調試跟蹤功能,片內運行情況盡在掌握。ADS1.2需要硬體支持才能發揮強大功能。目前支持的硬體調試器有Multi-ICE以及兼容Multi-ICE的調試工具如FFT-ICE。而簡易下載電纜不能支持ADS1.2
ads1.2 中文教程
1. ADS軟體組成
2. ADS創建一個工程
3. 用ADS代碼進行調試
下載地址:
http://soft.laogu.com/download/ads1.2.pdf
經本人測試,無毒。放心下載。
4. 關於LINUX的優勢重要性已自然的從各種渠道耳濡目染,想學習它。請朋友指點怎樣學習怎樣展開
Linux 以它的高效性和靈活性著稱。具有多任務、多用戶的能力。 Linux 之所以受到廣大計算機愛好者的喜愛,其主要原因有兩個,一是它屬於自由軟體,用戶不用支付任何費用就可以獲得它和它的源代碼,並且可以根據自己的需要對它進行必要的修改。另一個原因是,它具有 Unix 的全部功能,任何使用 Unix 操作系統或想要學習 Unix 操作系統的人都可以從 Linux 中獲益。
想學的話到這去看看吧對你有幫助的!http://www.enet.com.cn/eschool/zhuanti/linux/
5. 嵌入式ARM linux操作系統中如何構建交叉開發環境
1 GECMlO開發板硬體構成
ARM處理器是一種支持16/32位雙指令集的高性能、低成本、低功耗的R ISC微處理器,目前已經佔領了75%以I:的32位RISC嵌入式產品f仃場。本文所選用的ARM920T微處理器屬於中端產品,應用也十分廣泛。$3C2410是32位低功耗RISC宏單元,其工作頻率為203 MHz,同時支持Thumbl6位精。簡指令集,從而能以較小的存儲空間需求,獲得32位的系統性能。64M位元組的SDRAM,由兩片K4S561632組成,工作在32位模式下;64M位元組NAND Flash,採用的是K9F1208,可以兼容16M,32M或128M位元組;10M乙太網介面,採用的是CS8900Q3,帶傳輸和連接指示燈;2路UART串列口,波特率可高達115200bps,並具有RS232電乎轉換電路Embedded·ICE(20腳標准JTAG)介面和並口式jTAG介面,支持ADS,SDT軟體的卜.載和調試以及FLASH的燒寫。
2 嵌入式Linux開發環境的搭建及開發工具的使用
2.1宿主機——目標機模式
進行項目開發前,先要做的是搭建一套基於Linux操作系統的應用開發環境,一般由目標板(GEC2410開發板)和宿主機(LiUUX虛擬機)所構成。如圖1所示。嵌入式系統通常是一個資源受限的系統,因此直接在嵌入式系統的硬體平台上編寫軟體比較困難,有時候甚拿是不可能的.目前一般採用的解決辦法是首先在通用計算機上編寫程序,然後通過交叉編譯生成目標平台七可以運行的二進制代碼格式,最後再下載到目標平台上的特定位置.卜運行.用來編譯這種程序的編譯器就叫交叉編譯器。為了不跟本地編譯器混淆,交叉編澤器的名字一般都有前綴。例如:arm.1inux—gcc。交叉開發環境是指編譯、鏈接和調試嵌入式應用軟體的環境,它與運行嵌入式應用軟體的環境有所不同,通常採用宿主機/目標機模式。
2.2 Linux伺服器交叉編譯環境的建立
Linux伺服器是嵌入式Linux內核編譯、應用程序開發、編譯等的公共平台,在一個嵌入式系統的開發過程中,有許多工作需要通過它來完成。交叉編譯工具用於編譯在目標系統上運行的嵌入式Linux內核及應用程序,包括編譯器、連接器、調試器以及代碼轉換J二具等實用程序,一般以瓜縮軟體包的方式提供給我們,稱為開發工具鏈(Toolchain).目前基於ARM架構的交叉編澤工具鏈為:allll-liuux.gcc-2.95.3。
1)GNU交叉工具鏈的下載
從ARM官方網站F載刪.arm.tinux.org.ak,可以從該站點下載2.95.3工具鏈:
ftp://tip.arm.Iinux.org.uk/pub/armlinux/toolehain/cross-2.95.3.tar.bz2
2)cross-2.95.3.tar.bz2包的安裝步驟
a.#mkdir/mr/local/arm;
b.#cp CROSS一2.95.3.tar.bz2/usr/local/ann;
C.#tar jxvf crog$一2.95.3.tar.bz2;
d.添加環境變數:在文{牛/ete/bashrc文件最後添加:
export PATH=/usr/local/arm/2.95.3/bin:$PATH:
e.工具鏈安裝完成。
2.3配置NFS服務的步驟
NFS服務就是將宿主機的一個目錄通過網路可以被掛載到其他計算機上。並且作為其他計算機的一個目錄,其目的就是讓不同的機器、不同的操作系統之間可以彼此共享文件。
NFS的使用分伺服器端和客戶端,其中伺服器端提供要共享的文件,客戶端通過掛載「mount」這一動作實現對共享文件的訪問操作。下面主要介紹GEC24 10開發板的Linux系統與虛擬機的LintLx通過NFS實現文件共享的方法與步驟:
1)在虛擬機linux配置nfs服務,編輯nfs配置文件/etdexports,設置共享目錄如:vi/etc/exports,添加:/root/nfs—share·(rw,sync,no—root—squash)。rW表示允許下位機讀寫該目錄,no_root_squash允許下位機以主機root用戶身份掛載根文件系統。
2)在虛擬機linux啟動NFS服務:(修改配置文件後就需要蕈新啟動施服務)#/etc/init.d/nfs reSTart或者用命令:#service nfs restarto.
3)防火牆的關閉。選擇系統設置一》安全級別,將安全級別改為「無防火牆」。
4)用交叉網線連接PC機(虛擬機)與開發板,目的讓兩個linux處在同一個網路內。
開發板的ip地址是:192.168.2.223,因此配置虛擬機ip為192.168.2開頭的ip地址,如可用下列命令配置:#ifcONfigethO 192.168.2.23。
5)在開發板linux系統中掛載虛擬機linux的NFS共享目錄,執行下列命令:#mkdir/tmp/nfs#mount—t nfs一0 nolock192.168.2.23:/root/nfs—share/trap/nfs。
2.4交叉調試器的製作
2.4.1交叉調試器的結構
程序的調試足檢杏程序正確性、可靠性、穩定性的重要手段,也是應用程序開發必不可少的組成部分。嵌入式軟體開發過程中的交叉調試與本地軟體開發過程中的調試方式有所差別。本地軟體開發調試器與被調試的程序往往運行在同一台計算機}:。而嵌入式軟體開發過程中,調試時採用的是在宿主機和目標機之間進行的交叉調試。調試器運行在宿主機,但被調試的進程卻是運行在目標板。調試器和被調試進程通過串口或者網路進行通信,調試器可以控制、訪問被調試進程,讀取被調試進程的當前狀態,並能夠改變被調試進程的運行狀態。
2.4.2製作交叉調試器的方法
1)解壓源碼包:tar zxf gdb一6.0.tar.gz
2)配置:cd gdb一6.0
mkdir build..arm..1inux
cd build..arm..1inux
../configure--target=arm·linux一一prefix=/usr/local/arm/2.95.3/
3)編譯:make
4)安裝:make install
在/usr/locaL/arm/2.95.3/bin/目錄下生成alTfl-linuxgdb工具
5)編譯生成針對f1.Eln處理器的gdbserver
a.進入sdb源代碼包中的gdb$erver目錄
cd sdb-6.0
cd gdb/gdbserver
b.配置生成gdbserver
chmod U+X configure
CC=arnl—linux—gcc./configure一一host=arm-linux
c.Make,生成gdbserver、gdbreplay
6)通過凼,將gdbserver/gdbreplay到目標板中
7)啟動目標板上的gdbserversabserver 192.168.1.88:2345 cross-teat其中192.168.1.88是目標板的IP地址。2345是任意指定的埠,也可以是其他埠。
8)啟動宿主機端arm.1inux-gdb調試器在宿主機的工作目錄中有對應的程序和源文件
#arm·hnux-柚CI『OS8一teat
(gdb)target remote 192.168.1.88:2345
連接遠程gdbserver
(sab)b main
設置斷點
(Sdb)C運行
6. 先在大公司用的[軟體調試工具]有哪些
LZ好,思創嵌入式開發網(EMBED.8800.ORG) 思創S3C44B0黃金開發板SDT集成開發環境程序開發功略
ARM開發日益流行,大有逐步取代51系列單片機的趨勢,為了更好幫助大家掌握ARM開發的相關集成開發環境,思創嵌入式開發團隊將利用思創S3C44B0黃金開發板為一個具體的開發平台,詳細介紹ARM SDT2.51集成開發環境、IAR集成開發環境、ADS集成開發環境下應用程序開發的具體過程,給眾多嵌入式學習的愛好者提供由淺入深的指導。 同時,我們也希望更多的嵌入式學習愛好者加入我們的行列,寫出更多更好的文檔,為嵌入式系統開發設計在國內的蓬勃發展作出自己的努力! 本文將講述SDT2.51的詳細安裝過程、通過思創S3C44B0黃金開發板提供的LEDTEST示例詳細講述SDT下程序編譯、調試、運行的具體過程,通過這樣一個示例的詳細介紹,力圖達到拋磚引玉的作用,讓剛接觸ARM嵌入式開發的愛好者能夠在短短的1-2個小時內迅速掌握SDT集成開發黃金的基本應用技巧,而後馬上進行相關的項目開發,並在項目開發的過程中不斷解決碰到的問題,當然,思創也很歡迎大家通過思創嵌入式開發論壇(embed.8800.org)不斷將自己的困惑、疑難、學習心得進行交流,這樣,必將極大提高大家的學習效率。 一、 安裝SDT2.51 SDT2.51是ARM公司提供的調試ARM內核CPU的一個功能比較強大的集成開發環境,雖 然現在ARM公司不再升級SDT,而轉向主推ADS集成開發環境,但是,由於ADS集成開發環境需要昂貴的MULTI-ICE硬體模擬調試器與之配合,因此,對於嵌入式設計的個人用戶而言,還是不太現實的一種開發手段。而SDT集成開發環境只需要製作成本低廉的簡易JTAG電纜與之配合,無疑對於個人用戶來說,這是一種理想的開發模式。其實,思創在發展初期,全套的軟體都是利用建議JTAG電纜+SDT實現的。 下面,我們將講述SDT2.51的安裝過程。 點擊SDT安裝目錄下的setup.ext程序,出現如下安裝界面: 思創嵌入式開發網(EMBED.8800.ORG) 1思創嵌入式開發網(EMBED.8800.ORG) 一直點擊NEXT,採用默認的設置,不用任何其他的修改,最後完成安裝。這樣,SDT2.51就安裝在C:\ARM251下了。 二、 啟動SDT2.51 安裝完畢後,點擊開始?程序?ARM SDT 2.51?ARM PROJECT MANAGER啟動SDT項 目管理器: 思創嵌入式開發網(EMBED.8800.ORG) 2思創嵌入式開發網(EMBED.8800.ORG) 將出現如下的窗口: 這樣,就可以開始具體的程序開發過程了。 三、創建工程、添加源文件 SDT採用了流行的項目管理源文件的機制,這種風格對於大多數程序開發者都是比較熟悉的。其基本的流程就是「創建一個PROJECT」?「依次將源文件添加到相應的PROJECT中」。 z 創建一個」LedTest」的PROJECT 在SDT2.51集成開發環境中,選取菜單「FILE?NEW?PROJECT」,將出現下圖: 幾個參數填寫如下: TYPE: ARM EXECUTABLE IMAGE PROJECT NAME: LedTest PROJECT DIRECTORY: D:\TEST\LED_Test 然後一直選擇OK,就可以出現一個沒有任何源文件的項目了,該項目有3種源代碼的發布 思創嵌入式開發網(EMBED.8800.ORG) 3思創嵌入式開發網(EMBED.8800.ORG) 方式:Debug、DebugRel、Release。我們一般都使用Debug。 z 編寫和添加源文件到項目中 由於SDT2.51的程序編輯器不是很好用,一般建議大家用UltraEdit編寫源代碼,然後將源 文件添加到項目中。這也是SDT2.51一直一來被人詬病的一個方面。為了我們那些可憐的銀子,也只有暫時遷就SDT了^_^ 下面我們將以思創光碟上提供的LED_EXAMPLE目錄下LED跑馬燈的程序為例,講述添加文件和編譯的過程。 首先將LED_EXMAPLE目錄下的*.C / *.h文件以及INC目錄(存放一些頭文件)拷貝到D:\TEST\LED_TEST目錄下,然後在SDT項目管理器中打開D:\TEST\LED_TEST.APJ項目,點擊Arm Executable Image目錄樹中的Debug欄目,將出現下圖: 然後,點擊選中SOURCE,選擇菜單「PROJECT? ADD FILES TO SOURCES」,依次選擇當前目錄中的C文件和S文件,這樣,就將源文件全部加入到了項目中。 四、編譯和鏈接程序 在進行下一步的編譯之前,需要著重提到鏈接過程的幾個參數的設置。選擇菜單「project?Tool Configuration for "Debug"?armlink?Set」,將出現下圖: 思創嵌入式開發網(EMBED.8800.ORG) 4思創嵌入式開發網(EMBED.8800.ORG) z 確保General標簽頁中的Search Path for Libraries的路徑是C:\ARM251\LIB,保證程序鏈接過程中能夠在正確的路徑下找到需要的庫文件。 z 確保在「ENTRY AND BASE」標前頁中的BASE OF IMAGE的設置為: Read-only :0XC1000000 Read-Write:0XC5000000 這樣設置的原因是:思創黃金開發板上SYSTEM SDRAM佔用的地址空間是0x0C000000-0x0C7FFFFF,具體可以參看《思創S3C44B0黃金開發板資源列表》一文。這樣,在調試過程中,SDT的調試數據和命令將通過JTAG電纜下載到開發板上的SYSTEM SDRAM中,進行程序的運行和DEBUG過程。當然,也可以將READ-ONLY的地址設置到FLASH中,即0X00000000。一般我們建議直接在SDRAM中直接運行程序。 思創嵌入式開發網(EMBED.8800.ORG) 5思創嵌入式開發網(EMBED.8800.ORG) 做好這些准備工作後,就可以正式開始程序的編譯和鏈接過程了。首先在ROM窗口中,選中DEBUG,然後選擇菜單「PROJECT?FORCE BUILD LEDTEST.APJ DEBUG」,SDT開始編譯和鏈接過程,將出現下圖: 可以看到編譯和鏈接沒有錯誤,一個WARNING可以忽略。 五、調試程序 通過前面的介紹,相信大家對SDT下如何創建和編譯、鏈接自己的項目有了很好的了解,接下來,重點將放在如何利用思創提供的WIGGLER JTAG電纜進行SDT下程序的調試過程。 首先,選擇菜單「Project?Debug LEDTEST.APJ DEBUG」,將出現下圖ARM DEBUGGER窗口: 思創嵌入式開發網(EMBED.8800.ORG) 6思創嵌入式開發網(EMBED.8800.ORG) SDT提供兩種放置模式:ARMULATER和ARM REMOTE,後者是真實地利用實際硬體進行ARM 調試過程,前者提供了一種軟體模擬ARM調試過程。為了進行真正地ARM硬體模擬,還需要進行一些設置。 在ARM DEBUGGER窗口中,選擇菜單「OPTIONS?CONFIGURE DEBUGGER」,出現下圖: 在TARGET ENVIRONMENT選項中選擇REMOTE A,然後點擊下邊的CONFIGURE按鈕,出現下圖: 思創嵌入式開發網(EMBED.8800.ORG) 7思創嵌入式開發網(EMBED.8800.ORG) 在HEARBEAT前面打勾,並且在ETHERNET後面輸入127.0.0.1表示本機的IP。之所以要 在此設置網路的地址,我們在《嵌入式系統軟體開發指南——移植uClinux到思創S3C44B0黃金開發板》一文的第一節有一詳細的闡述。 在做好這些設置後,就可以開始進行目標碼的轉載了,下圖比較清晰地描述了目標碼地下載機制,其實這也是各種調試器進行調試的一般機制。 在上位機後台運行的JTAG.EXE程序將SDT2.51各種調試數據和命令的網路數據包轉換成符合JTAG標準的計算機並口信號,並通過WIGGLER JTAG電纜下載到思創黃金開發板上。 思創嵌入式開發網(EMBED.8800.ORG) 8思創嵌入式開發網(EMBED.8800.ORG) 具體操作步驟如下: 1. 在上位機的JTAG(即將思創光碟的JTAG目錄拷貝到用戶具體的目錄)目錄下,在DOS SHELL直接敲入JTAG命令,將出現如圖結果: 表明ARM JTAG已經在運行,等待SDT2.51發送各種調試數據。需要提醒的是:思創提供的JTAG.BAT文件是針對WIN2000的上位機開發環境,如果是WIN98的開發環境,需要修改JTAB.BAT文件,將ALLOWIO 0X378去掉。關於這一問題的具體原理請參見《嵌入式系統軟體開發指南——移植uClinux到思創S3C44B0黃金開發板》一文的第一節。 2. 選擇菜單「FILE?LOAD IMAGE」,出現下圖: 選擇LEDTEST.AXF,SDT2.51將開始下載過程,如圖: 思創嵌入式開發網(EMBED.8800.ORG) 9思創嵌入式開發網(EMBED.8800.ORG) 這個過程將進行幾分鍾,具體時間視AXF文件大小而定。最後程序將停在ASM代碼的入口處。如圖: 現在就可以開始進行模擬了! 選擇菜單「EXECUTE」,就可以看到各種DEBUG命令以及相關的快捷鍵,如按F8就可以開始單步模擬,F5就可以開始全速模擬。 呵呵,這時我們不妨按F5,觀察開發板上LED,就可以發現LED的跑馬燈程序運行起來了。 將游標停留在44BINIT.S匯編文件的369行,如下圖: 思創嵌入式開發網(EMBED.8800.ORG) 10思創嵌入式開發網(EMBED.8800.ORG) 這是MAIN.C程序的入口地址,選擇菜單「EXECUTION?RUN TO CURSOR」,然後按F8單步執行,程序將跳轉到MAIN.C程序,如圖: 思創嵌入式開發網(EMBED.8800.ORG) 11思創嵌入式開發網(EMBED.8800.ORG) 這時,可以開始採用SDT提供的各種調試技巧,如設置斷點、全速運行、觀察變數、觀察寄存器、觀察存儲器空間等等。具體可以參見SDT提供的一些文檔,不再贅述。如果有用戶感興趣,不妨作一些工作,將各種具體的調試技巧一一介紹給大家。 最後,值得提醒大家的一點就是不妨在單步操作的時候觀察上位機JTAG窗口的變化情況,如圖: 大家可以清楚看到SDT不斷向JTAG電纜發出各種操作數據和命令。 小結 ARM開發在如火如荼地進行著,對於思創而言,拿一句流行地話來說,就是「將ARM開發進行到底」,思創將一如既往地恪守在嵌入式開發領域,不斷研發和銷售優秀的嵌入式開發板和各種工具,同時不斷完善各種相關的技術文檔。 最後,再次申明,我們是站在前輩們的基礎上不斷前行,在此,向所有為嵌入式開發提供各種研發工具和資源的前輩們表示敬意。 本文的目錄結構參看了龔俊先生的《ARM開發軟體使用教程》,在此表示謝意! 思創嵌入式開發網(EMBED.8800.ORG)
1.1 ARM SDT 2.5開發環境簡介
一、實驗目的
熟悉ARM SDT 2.5開發環境,學會ARM並行口模擬器的使用。使用SDT編譯、下載、調試並跟蹤一段已有的程序,了解嵌入式開發的基本思想和過程。
二、實驗內容
本次實驗使用ARM SDT 2.5集成開發環境。新建一個簡單的工程文件,並編譯這個工程文件。學習ARM並行口模擬器的使用和開發環境的設置。下載已經編譯好的文件到嵌入式控制器中運行。學會在程序中設置斷點,觀察系統內存和變數,為調試應用程序打下基礎。
三、預備知識
C語言的基礎知識、程序調試的基礎知識和方法。
四、實驗設備及工具(包括軟體調試工具)
硬體:ARM嵌入式開發平台、用於ARM7TDMI的JTAG模擬器、Pentium100以上PC機。
軟體:PC機操作系統Windows 98、Windows 2000或Windows XP,ARM SDT 2.51或ADS 1.2集成開發環境,模擬器驅動程序、超級終端通信程序。
五、實驗步驟
1.建立工程文件
(1)運行ARM SDT 2.5集成開發環境(ARM Project Manager)。選擇File|New命令,在對話框中選擇Project選項卡,單擊「確定」按鈕後彈出New Project對話框,如圖1-1所示,Type為工程模板類型,這里選擇ARM Executable Image,然後輸入工程名和所在路徑。單擊OK按鈕後新建一個工程文件。
(2)在新建的工程中,如圖1-2所示,選中工程樹的「根部」。使用命令Project|Tool Configuration for work1.apj|<asm> = armasm|Set,對整個工程的匯編進行設置。
圖1-1 新建一個工程文件 圖1-2 對整個工程的匯編進行設置
(3)因為開發板上的嵌入式處理器ARM7TDMI沒有浮點處理器,所以,如圖1-3所示,在彈出的對話框中設置Floating Point Processor為none,並保持其他的設置不變。
(4)選中工程樹的「根部」,通過Project|Tool Configuration for work1.apj|asmlink|Set命令,對整個工程的連接方式進行設置。
(5)在彈出的對話框中,打開Entry and Base選項卡,如圖1-4所示,設置連接的Read-Only(只讀)和Read-Write(讀寫)地址。地址0x0c080000是開發板上SDRAM的真實地址,是由系統的硬體決定的;0x0c200000指的是系統可讀寫的內存地址。也就是說,在0x0c080000~0x0c1fffff之間是只讀區域,存放程序的代碼段,從0x0c200000開始是程序的數據段。
圖1-3 設置Floating Point Processor為none 圖1-4 設置連接的地址
提示:用戶可以修改這兩個數值來決定程序存儲區的大小和數據存儲區的大小。但應注意SDRAM為8MB,地址范圍為0x0c000000~0x0c7fffff。其中0x0c080000之前的空間是留給LCD顯示緩存區的。
(6)打開Linker Configuration對話框中的ImageLayout選項卡,如圖1-5所示,設置程序的入口模塊。指定在生成的代碼中,程序是從44binit.s開始運行的,這里填寫44binit.s對應的目標文件44binit.o,Init是該匯編文件中的代碼段名字。
(7)選擇Project|Edit Project Template命令,系統彈出Project Template Editor對話框。在該對話框中可以看到一系列步驟名稱。SDT在處理工程文件時是按這些步驟完成的,每個步驟設定了對應的操作,以及該操作的輸入、輸出和命令行等。讀者可以選擇已有的步驟,單擊Edit按鈕打開該步驟設置對話框,觀察每個步驟所實現的功能。例如:步驟Compile是把.c和.h文件編譯成.o文件的,而步驟Link則就是把.o文件和 .alf文件連接生成.axf文件的。在這些步驟中的設置建議保留默認值。但這里缺少一個從.axf文件生成所需的.bin文件的步驟,所以使用New按鈕,為編譯器新建一個步驟,如圖1-6所示,取名為RomImage。
圖1-5 設置程序的入口模塊 圖1-6 為編譯器新建一個步驟
(8)按照如圖1-7的內容設置步驟RomImage的內容。使編譯器編譯的時候可以生成system.bin文件,這就是系統的可執行文件。可以看出該操作的輸入是當前工程的.axf文件,所在位置是Image,輸出是system.bin,位置在Eprom,操作由fromelf組件完成,命令行是fromelf -nozeropad <$projectname>.axf -bin system.bin。這里的Image和Eprom可以在設置好後的工程窗口中看到。步驟名稱和輸出位置名稱並不要求一致。
提示:在文本框中輸入文字後必須單擊Add按鈕添加到上方列表框中,否則單擊OK按鈕後該設置信息丟失。
(9)選擇Project|Edit Variables for work1.apj命令,系統彈出Edit Variables for work1.apj對話框。列表框中是該工程的一些變數,讀者也可以選擇某個變數名,在Value文本框中可以看到其值。$ProjectName變數設置的是工程名,可以和工程文件的文件名不一致,Image下的.axf文件將以此命名。這里注意一下變數config$armlink的值,應該是-info.total#total -ro-base#0xc080000 -rw-base#0xc200000 -first#44binit.o(init),和前面對armlink的設置一致。而變數config$asm的值是-fpu#none。這里需要將build_target變數的值設為system.bin,編譯器在生成此文件後步驟執行完畢,如圖1-8所示。
提示:選擇某個變數並更改其值後,必須單擊Apply按鈕使其生效,如果更改完畢後又選擇其他變數,則該設置將無效。
圖1-7 設置RomImage的內容 圖1-8 設置build_target變數
(10)選中工程樹中的DebugRel子樹,按Delete鍵刪除。
提示:在系統工程樹中Debug子樹是應用程序的調試版本,在生成的目標代碼中,包含了系統的調試信息。Release子樹是應用程序的發行版本,生成的代碼中不包括調試信息,而且編譯器還針對速度和代碼的大小進行優化。DebugRel子樹是一個折衷版本,通常用不到,所以,在這里刪除。
(11)回到Project Template Editor對話框中,單擊Edit Detail按鈕,在彈出的對話框中可以重新命名模板,如圖1-9所示。重新命名模板後可以保存該工程,並把該空工程(還沒有添加工程文件)復制到SDT安裝路徑下的Template目錄下,下次新建工程時可以在New Project對話框中的Type列表框中看到該模板,使用該模板無需重新設置工程參數。
(12)至此,工程文件設置完畢。包括對armlink和armasm的參數設置,新建生成system.bin文件的編譯步驟和對應變數。建議將該設置後的工程文件作為模板保存,以方便日後使用。同時注意上文關於操作的提示,以前多數用戶建立模板失敗的原因可能就在於操作上的失誤。
(13)把光碟中SDT實驗所在目錄中的「1-開發環境實驗」下的STARTUP目錄復制到工程路徑下。如圖1-10所示,選中工程樹中Debug子樹的Sources選項。通過Project|Add Files to Sources命令,把STARTUP目錄下的*.S和*.c文件加入到工程中。
圖1-9 重新命名模板 圖1-10 加入工程的源文件
(14)選中工程樹中Debug子樹的IncludedFiles選項。通過Project|Add Files to IncludedFiles命令,把STARTUP目錄下的所有*.h文件都加入工程中。
(15)在需要用到庫文件的工程中,選中工程樹中Debug子樹的Libraries選項。通過Project|Add Files to Libraries命令,把*.ALF庫文件加入工程中。
(16)雙擊工程樹中Debug子樹的Sources選項中的main.c,打開main.c文件。下面是Main()函數中的內容,程序向LCD和串口輸出字元串「Hello world!」。
int Main(int argc, char **argv)
{
ARMTargetInit();
LCD_Init();
LCD_ChangeMode(DspTxtMode); //轉換LCD顯示模式為文本顯示模式
LCD_Cls(); //文本模式下清屏命令
LCD_printf("Hello world!\n"); //向液晶屏輸出
Uart_Printf("\nHello world!\n"); //向串口輸出
while(1);
}
讀者可以分別打開其他的源文件,了解該系統運行的基本知識。這個程序沒有用到操作系統,只是簡單地說明工程的開發過程,帶有操作系統的實驗將在「μC/OS-II在ARM處理器上的移植及編譯」實驗之後出現。
2.進行程序的在線模擬、調試
(1)回到ARM Project Manager對話框,選中工程樹中的Debug子樹,通過Project |
Build work1.apj「Debug」命令(或者工具欄中的相應按鈕)編譯整個工程。
(2)把ARM的JTAG模擬器連接到PC機的並行口和開發板上,打開開發板的電源,運行模擬器的驅動程序UarmJTAG.exe。
(3)使用Project|Debug work1.apj「Debug」命令(或者工具欄中的相應按鈕)啟動ARM Debugger軟體調試程序。
(4)在ARM Debugger中,通過Options|Configure Debugger命令設置模擬器。如 圖1-11所示,在彈出的對話框中,設置Target Environment為Remote_A。
(5)單擊Configure按鈕,按照如圖1-12所示,設置模擬器。
圖1-11 設置模擬器 圖1-12 設置模擬器
(6)出現下面的提示信息以後,單擊「是」按鈕,ARM Debugger開始通過模擬器裝載程序,如圖1-13所示。
圖1-13 裝載程序
注意:第(4)、(5)步設置好後,以後再調試的時候直接進行到第(6)步,不需要再設置。當不能進行第(6)步時,重復第(4)和第(5)步。
(7)裝載完畢以後,通過Execute|Go命令(或者工具欄中的相應按鈕)運行程序。
(8)當程序運行時,可以使用Execute|Stop命令(或者工具欄中的相應按鈕)暫停程序的運行。如圖1-14所示,在Execute窗口中將顯示出程序暫停的位置。
圖1-14 顯示程序暫停的位置
(9)通過Execute|Step命令(或者工具欄中的相應按鈕)可以單步運行程序。也可以使用Step In、Step Out命令進入或者跳出函數的調用。
(10)在程序停止運行的時候,選擇View|Source Files命令,可以打開如圖1-15所示的源程序列表窗口,雙擊列表中的文件名可以查看相應的源文件。
注意:查看源文件時,有時可能會出現看不到自己的源文件的情況,這時要將工程重新強制編譯一下。
(11)在源文件列表中打開main.c文件。選擇源文件中的某一行,單擊滑鼠右鍵,如圖1-16所示,用Toggle Breakpoint命令可以設置斷點,使程序運行到這里停下來。
(12)使用在View菜單下的Registers、Variables和Memory命令可以查看工作寄存器或者內存變數。讀者可以逐一地嘗試,為以後調試程序打下基礎。
圖1-15 查看源文件 圖1-16 設置斷點 7025希望對你有幫助!
7. WEB開發管理系統如何調用IC卡讀卡器
如果你只需要用到IC卡裡面的號,不需要對IC卡進行寫入操作,你可以直接用那種即插即用的IC卡讀卡器,即把IC卡插到電腦上,你的游標在什麼位置,讀卡器讀到的卡號就在什麼位置,那種非常簡便。但如果要寫入,就需要做相應的開發了,而且還要兼容不同的瀏覽器,稍微會麻煩一些。
8. 急求!!!ads1.2的介紹最好詳細點
ADS1.2
ADS是ARM公司的集成開發環境軟體,他的功能非常強大。他的前身是SDT,SDT是ARM公司幾年前的開發環境軟體,目前SDT早已經不再升級。ADS包括了四個模塊分別是:SIMULATOR;C 編譯器;實時調試器;應用函數庫。
ADS的編譯器調試器較SDT都有了非常大的改觀, ADS1.2提供完整的WINDOWS界面開發環境。C編譯器效率極高,支持c 以及c++,使工程師可以很方便的使用C語言進行開發。提供軟體模擬模擬功能,使沒有Emulators的學習者也能夠熟悉ARM的指令系統。配合FFT-ICE使用,ADS1.2提供強大的實時調試跟蹤功能,片內運行情況盡在掌握。ADS1.2需要硬體支持才能發揮強大功能。目前支持的硬體調試器有Multi-ICE以及兼容Multi-ICE的調試工具如FFT-ICE。而簡易下載電纜不能支持ADS1.2
ads1.2 中文教程
1. ADS軟體組成
2. ADS創建一個工程
3. 用ADS代碼進行調試
下載地址:
http://soft.laogu.com/download/ads1.2.pdf
經本人測試,無毒。放心下載。
9. 嵌入式軟體系統的構成,嵌入式開發環境搭建的步驟有哪些
1 GECMlO開發板硬體構成 ARM處理器是一種支持16/32位雙指令集的高性能、低成本、低功耗的R ISC微處理器,目前已經佔領了75%以I:的32位RISC嵌入式產品f仃場。本文所選用的ARM920T微處理器屬於中端產品,應用也十分廣泛。$3C2410是32位低功耗RISC宏單元,其工作頻率為203 MHz,同時支持Thumbl6位精。簡指令集,從而能以較小的存儲空間需求,獲得32位的系統性能。64M位元組的SDRAM,由兩片K4S561632組成,工作在32位模式下;64M位元組NAND Flash,採用的是K9F1208,可以兼容16M,32M或128M位元組;10M乙太網介面,採用的是CS8900Q3,帶傳輸和連接指示燈;2路UART串列口,波特率可高達115200bps,並具有RS232電乎轉換電路Embedded·ICE(20腳標准JTAG)介面和並口式jTAG介面,支持ADS,SDT軟體的卜.uk/pub/armlinux/toolehain/cross-2.95.3.tar.bz2 2)cross-2.95.3.tar.bz2包的安裝步驟 a.#mkdir/mr/local/arm; b.#cp CROSS一2.95.3.tar.bz2/usr/local/ann; C.#tar jxvf crog$一2.95.3.tar.bz2; d.添加環境變數:在文{牛/ete/bashrc文件最後添加: export PATH=/usr/local/arm/2.95.3/bin:$PATH: e.工具鏈安裝完成。 2.3配置NFS服務的步驟 NFS服務就是將宿主機的一個目錄通過網路可以被掛載到其他計算機上。並且作為其他計算機的一個目錄,其目的就是讓不同的機器、不同的操作系統之間可以彼此共享文件。 NFS的使用分伺服器端和客戶端,其中伺服器端提供要共享的文件,客戶端通過掛載「mount」這一動作實現對共享文件的訪問操作。下面主要介紹GEC24 10開發板的Linux系統與虛擬機的LintLx通過NFS實現文件共享的方法與步驟: 1)在虛擬機linux配置nfs服務,編輯nfs配置文件/etdexports,設置共享目錄如:vi/etc/exports,添加:/root/nfs—share·(rw,sync,no—root—squash)。rW表示允許下位機讀寫該目錄,no_root_squash允許下位機以主機root用戶身份掛載根文件系統。 2)在虛擬機linux啟動NFS服務:(修改配置文件後就需要蕈新啟動施服務)#/etc/init.d/nfs reSTart或者用命令:#service nfs restarto. 3)防火牆的關閉。選擇系統設置一》安全級別,將安全級別改為「無防火牆」。 4)用交叉網線連接PC機(虛擬機)與開發板,目的讓兩個linux處在同一個網路內。 開發板的ip地址是:192.168.2.223,因此配置虛擬機ip為192.168.2開頭的ip地址,如可用下列命令配置:#ifcONfigethO 192.168.2.23。 5)在開發板linux系統中掛載虛擬機linux的NFS共享目錄,執行下列命令:#mkdir/tmp/nfs#mount—t nfs一0 nolock192.168.2.23:/root/nfs—share/trap/nfs。 2.4交叉調試器的製作 2.4.1交叉調試器的結構 程序的調試足檢杏程序正確性、可靠性、穩定性的重要手段,也是應用程序開發必不可少的組成部分。嵌入式軟體開發過程中的交叉調試與本地軟體開發過程中的調試方式有所差別。本地軟體開發調試器與被調試的程序往往運行在同一台計算機}:。而嵌入式軟體開發過程中,調試時採用的是在宿主機和目標機之間進行的交叉調試。調試器運行在宿主機,但被調試的進程卻是運行在目標板。調試器和被調試進程通過串口或者網路進行通信,調試器可以控制、訪問被調試進程,讀取被調試進程的當前狀態,並能夠改變被調試進程的運行狀態。 2.4.2製作交叉調試器的方法 1)解壓源碼包:tar zxf gdb一6.0.tar.gz 2)配置:cd gdb一6.0 mkdir build..arm..1inux cd build..arm..1inux ../configure--target=arm·linux一一prefix=/usr/local/arm/2.95.3/ 3)編譯:make 4)安裝:make install 在/usr/locaL/arm/2.95.3/bin/目錄下生成alTfl-linuxgdb工具 5)編譯生成針對f1.Eln處理器的gdbserver a.進入sdb源代碼包中的gdb$erver目錄 cd sdb-6.0 cd gdb/gdbserver b.配置生成gdbserver chmod U+X configure CC=arnl—linux—gcc./configure一一host=arm-linux c.Make,生成gdbserver、gdbreplay 6)通過凼,將gdbserver/gdbreplay到目標板中 7)啟動目標板上的gdbserversabserver 192.168.1.88:2345 cross-teat其中192.168.1.88是目標板的IP地址。2345是任意指定的埠,也可以是其他埠。 8)啟動宿主機端arm.1inux-gdb調試器在宿主機的工作目錄中有對應的程序和源文件 #arm·hnux-柚CI『OS8一teat (gdb)target remote 192.168.1.88:2345 連接遠程gdbserver (sab)b main 設置斷點 (Sdb)C運行