1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 用GNU工具開發基于ARM的嵌入式系統

        時間:2024-10-04 02:29:00 理工畢業論文 我要投稿
        • 相關推薦

        用GNU工具開發基于ARM的嵌入式系統

        摘要:介紹如何利用GNU的工具開發基于ARM的嵌入式系統,以及使用編譯器、連接器和調試工具的具體方法,為廣大嵌入式系統開發人員提供一種低成本的開發手段。

        當前,ARM公司的32位RISC處理器,以其內核耗電少、成本低、功能強、特有16/32位雙指令集,已成為移動通信、手持計算、多媒體數字消費等嵌入式解決方案的RISC標準,市場占有率超過了75 %。多家公司都推出了自己的基于ARM內核的處理器產品,越來越多的開發人員開始了針對ARM平臺的開發。通常開發人員需要購買芯片廠商或第三方提供的開發板,還需要購買開發軟件,如C編譯器或者集成了實時操作系統的開發環境。開發板的價格從數百到上千美元,而編譯器、實時操作系統價格更是動輒數千到數萬美元。這樣,在開發初期,軟硬件上的投資就需要上萬美元,對于國內大多數開發人員來說,無疑是太貴了。

          慶幸的是,GNU所倡導的自由軟件給開發者帶來了福音。1984 年,旨在開發一個類似 Unix 的,并且是完全免費的完整操作系統和配套工具:GNU 系統(發音為"guh-NEW")。GNU的操作系統和開發工具都是免費的,遵循GNU 通用公共許可證 (GPL)協議,任何人都可以從網上獲取全部的源代碼。關于GNU和公共許可證協議的詳細資料,讀者可參看GNU網站的中文介紹:http://.cn/semiconductors/。作為應用開發的最小系統必須包括RAM(程序運行空間)、Flash(存放目標代碼)和串行接口(用于調試和下載程序)。MX1提供了6個片選端(CS0~CS5),內置了SDRAM控制器,數據寬度32位。在筆者的系統中采用了2片8M×16位的SDRAM和2片4M×16位的同步Flash存儲器,分別接入數據線的低16位和高16位,如圖1所示。

          圖1中SDRAM接片選端CS2,Flash接片選端CS3,其余為SDRAM/Flash的控制信號。最小系統還包括至少1個串行接口,可以采用MX1內置的UART控制器,圖略。

        2 自舉模式

          目前,許多嵌入式處理器都提供了自舉模式(Bootstrap),供用戶寫入引導代碼。自舉模式利用了固化在芯片內部的一段引導程序,當處理器復位時,如果在特定引腳上加信號,則處理器將在復位后執行固化ROM中的程序。例如,MX1提供了4條復位引腳,復位時引腳不同的電平組合可以從不同的片選端啟動系統。自舉ROM中的程序完成串口的初始化,然后等待用戶從串口寫入用戶代碼。自舉模式所能接受的是一種專門格式的文本文件,包括數據和要寫入/讀出的地址。關于自舉模式的代碼格式,可參考相關芯片的手冊。在摩托羅拉的網站還提供了許多小工具,幫助開發者將其它格式的文件轉換成為自舉模式格式。通過自舉模式下載的通常是一段和上位機軟件(如超級終端)通信的程序,完成接收數據并寫入Flash的操作。寫入的數據可以是用戶自己的應用程序、數據或者操作系統的內核。通過自舉模式下載的引導程序同樣可以用GNU工具開發。

        3 GNU的編譯器和開發工具

          GNU提供的編譯工具包括匯編器as、C編譯器gcc、C 編譯器g 、連接器ld和二進制轉換工具objcopy;贏RM平臺的工具分別為arm-linux-as、arm-linux-gcc、arm-linux-g 、arm -linux-ld 和arm-linux-objcopy。GNU的所有開發工具都可以從www.gnu.org上下載,基于ARM的工具可以從www.uclinux.org獲得。GNU的編譯器功能非常強大,共有上百個操作選項,這也是這類工具讓初學者頭痛的原因。不過,實際開發中只需要用到有限的幾個,大部分可以采用缺省選項。GNU工具的開發流程如下:編寫C、C 語言或匯編源程序,用gcc或g 生成目標文件,編寫連接腳本文件,用連接器生成最終目標文件(elf格式),用二進制轉換工具生成可下載的二進制代碼。GNU工具都運行在Linux下,開發者需要1臺運行Linux的PC作為上位機。由于篇幅所限,不能完整地介紹整個嵌入式操作系統的開發過程,將以第二節中提到的通過自舉模式下載的引導程序為例,說明開發的過程。對于像Linux這樣的大系統,基本的開發流程是一樣的。

          引導程序將通過自舉模式下載到MX1的片內RAM,從地址0x00300000開始并執行。完成串口和SDRAM的初始化后,引導程序將等待接收應用程序或操作系統內核,將接收到的數據放在SDRAM中。數據接收完畢后,引導程序將SDRAM中的數據寫入Flash,下一次就可以從Flash中直接引導系統了。由于操作系統的內核比較大,如Linux有1 MB以上,下載過程必須考慮糾錯。因此,接收部分采用Xmode協議,可以用Windows下超級終端的Xmode

        【用GNU工具開發基于ARM的嵌入式系統】相關文章:

        基于ARM體系的嵌入式系統BSP的程序設計03-18

        基于ARM7的嵌入式控制系統設計11-23

        基于ARM-μCLinux嵌入式系統啟動引導的實現03-20

        基于ARM的車載GPS系統的研究03-07

        基于FIC8120的嵌入式網絡視頻監控系統的設計與開發03-07

        基于ARM9微處理器與Linux操作系統的SD驅動開發03-07

        嵌入式ARM-Linux水產養殖監控系統的設計03-07

        基于DSP的Bluetooth嵌入式系統應用03-20

        基于SIP的嵌入式終端軟件系統03-07

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>