當前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]傳統(tǒng)的嵌入式開發(fā)環(huán)境需要單片機的仿真器,包括C語言、匯編語言、調(diào)試工具等的集成開發(fā)環(huán)境IDE、實時操作系統(tǒng)等。由于Flash技術(shù)的發(fā)展,仿真器已可以省去。隨著BDM調(diào)試工具的標準化,BDM調(diào)試工具會變得越來越簡單、越

傳統(tǒng)的嵌入式開發(fā)環(huán)境需要單片機的仿真器,包括C語言、匯編語言、調(diào)試工具等的集成開發(fā)環(huán)境IDE、實時操作系統(tǒng)等。

由于Flash技術(shù)的發(fā)展,仿真器已可以省去。隨著BDM調(diào)試工具的標準化,BDM調(diào)試工具會變得越來越簡單、越來越通用。

軟件方面,Linux下的自由軟件GNU gcc可以完成幾乎所有知名CPU以及DSP的交叉C編譯和調(diào)試,故IDE可以省去。

操作系統(tǒng)方面,uClinux、RTLinux、μC/OS等源碼開放的、免費的嵌入式操作系統(tǒng)也都性能穩(wěn)定可靠。

因此,全部使用自由軟件開發(fā)嵌入式應(yīng)用無疑是一種不錯的選擇。我們在32位MCU ColdFire上實現(xiàn)了上述全部開發(fā)過程。這一過程原則上也適合其它幾乎所有的32位嵌入式應(yīng)用系統(tǒng)的開發(fā)。

  1 提倡使用自由軟件開發(fā)嵌入式系統(tǒng)

  自由軟件有強大的網(wǎng)上技術(shù)支持是公認的,不斷升級的新版本的推出表明了自由軟件強大的生命力。然而,使用自由軟件有一定的難度,首先要熟悉Linux的使用,學(xué)會看Linux下的幫助信息。然后是學(xué)會遇到問題如何解決。向高手請教是解決問題的辦法之一。在清華大學(xué),校園網(wǎng)中的BBS是研究生交流的極好方式。還有一個方法是在網(wǎng)上搜索,因為您遇到的問題其他人以前或許也遇到過,解決辦法可能網(wǎng)上就有。再有一個辦法就是直接給作者發(fā)電子郵件。自由軟件有源碼、大多都有作者的Email 地址。我們體會使用Linux下的GNU gcc 等軟件的難點主要在使用環(huán)境的建立上,一旦使用環(huán)境建立起來了,僅僅是使用并不難。在國外,這部分工作有專門的系統(tǒng)管理員為你做好,而國內(nèi)這部分工作往往要自己做,故增加了Linux系統(tǒng)的使用難度。以GNU gcc 為例,根據(jù)我們的研究生的經(jīng)驗,建立并熟悉使用的過程大約需要2個月的時間。而熟悉一個買來的商業(yè)軟件也需要2周乃至1個月的時間。也就是說,買商業(yè)軟件可以節(jié)省1個月的時間。

  2 Linux開發(fā)環(huán)境的建立

  一個人用Linux開發(fā)嵌入式應(yīng)用,可以在自己的PC機上裝一套Linux,例如,Red Hat Linux??梢允褂肔inux中的X windows(xterm)開若干個窗口用于編譯、下載、調(diào)試等;可以使用Linux中的emacs作文本編譯。Windows 中有的軟件在Linux 中幾乎都有。但由于多數(shù)人對Linux環(huán)境和Linux中的應(yīng)用程序不熟悉,寧愿用PC上基于Windows的操作系統(tǒng),此時可以在Windows環(huán)境下裝上Cygwin軟件。GNU中的Cygwin是在Windows下運行Linux的自由軟件。但我們發(fā)現(xiàn),Cygwin的兼容性似乎不太好,在有的PC機上能裝得上,有的PC機上裝不上。Cygwin的安裝過程要兩三個小時,有時裝到一半出現(xiàn)錯誤很不好處理。據(jù)說VMWare的Windows版本也可以在Windows環(huán)境下開出Linux的窗口,但VMWare不是自由軟件。

  我們采用的辦法是用1臺PC機運行Linux作為服務(wù)器。開發(fā)小組中每個成員都可以通過局域網(wǎng)用Telnet登錄到這臺Linux服務(wù)器上去,被開發(fā)的目標板也掛在網(wǎng)上。在服務(wù)器的Linux環(huán)境下,用GNU gcc編譯生成目標代碼,再用FTP傳回到自己的PC機上,然后通過串行口或網(wǎng)絡(luò)下載到目標機上。BDM工具主要用于硬件調(diào)試。因為BDM工具的支持軟件也是Linux下的自由軟件,故BDM工具只能接在Linux服務(wù)器的并口上。硬件調(diào)試完成后,可以把Debug程序?qū)懭隖lash,然后就不需要BDM工具了。
檢驗開發(fā)環(huán)境是否建立好了得有1塊目標板。在開發(fā)環(huán)境建立起來之前,冒然設(shè)計自己的硬件,難度較大??梢杂蒙碳姨峁┑脑u估板作為目標板先把開發(fā)環(huán)境建立起來。可以通過用GNU gcc 編譯uClinux 然后下載到目標板上運行的辦法來熟悉Linux下 GNU gcc的開發(fā)環(huán)境,檢驗開發(fā)環(huán)境是否已建立好。如果是購買第3方的硬件,則要特別小心。有些惡劣廠商的產(chǎn)品的確可以運行uClinux,但其是在軟件或硬件中做了些陷阱,使用戶只能用他的硬件。

  3 GNU gcc交叉編譯器

  運行于Linux操作系統(tǒng)下的自由軟件GNU gcc編譯器,不僅可以編譯Linux操作系統(tǒng)下運行的應(yīng)用程序、編譯Linux本身,還可以作交叉編譯,編譯運行于其它CPU上的程序??梢宰鹘徊婢幾g的CPU(或DSP)涵蓋了幾乎所有知名廠商的產(chǎn)品。用于嵌入式應(yīng)用的、眾所周知的CPU包括:Intel的i386、Intel960、AMD29K、ARM、M32、MIPS、M68K、ColdFare、PowerPC、68HC11/12、TI的TMS32等等。詳細列表可查看http://gcc.gnu.org/reading網(wǎng)站。

  GNU gcc編譯器是一套完整的交叉C編譯器,包括:
  ◇ C交叉編譯器 gcc;
  ◇ 交叉匯編工具 as;
  ◇ 反匯編工具 objdump;
  ◇ 連接工具 Ld;
  ◇ 調(diào)試工具 gbd。

  可以用批處理文件 makefile 將上述工具組合成方便的命令行形式。makefile 是用bash語言寫的。bash語言是很像BASIC語言的一種命令解釋語言,范例可以從網(wǎng)上獲得。

  4 嵌入式操作系統(tǒng)

  嵌入式應(yīng)用中的操作系統(tǒng)多為實時操作系統(tǒng)。μC /OS是一個免費的小實時操作系統(tǒng)內(nèi)核,內(nèi)核代碼僅幾K~十幾K。已有10年的應(yīng)用史,并已經(jīng)被移植到了幾乎所有的嵌入式應(yīng)用類CPU上。它的實時性、穩(wěn)定性已得到世人的公認。由于μC/OS的商業(yè)價值,后來的μC /OS-II不再是免費的,但仍是一個低價位的操作系統(tǒng)。帶有文件系統(tǒng)、功能更強的嵌入式操作系統(tǒng)有uCLinux,它的內(nèi)核需要至少512 KB存儲空間。面向各種不同的商業(yè)硬件平臺的、各種版本的uClinux的源碼在網(wǎng)上都可以找到。我們是從www. uclinux.org上下載uClinux源代碼的。用GNU gcc編譯,通過編譯運行uClinux熟悉了這一套開發(fā)環(huán)境。uClinux是一套很優(yōu)秀的自由軟件,很多掌上電腦都是基于uClinux開發(fā)的,今后PC機上有什么軟件,掌上電腦(例如以ARM為CPU的掌上電腦)上就會有什么軟件。這些軟件都可以是基于uClinux的。uClinux不是實時的,而自由軟件RTLinux是實時的。由于上述操作系統(tǒng)都是有源碼的,其硬件相關(guān)部分可以通過定義一些函數(shù)移植上去。有 Linux的開發(fā)環(huán)境,有GNU gcc的C交叉編譯器,有操作系統(tǒng)的源代碼,就可以自如地設(shè)計自己的應(yīng)用了。

  經(jīng)典的uClinux下載地址為http://www.uclinux.org,但對于某些平臺(比如ARM),用GOOGLE搜索一下"uClinux+ARM"往往能找到比uClinux.org更好的網(wǎng)址。不過Coldfire還是推薦用http://www.uclinux.org/ports/coldfire/,上面的版本是uClinux目前最主要的維護者Greg Ungerer(gerg@snapgear.com)開發(fā)的,是uClinux最原始、最規(guī)范的版本。
我們用的是:

  ◇ 內(nèi)核代碼
 ?。?a >http://www.uclinux.org/ports/coldfire/source.html上的Full Source Distribution)
uClinux-dist-20020306.tar.gz

  ◇ 交叉編譯器
 ?。?a >http://www.uclinux.org/ports/coldfire/source.html上的M68K/ColdFire Binary Tools (m68k-elf tool chain) )
m68k-elf-tools-20020218.tar.gz[!--empirenews.page--]5 ColdFire 5307板的開發(fā)過程與經(jīng)驗

 

  ColdFire是Motorola 在68K基礎(chǔ)上推出的新的32位嵌入式微處理器內(nèi)核,有51XX、52XX、53XX、54XX等4個系列。5307的運算能力可達75MIPS。下面描述的開發(fā)過程也可以用于PowerPC、ARM等嵌入式應(yīng)用的開發(fā)。我們以ColdFire5307為核心設(shè)計了帶有16MB SDRAM、2MB Flash,10 M以太網(wǎng)接口的硬件平臺,移植了Debug/Monitor駐留程序并通過BDM接口寫入到Flash中,編譯了uCLinux內(nèi)核并使uClinux運行起來。我們移植了實時操作系統(tǒng)μC/OS-II?;?mu;C/OS-II,我們正在寫基于 μC/OS的TCP/IP協(xié)議棧。后續(xù)的文章中將詳細介紹我們的開發(fā)過程,讀者按照我們提供的步驟就可以自行開發(fā)產(chǎn)品。

  以下,介紹如何搭建能運行GNU gcc交叉C編譯的Linux平臺

  6 搭建Linux下開發(fā)ColdFire的軟件平臺

(1)安裝Linux

  首先應(yīng)該安裝RedHat 6.2版本的Linux,因為uClinux的原作者使用的是RedHat6.2平臺。為了避免可能出現(xiàn)的不必要的麻煩,建議使用RedHat6.2平臺。

(2)GNU gcc交叉編譯器的建立

  可以到http://www.uclinux.org/port/coldfire下面下載最新的M68K/ColdFire的交叉編譯器。我們使用的是m68k-elf-tools-20010716.tar.gz,安裝命令是:

  tar xzf m68k-elf-tools-20010716.tar.gz

  執(zhí)行后會把ColdFire的交叉編譯器安裝到/usr/local/目錄下面。其中/usr/local/bin目錄下是可執(zhí)行文件。

(3)安裝調(diào)試工具BDM的驅(qū)動(BDM Driver)

  下載gdb-bdm-20010901.tar.gz 用下述命令解壓:
tar xzf gdb-bdm-20010901.tar.gz
執(zhí)行后會新建gdb-bdm-20010901目錄,在該目錄下面運行:
./local_script/build_it
然后到/gdb-bdm-20010901/driver/linux目錄下面運行:
make install

  然后運行:

mknod /dev/bdmcf0 c 34 4 添加ColdFire系列CPU的BDM驅(qū)動。
在文件/etc/conf.modules添加:
alias char-major-34 bdm
在文件/etc/rc.d/rc.local添加:
/sbin/insmod bdm
再到/gdb-bdm-20010901/lib下面:
make instal

(4)測試BDM
到/gdb-bdm-20010901/test目錄下面:
./chk /dev/bdmcf0,可以測試BDM驅(qū)動是否工作正常。

(5)編譯GDB
下載gdb文件gdb-5.0.tar.gz,用下述命令解壓:
tar xzf gdb-5.0.tar.gz
到生成的目錄gdb-5.0下面運行:
patch -p1 < /where/gdb-bdm-20010901/gdbPatches/gdb-5.0-patch
where就是/gdb-bdm-20010901的目錄。
然后運行
./configure --target=m68k-bdm-elf --prefix=/usr/local/
再運行
make
然后是
make install

這樣,整個ColdFire的交叉編譯平臺和Debug平臺就建立完成了。接下來就可以編譯運行在ColdFire系列CPU上的匯編C程序了。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉