<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 用GNU工具開(kāi)發(fā)基于ARM的嵌入式系統(tǒng)

    時(shí)間:2024-10-04 02:29:00 理工畢業(yè)論文 我要投稿
    • 相關(guān)推薦

    用GNU工具開(kāi)發(fā)基于ARM的嵌入式系統(tǒng)

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

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

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

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

    2 自舉模式

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

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

      GNU提供的編譯工具包括匯編器as、C編譯器gcc、C 編譯器g 、連接器ld和二進(jìn)制轉(zhuǎn)換工具objcopy。基于ARM平臺(tái)的工具分別為arm-linux-as、arm-linux-gcc、arm-linux-g 、arm -linux-ld 和arm-linux-objcopy。GNU的所有開(kāi)發(fā)工具都可以從www.gnu.org上下載,基于ARM的工具可以從www.uclinux.org獲得。GNU的編譯器功能非常強(qiáng)大,共有上百個(gè)操作選項(xiàng),這也是這類(lèi)工具讓初學(xué)者頭痛的原因。不過(guò),實(shí)際開(kāi)發(fā)中只需要用到有限的幾個(gè),大部分可以采用缺省選項(xiàng)。GNU工具的開(kāi)發(fā)流程如下:編寫(xiě)C、C 語(yǔ)言或匯編源程序,用gcc或g 生成目標(biāo)文件,編寫(xiě)連接腳本文件,用連接器生成最終目標(biāo)文件(elf格式),用二進(jìn)制轉(zhuǎn)換工具生成可下載的二進(jìn)制代碼。GNU工具都運(yùn)行在Linux下,開(kāi)發(fā)者需要1臺(tái)運(yùn)行Linux的PC作為上位機(jī)。由于篇幅所限,不能完整地介紹整個(gè)嵌入式操作系統(tǒng)的開(kāi)發(fā)過(guò)程,將以第二節(jié)中提到的通過(guò)自舉模式下載的引導(dǎo)程序?yàn)槔f(shuō)明開(kāi)發(fā)的過(guò)程。對(duì)于像Linux這樣的大系統(tǒng),基本的開(kāi)發(fā)流程是一樣的。

      引導(dǎo)程序?qū)⑼ㄟ^(guò)自舉模式下載到MX1的片內(nèi)RAM,從地址0x00300000開(kāi)始并執(zhí)行。完成串口和SDRAM的初始化后,引導(dǎo)程序?qū)⒌却邮諔?yīng)用程序或操作系統(tǒng)內(nèi)核,將接收到的數(shù)據(jù)放在SDRAM中。數(shù)據(jù)接收完畢后,引導(dǎo)程序?qū)DRAM中的數(shù)據(jù)寫(xiě)入Flash,下一次就可以從Flash中直接引導(dǎo)系統(tǒng)了。由于操作系統(tǒng)的內(nèi)核比較大,如Linux有1 MB以上,下載過(guò)程必須考慮糾錯(cuò)。因此,接收部分采用Xmode協(xié)議,可以用Windows下超級(jí)終端的Xmode

    【用GNU工具開(kāi)發(fā)基于ARM的嵌入式系統(tǒng)】相關(guān)文章:

    基于ARM體系的嵌入式系統(tǒng)BSP的程序設(shè)計(jì)03-18

    基于ARM7的嵌入式控制系統(tǒng)設(shè)計(jì)11-23

    基于ARM-μCLinux嵌入式系統(tǒng)啟動(dòng)引導(dǎo)的實(shí)現(xiàn)03-20

    基于ARM的車(chē)載GPS系統(tǒng)的研究03-07

    基于FIC8120的嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)03-07

    基于ARM9微處理器與Linux操作系統(tǒng)的SD驅(qū)動(dòng)開(kāi)發(fā)03-07

    嵌入式ARM-Linux水產(chǎn)養(yǎng)殖監(jiān)控系統(tǒng)的設(shè)計(jì)03-07

    基于DSP的Bluetooth嵌入式系統(tǒng)應(yīng)用03-20

    基于SIP的嵌入式終端軟件系統(tǒng)03-07

    主站蜘蛛池模板: 精品福利资源在线| 久久精品亚洲福利| 国产亚洲精品激情都市| 国产一精品一AV一免费| 精品国产一区二区三区久久蜜臀| 99精品在线观看| 久久亚洲私人国产精品| 婷婷成人国产精品| 国产精品狼人久久久久影院 | 无码日韩精品一区二区三区免费| 精品人妻人人做人人爽| 人妻少妇乱子伦精品| 久久亚洲国产欧洲精品一| 天天视频国产精品| www亚洲欲色成人久久精品| 精品久久无码中文字幕| 久久久久久亚洲精品不卡| 日韩精品成人一区二区三区| 精品一区二区三区在线观看视频| 四虎亚洲国产成人久久精品| 精品国产AⅤ一区二区三区4区| 亚洲国语精品自产拍在线观看| 国产99视频精品一区| 精品一区二区三区波多野结衣| 亚洲中文字幕久久精品无码喷水| 免费短视频软件精品一区二区| 国产精品一区二区av不卡| 88国产精品欧美一区二区三区| 国内精品91最新在线观看| 1000部精品久久久久久久久 | 久久久精品波多野结衣| 国产精品亚洲不卡一区二区三区| 91精品国产麻豆国产自产在线 | 91精品国产91久久久久久| 精品国产福利久久久| 久久最新精品国产| 亚洲国产精品自在在线观看| 国产成人精品福利网站在线观看 | 国亚洲欧美日韩精品| 精品人妻少妇一区二区| 蜜臀精品国产高清在线观看|