日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
用GNU工具開發(fā)基于ARM的嵌入式系統(tǒng)
用GNU工具開發(fā)基于ARM的嵌入式系統(tǒng)
 更新時間:2008-8-18 10:01:22  點擊數(shù):21
【字體: 字體顏色

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

關鍵詞 ARM GNU MC928MX1 gcc gdb gdbserver

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

  慶幸的是,GNU所倡導的自由軟件給開發(fā)者帶來了福音。1984 年,旨在開發(fā)一個類似 Unix 的,并且是完全免費的完整操作系統(tǒng)和配套工具:GNU 系統(tǒng)(發(fā)音為"guh-NEW")。GNU的操作系統(tǒng)和開發(fā)工具都是免費的,遵循GNU 通用公共許可證 (GPL)協(xié)議,任何人都可以從網(wǎng)上獲取全部的源代碼。關于GNU和公共許可證協(xié)議的詳細資料,讀者可參看GNU網(wǎng)站的中文介紹:http://www.gnu.org/home.cn.html。

  除了大家熟知的Linux操作系統(tǒng)外,GNU的軟件還包括編譯器(gcc,g++)、二進制轉換工具(objdump,objcopy)、調試工具(gdb,gdbserver,kgdb)和基于不同硬件平臺的開發(fā)庫。GNU開發(fā)工具的主要缺點是采用命令行方式,用戶掌握和使用比較困難,不如基于Windows系統(tǒng)的開發(fā)工具好用。但是,GNU工具的復雜性是由于它更貼近編譯器和操作系統(tǒng)的底層,并提供了更大的靈活性。一旦學習和掌握了相關工具,也就了解了系統(tǒng)設計的基礎知識,為今后的開發(fā)工作打下基礎。GNU的開發(fā)工具都是免費的,遵循GPL協(xié)議,任何人都可以從網(wǎng)上獲取。筆者參與了一個基于ARM平臺的嵌入式Linux系統(tǒng)開發(fā),采用的是摩托羅拉龍珠系列的MC928MX1。從測試代碼、引導程序、嵌入式Linux移植、應用程序、圖形界面都可以用GNU工具進行開發(fā),不需要在開發(fā)工具上做額外的投入。本文所介紹的開發(fā)方法同樣適用于其它公司的基于ARM的產(chǎn)品。

1  硬件平臺

  MC928MX1(以下簡稱MX1)是摩托羅拉公司基于ARM核心的第一款MCU,主要面向高端嵌入式應用。內(nèi)部采用ARM920T內(nèi)核,并集成了SDRAM/Flash、LCD、USB、藍牙(bluetooth)、多媒體閃存卡(MMC)、CMOS攝像頭等控制器。關于MX1的詳細資料,感興趣的讀者可以參考http://www.motorola.com.cn/semiconductors/。作為應用開發(fā)的最小系統(tǒng)必須包括RAM(程序運行空間)、Flash(存放目標代碼)和串行接口(用于調試和下載程序)。MX1提供了6個片選端(CS0~CS5),內(nèi)置了SDRAM控制器,數(shù)據(jù)寬度32位。在筆者的系統(tǒng)中采用了2片8M×16位的SDRAM和2片4M×16位的同步Flash存儲器,分別接入數(shù)據(jù)線的低16位和高16位,如圖1所示。

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


圖1

2  自舉模式

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

3  GNU的編譯器和開發(fā)工具

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

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

(1)  編寫C、C++語言或匯編源程序

  通常匯編源程序用于系統(tǒng)最基本的初始化,如初始化堆棧指針、設置頁表、操作ARM的協(xié)處理器等。初始化完成后就可以跳轉到C代碼執(zhí)行。需要注意的是,GNU的匯編器遵循AT&T的匯編語法,讀者可以從GNU的站點(www.gnu.org)上下載有關規(guī)范。匯編程序的缺省入口是start標號,用戶也可以在連接腳本文件中用ENTRY標志指明其它入口點(見下文關于連接腳本的說明)。

(2)  用gcc或g++生成目標文件

  如果應用程序包括多個文件,就需要進行分別編譯,最后用連接器連接起來。如筆者的引導程序包括3個文件:init.s(匯編代碼、初始化硬件) xmrecever.c(通信模塊,采用Xmode協(xié)議)和flash.c(Flash擦寫模塊)。

[1] [2] [3]  下一頁
  • 上一篇: TPS60101用于低功耗系統(tǒng)的電源解決方案
  • 下一篇: DSP/BIOS環(huán)境下的數(shù)據(jù)通信
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網(wǎng)友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1