出版信息 書 名: ARM&Linux嵌入式系統教程 作 者:馬忠梅 李善平
ARM&Linux嵌入式系統教程 開本: 16
定價: 34.00 元
內容簡介 本書適用於沒有作業系統知識的高校師生和單片機開發人員學習嵌入式系統,可作為高等院校相關專業本科、研究生嵌入式系統理論課程的教材,也可作為從事嵌入式系統開發的工程技術人員學習嵌入式Linux的參考用書。
書籍目錄 第1章嵌入式系統基礎
1.1嵌入式系統概述
1.2嵌入式處理器
1.3嵌入式作業系統
1.4實時作業系統的核心
1.5嵌入式技術發展現狀及趨勢
習題
第2章嵌入式系統開發過程
2.1嵌入式軟體開發的特點
2.2嵌入式軟體的開發流程
2.3嵌入式系統的調試
2.4板級支持包
習題
第3章嵌入式Linux作業系統
3.1Linux及其套用
3.2Linux核心
3.3主流嵌入式Linux系統
3.4嵌入式Linux的實時化改造
習題
第4章ARM體系結構
4.1ARM體系結構概述
4.2ARM編程模型
4.3ARM基本定址方式
4.4ARM指令集
4.5ARM彙編語言程式設計
習題
第5章嵌入式Linux應用程式開發
5.1開發平台簡介
5.2開發環境的建立
5.3Linux的使用基礎
5.4make工具和gcc編譯器
5.5簡單嵌入式Linux程式開發
5.6LCD程式設計
5.7USB攝像頭程式
5.8音頻採集和回放程式
習題
第6章嵌入式Linux驅動程式開發
6.1嵌入式Linux的設備管理
6.2設備驅動程式開發過程
6.3LED驅動程式
6.4鍵盤驅動程式
6.5觸控螢幕驅動程式
6.6Linux2.6核心
習題
第7章嵌入式Linux的GUI
7.1嵌入式GUI
7.2嵌入式GUI的結構特徵
7.31wGUI系統的設計與實現
7.41wGUI系統的套用
7.5GTK+圖形庫的套用
習題
參考文獻
……
ARM介紹 ARM概念 ARM 即Advanced RISC Machines的縮寫,既可以認為是一個公司的名字,也可以認為是對一類微處理器的通稱,還可以認為是一種技術的名字。
ARM處理器的三大特點是:耗電少功能強、16位/32位雙指令集和眾多合作夥伴。
當前ARM體系結構的擴充包括:
·Thumb 16位指令集,為了改善代碼密度;
·DSP DSP套用的算術運算指令集;
·Jazeller 允許直接執行Java位元組碼。
ARM處理器系列提供的解決方案有:
·無線、消費類電子和圖像套用的開放平台;
·存儲、自動化、工業和網路套用的嵌入式實時系統;
·智慧卡和SIM卡的安全套用。
ARM發展歷史 1985年4月26日,第一個ARM原型在英國劍橋的Acorn計算機有限公司誕生,由美國加州SanJoseVLSI技術公司製造。
20世紀80年代後期,ARM很快開發成Acorn的台式機產品,形成英國的計算機教育基礎。
1990年成立了Advanced RISC Machines Limited(後來簡稱為ARM Limited,ARM公司)。
20世紀90年代,ARM 32位嵌入式RISC(Reduced lnstruction Set Computer)處理器擴展到世界範圍,占據了低功耗、低成本和高性能的嵌入式系統套用領域的領先地位。ARM公司既不生產晶片也不銷售晶片,它只出售晶片技術授權。
1991 年 ARM 公司成立於英國劍橋,主要出售晶片設計技術的授權。目前,採用 ARM技術智慧財產權( IP )核的微處理器,即我們通常所說的 ARM 微處理器,已遍及工業控制、消費類電子產品、通信系統、網路系統、無線系統等各類產品市場,基於 ARM 技術的微處理器套用約占據了 32 位 RISC 微處理器 75 %以上的市場份額, ARM 技術正在逐步滲入到我們生活的各個方面。
ARM 是設計公司,本身不生產晶片。採用轉讓許可證制度,由合作夥伴生產晶片。
ARM產品系列 當前有5個產品系列——ARM7、ARM9、ARM9E、ARM10和SecurCore。
1、ARM7系列
最佳化用於對價位和功耗敏感的消費套用的低功耗32位核,有:
·嵌入式ICE-RT邏輯;
·非常低的功耗;
·三段流水線和馮·諾依曼結構,提供0.9MIPS/MHz。
2、SecurCore SC100特為安全市場設計,帶特定的抗拒竄改和反工程的特性。還帶靈活的保護單元確保作業系統和套用數據的安全。
3、ARM9系列
高性能和低功耗領先的硬宏單元,帶有:
·5段流水線;
·哈佛結構提供1.1MIPS/MHz。
ARM920T和ARM922T內置全性能的MMU、指令和數據cache和高速AMBA匯流排接口。AMBA片上匯流排是一個開放標準,已成為SoC構建和IP庫開發的事實標準。AMBA先進的高性能匯流排(AHB)接口現由所有新的ARM核支持,提供開發全綜合設計系統。
ARM940T內置指令和數據cache、保護單元和高速AMBA匯流排接口。
4、ARM9E系列
可綜合處理器,帶有DSP擴充和緊耦合存儲器(TCM)接口,使存儲器以完全的處理器速度運轉,可直接連線到核心上。
ARM966E-S用於矽片尺寸重要,而對cache沒要求的實時嵌入式套用,可配置TCM大小:0、4K、8K、16K,最大達64M。
ARM946E-S內置集成保護單元,提供實時嵌入式作業系統的cache核方案。
ARM926ET-S帶Jazelle擴充、分開的指令和數據高速AHB接口及全性能MMU。
VFP9 向量浮點可綜合協處理器進一步提高ARM9E處理器性能,提供浮點操作的硬體支持。
5、ARM10系列
硬宏單元,帶有:
·64位AHB指令和數據接口;
·6段流水線;
·1.25MIPS/MHz;
·比同等的ARM9器件性能提高50%。
兩種新的先進的節能方式得到了異常低的耗電。VFP10協處理器完善地依從ARM10器件提供高性能的浮點
解決方案。
ARM版本 ARM體系結構從最初開發到現在有了很大的改進,並仍在完善和發展。
為了清楚地表達每個ARM套用實例所使用的指令集,ARM公司定義了6種主要的ARM指令集體系結構版本,以版本號V1~V6表示。
V1版架構
該版架構只在原型機ARM1出現過,只有26位的定址空間,沒有用於商業產品。
定址空間:64MB
V2版架構
該版架構對V1版進行了擴展,例如ARM2和ARM3(V2a)架構。包含了對32位乘法指令和協處理器指令的支持。
版本2a是版本2的變種,ARM3晶片採用了版本2a,是第一片採用片上Cache的ARM處理器。
同樣為26位定址空間,現在已經廢棄不再使用。
V2版架構與版本V1相比,增加了以下功能:
乘法和乘加指令;
支持協處理器操作指令;
快速中斷模式;
SWP/SWPB的最基本存儲器與暫存器交換指令;
定址空間仍為:64MB
V3版架構
ARM作為獨立的公司,在1990年設計的第一個微處理器採用的是版本3的ARM6。
它作為IP核、獨立的處理器、具有片上高速快取、MMU和寫緩衝的集成CPU。
變種版本有3G和3M。版本3G是不與版本2a向前兼容的版本3,版本3M引入了有符號和無符號數乘法和乘加指令,這些指令產生全部64位結果。
V3版架構( 目前已廢棄 )對ARM體系結構作了較大的改動:
定址空間增至32位(4GB);
當前程式狀態信息從原來的R15暫存器移到當前程式狀態暫存器CPSR中(Current Program Status Register);
增加了程式狀態保存暫存器SPSR(Saved Program Status Register);
增加了兩種異常模式,使作業系統代碼可方便地使用數據訪問中止異常、指令預取中止異常和未定義指令異常。;
增加了MRS/MSR指令,以訪問新增的CPSR/SPSR暫存器;
增加了從異常處理返回的指令功能。
定址空間:4GB
V4版架構
V4版架構在V3版上作了進一步擴充
V4版架構是目前套用最廣的ARM體系結構,ARM7、ARM8、ARM9和StrongARM都採用該架構。
V4不再強制要求與26位地址空間兼容,而且還明確了哪些指令會引起未定義指令異常。
指令集中增加了以下功能:
符號化和非符號化半字及符號化位元組的存/取指令;
增加了T變種,處理器可工作在Thumb狀態,增加了16位Thumb指令集;
完善了軟體中斷SWI指令的功能;
處理器系統模式引進特權方式時使用用戶暫存器操作;
把一些未使用的指令空間捕獲為未定義指令
V5版架構
V5版架構是在V4版基礎上增加了一些新的指令,ARM10和Xscale都採用該版架構。
這些新增命令有:
帶有連結和交換的轉移BLX指令;
計數前導零CLZ指令;
BRK中斷指令;
增加了數位訊號處理指令(V5TE版); 為協處理器增加更多可選擇的指令;
改進了ARM/Thumb狀態之間的切換效率;
E---增強型DSP指令集,包括全部算法操作和16位乘法操作;
J----支持新的JAVA,提供位元組代碼執行的硬體和最佳化軟體加速功能。
V6版架構
V6版架構是2001年發布的,首先在2002年春季發布的ARM11處理器中使用。在降低耗電量地同時,還強化了圖形處理性能。通過追加有效進行多媒體處理的SIMD(Single Instruction, Multiple Data,單指令多數據 )功能,將語音及圖像的處理功能提高到了原型機的4倍。
此架構在V5版基礎上增加了以下功能:
THUMBTM:35%代碼壓縮;
DSP擴充:高性能定點DSP功能;
JazelleTM:Java性能最佳化,可提高8倍;
Media擴充:音/視頻性能最佳化,可提高4倍
ARM微處理器的套用選型 鑒於ARM微處理器的眾多優點,隨著國內外嵌入式套用領域的逐步發展,ARM微處理器必然會獲得廣泛的重視和套用。但是,由於ARM微處理器有多達十幾種的核心結構,幾十個晶片生產廠家,以及千變萬化的內部功能配置組合,給開發人員在選擇方案時帶來一定的困難,所以,對ARM晶片做一些對比研究是十分必要的。
以下從套用的角度出發,對在選擇ARM微處理器時所應考慮的主要問題做一些簡要的探討。
1、ARM微處理器核心的選擇
從前面所介紹的內容可知,ARM微處理器包含一系列的核心結構,以適應不同的套用領域,用戶如果希望使用WinCE或標準Linux等作業系統以減少軟體開發時間,就需要選擇ARM720T以上帶有MMU(Memory Management Unit)功能的ARM晶片,ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM都帶有MMU功能。而 ARM7TDMI則沒有MMU,不支持Windows CE和標準Linux,但目前有uCLinux等不需要MMU支持的作業系統可運行於ARM7TDMI硬體平台之上。事實上,uCLinux已經成功移植到多種不帶MMU的微處理器平台上,並在穩定性和其他方面都有上佳表現。
本書所討論的S3C4510B即為一款不帶MMU的ARM微處理器,可在其上運行uCLinux作業系統。
2、系統的工作頻率
系統的工作頻率在很大程度上決定了ARM微處理器的處理能力。ARM7系列微處理器的典型處理速度為0.9MIPS/MHz,常見的ARM7晶片系統主時鐘為20MHz-133MHz,ARM9系列微處理器的典型處理速度為1.1MIPS/MHz,常見的ARM9的系統主時鐘頻率為100MHz- 233MHz,ARM10最高可以達到700MHz。不同晶片對時鐘的處理不同,有的晶片只需要一個主時鐘頻率,有的晶片內部時鐘控制器可以分別為ARM 核和USB、UART、DSP、音頻等功能部件提供不同頻率的時鐘。
3、晶片記憶體儲器的容量
大多數的ARM微處理器片記憶體儲器的容量都不太大,需要用戶在設計系統時外擴存儲器,但也有部分晶片具有相對較大的片記憶體儲空間,如ATMEL的AT91F40162就具有高達2MB的片內程式存儲空間,用戶在設計時可考慮選用這種類型,以簡化系統的設計。
4、片內外圍電路的選擇
除ARM微處理器核以外,幾乎所有的ARM晶片均根據各自不同的套用領域,擴展了相關功能模組,並集成在晶片之中,我們稱之為片內外圍電路,如USB接口、IIS接口、LCD控制器、鍵盤接口、RTC、ADC和DAC、DSP協處理器等,設計者應分析系統的需求,儘可能採用片內外圍電路完成所需的功能,這樣既可簡化系統的設計,同時提高系統的可靠性。