新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Linux開發環境的建立步驟

        Linux開發環境的建立步驟

        作者: 時間:2011-06-28 來源:網絡 收藏

        傳統的嵌入式需要單片機的仿真器,包括C語言、匯編語言、調試工具等的集成IDE、實時操作系統等。

        本文引用地址:http://www.104case.com/article/150550.htm

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

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

        操作系統方面,uClinux、RT、μC/OS等源碼開放的、免費的嵌入式操作系統也都性能穩定可靠。

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

          1 提倡使用自由軟件開發嵌入式系統

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

          2 Linux開發環境的建立

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

          我們采用的辦法是用1臺PC機運行Linux作為服務器。開發小組中每個成員都可以通過局域網用Telnet登錄到這臺Linux服務器上去,被開發的目標板也掛在網上。在服務器的Linux環境下,用GNU gcc編譯生成目標代碼,再用FTP傳回到自己的PC機上,然后通過串行口或網絡下載到目標機上。BDM工具主要用于硬件調試。因為BDM工具的支持軟件也是Linux下的自由軟件,故BDM工具只能接在Linux服務器的并口上。硬件調試完成后,可以把Debug程序寫入Flash,然后就不需要BDM工具了。
        檢驗開發環境是否建立好了得有1塊目標板。在開發環境建立起來之前,冒然設計自己的硬件,難度較大。可以用商家提供的評估板作為目標板先把開發環境建立起來。可以通過用GNU gcc 編譯uClinux 然后下載到目標板上運行的辦法來熟悉Linux下 GNU gcc的開發環境,檢驗開發環境是否已建立好。如果是購買第3方的硬件,則要特別小心。有些惡劣廠商的產品的確可以運行uClinux,但其是在軟件或硬件中做了些陷阱,使用戶只能用他的硬件。

          3 GNU gcc交叉編譯器

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

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

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

          4 嵌入式操作系統

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

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

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

          ◇ 交叉編譯器
          (http://www.uclinux.org/ports/coldfire/source.html上的M68K/ColdFire Binary Tools (m68k-elf tool chain) )
        m68k-elf-tools-20020218.tar.gz

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 藁城市| 贵定县| 潍坊市| 新泰市| 通化市| 阳山县| 聂拉木县| 蕲春县| 西吉县| 赣州市| 尼玛县| 辛集市| 怀安县| 河曲县| 屏东县| 姚安县| 康定县| 蕉岭县| 乐昌市| 衡阳县| 台州市| 邯郸市| 元阳县| 瑞安市| 克拉玛依市| 凌海市| 剑川县| 安庆市| 榆林市| 嘉善县| 巴青县| 保定市| 咸丰县| 昌都县| 逊克县| 新干县| 十堰市| 黑水县| 精河县| 河东区| 邢台市|