91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 技術資料 » 其它綜合

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

發布時間:2007/8/29 0:00:00 訪問次數:532

摘 要: 介紹如何利用GNU的工具開發基于ARM的嵌入式系統,以及使用編譯器、連接器和調試工具的具體方法,為廣大嵌入式系統開發人員提供一種低成本的開發手段。
關鍵詞: ARM GNU MC928MX1 gcc gdb gdbserver
當前,ARM公司的32位RISC處理器,以其內核耗電少、成本低、功能強、特有16/32位雙指令集,已成為移動通信、手持計算、多媒體數字消費等嵌入式解決方案的RISC標準,市場占有率超過了75 %。多家公司都推出了自己的基于ARM內核的處理器產品,越來越多的開發人員開始了針對ARM平臺的開發。通常開發人員需要購買芯片廠商或第三方提供的開發板,還需要購買開發軟件,如C編譯器或者集成了實時操作系統的開發環境。開發板的價格從數百到上千美元,而編譯器、實時操作系統價格更是動輒數千到數萬美元。這樣,在開發初期,軟硬件上的投資就需要上萬美元,對于國內大多數開發人員來說,無疑是太貴了。
慶幸的是,GNU所倡導的自由軟件給開發者帶來了福音。1984 年,旨在開發一個類似 Unix 的,并且是完全免費的完整操作系統和配套工具:GNU 系統(發音為"guh-NEW")。GNU的操作系統和開發工具都是免費的,遵循GNU 通用公共許可證 (GPL)協議,任何人都可以從網上獲取全部的源代碼。關于GNU和公共許可證協議的詳細資料,讀者可參看GNU網站的中文介紹:http://www.gnu.org/home.cn.html。
除了大家熟知的Linux操作系統外,GNU的軟件還包括編譯器(gcc,g++)、二進制轉換工具(objdump,objcopy)、調試工具(gdb,gdbserver,kgdb)和基于不同硬件平臺的開發庫。GNU開發工具的主要缺點是采用命令行方式,用戶掌握和使用比較困難,不如基于Windows系統的開發工具好用。但是,GNU工具的復雜性是由于它更貼近編譯器和操作系統的底層,并提供了更大的靈活性。一旦學習和掌握了相關工具,也就了解了系統設計的基礎知識,為今后的開發工作打下基礎。GNU的開發工具都是免費的,遵循GPL協議,任何人都可以從網上獲取。筆者參與了一個基于ARM平臺的嵌入式Linux系統開發,采用的是摩托羅拉龍珠系列的MC928MX1。從測試代碼、引導程序、嵌入式Linux移植、應用程序、圖形界面都可以用GNU工具進行開發,不需要在開發工具上做額外的投入。本文所介紹的開發方法同樣適用于其它公司的基于ARM的產品。
1 硬件平臺
MC928MX1(以下簡稱MX1)是摩托羅拉公司基于ARM核心的第一款MCU,主要面向高端嵌入式應用。內部采用ARM920T內核,并集成了SDRAM/Flash、LCD、USB、藍牙(bluetooth)、多媒體閃存卡(MMC)、CMOS攝像頭等控制器。關于MX1的詳細資料,感興趣的讀者可以參考http://www.motorola.com.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控制器,圖略。



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

摘 要: 介紹如何利用GNU的工具開發基于ARM的嵌入式系統,以及使用編譯器、連接器和調試工具的具體方法,為廣大嵌入式系統開發人員提供一種低成本的開發手段。
關鍵詞: ARM GNU MC928MX1 gcc gdb gdbserver
當前,ARM公司的32位RISC處理器,以其內核耗電少、成本低、功能強、特有16/32位雙指令集,已成為移動通信、手持計算、多媒體數字消費等嵌入式解決方案的RISC標準,市場占有率超過了75 %。多家公司都推出了自己的基于ARM內核的處理器產品,越來越多的開發人員開始了針對ARM平臺的開發。通常開發人員需要購買芯片廠商或第三方提供的開發板,還需要購買開發軟件,如C編譯器或者集成了實時操作系統的開發環境。開發板的價格從數百到上千美元,而編譯器、實時操作系統價格更是動輒數千到數萬美元。這樣,在開發初期,軟硬件上的投資就需要上萬美元,對于國內大多數開發人員來說,無疑是太貴了。
慶幸的是,GNU所倡導的自由軟件給開發者帶來了福音。1984 年,旨在開發一個類似 Unix 的,并且是完全免費的完整操作系統和配套工具:GNU 系統(發音為"guh-NEW")。GNU的操作系統和開發工具都是免費的,遵循GNU 通用公共許可證 (GPL)協議,任何人都可以從網上獲取全部的源代碼。關于GNU和公共許可證協議的詳細資料,讀者可參看GNU網站的中文介紹:http://www.gnu.org/home.cn.html。
除了大家熟知的Linux操作系統外,GNU的軟件還包括編譯器(gcc,g++)、二進制轉換工具(objdump,objcopy)、調試工具(gdb,gdbserver,kgdb)和基于不同硬件平臺的開發庫。GNU開發工具的主要缺點是采用命令行方式,用戶掌握和使用比較困難,不如基于Windows系統的開發工具好用。但是,GNU工具的復雜性是由于它更貼近編譯器和操作系統的底層,并提供了更大的靈活性。一旦學習和掌握了相關工具,也就了解了系統設計的基礎知識,為今后的開發工作打下基礎。GNU的開發工具都是免費的,遵循GPL協議,任何人都可以從網上獲取。筆者參與了一個基于ARM平臺的嵌入式Linux系統開發,采用的是摩托羅拉龍珠系列的MC928MX1。從測試代碼、引導程序、嵌入式Linux移植、應用程序、圖形界面都可以用GNU工具進行開發,不需要在開發工具上做額外的投入。本文所介紹的開發方法同樣適用于其它公司的基于ARM的產品。
1 硬件平臺
MC928MX1(以下簡稱MX1)是摩托羅拉公司基于ARM核心的第一款MCU,主要面向高端嵌入式應用。內部采用ARM920T內核,并集成了SDRAM/Flash、LCD、USB、藍牙(bluetooth)、多媒體閃存卡(MMC)、CMOS攝像頭等控制器。關于MX1的詳細資料,感興趣的讀者可以參考http://www.motorola.com.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控制器,圖略。



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

相關IC型號

熱門點擊

 

推薦技術資料

羅盤誤差及補償
    造成羅盤誤差的主要因素有傳感器誤差、其他磁材料干擾等。... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13692101218  13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!
鸡东县| 承德市| 洱源县| 五莲县| 永泰县| 蕲春县| 渝中区| 兴宁市| 萍乡市| 安义县| 潞城市| 大姚县| 菏泽市| 女性| 德保县| 阳谷县| 吐鲁番市| 柘城县| 米林县| 白城市| 石林| 阿城市| 子长县| 开鲁县| 长垣县| 丹江口市| 盐源县| 永平县| 宁河县| 镇远县| 洪湖市| 梁平县| 通许县| 定边县| 东乌| 麻江县| 淮滨县| 浮山县| 镇坪县| 来凤县| 客服|