嵌入式系统设计--课堂总结(概述)
一、嵌入式系統設計課程內容
目標:
1、了解嵌入式技術;
2、掌握嵌入式Linux操作的使用;(命令)
(80%以上的開發平臺都是Linux)
3、掌握嵌入式Linux開發工具的使用;(gcc、gbd、make、shell)
4、掌握嵌入式Linux應用開發;(文件、多任務、網絡)(數據庫)
5、了解嵌入式產品開發流程;(硬件–軟件–系統)
6、了解嵌入式系統移植;(u-boot、內核、文件系統)
7、了解嵌入式底層軟件開發;(驅動開發)
嵌入式系統學習儲備知識:C語言(累積代碼量:3w)+單片機(硬件的工作原理)
二、嵌入式開發概述
1、嵌入式技術是什么?
在已有的硬件上移植操作系統;在操作系統之上做應用開發;在操作系統之下做底層開發;
(操作系統的作用:管理資源(軟件資源和硬件資源)==管家)
嵌入式解決的問題:讓軟硬件耦合度降低,軟硬件不直接發生關系;軟硬件獨立發展,對于產品的升級與開發帶來很大幫助。
*嵌入式軟件與非嵌入式軟件的區別?
嵌入式軟件是結合操作系統做的開發
非嵌入式軟件是做的裸機開發(沒有跑操作系統)
嵌入式讓產品更加智能,可以跑更多的軟件,軟件可以多任務的執行
*嵌入式開發與單片機開發的區別?
嵌入式開發有操作系統,單片機開發無操作系統。
單片機開發可稱為傳統開發
(學習單片機的目的:對于學習偏硬件的同學來說,不是為了掌握這個芯片,而是掌握CPU開發的流程和一些外設硬件的工作原理,所以不必死磕)
單片機開發流程:看原理圖–寫代碼–下載到開發板上運行
引申到傳統開發:兩大元素:軟件和硬件(寫軟件控制硬件工作,硬件給軟件反饋)
傳統開發的缺點?
※①軟件移植性差(適配平臺能力差,硬件一變化軟件就必須跟著變化)
②開發人員能力要求:軟硬通吃(不能分組,開發效率低;公司招人難度大,培養成本高)
③無法考慮用戶的使用體驗
*嵌入式開發的優缺點?
優點:
功能上:軟件適配性強;開發人員能力劃分更加清楚;
技術上:多任務機制;提供豐富的網絡協議;提供了開源軟件和庫
缺點:高效的操作系統對于硬件要求很高,成本高
三、嵌入式開發的方向(學習路線):
①嵌入式上層應用軟件開發
a.精通一門語言;
b.熟悉一款操作系統;(相當于會看說明書,會使用)
c.數據結構/算法
②嵌入式底層系統軟件開發
a.精通C語言(操作系統的核心是內核,所有操作系統內核都是由C+匯編開發的)
*為什么內核開發選擇C語言?(C語言的特點?)—>能夠直接訪問硬件、移植性好、運行效率高
*為什么C語言能夠直接訪問硬件?—>C語言有指針數據類型,指針可以對地址進行操作
*什么時候選擇用匯編?什么時候選擇用C語言?—>匯編語言是低級語言,沒有高級語法的支撐,訪問硬件效率大于C語言,對于硬件進行初始化時用匯編,對于硬件進行復雜操作時用C語言。
b.理解操作系統的實現(會使用,也會添加/修改功能)
c.熟悉硬件的工作原理(CPU:stm32+64位)(外設:SPI,IIC,藍牙,WiFi,物聯網,攝像頭)
d.熟悉匯編
③嵌入式系統工程師
BSP(固件工程師) 內核開發
2、嵌入式系統的組成
應用程序(多變)—>操作系統(核心)—>處理器(核心)
嵌入式CPU的選擇
*CPU體系結構的種類、特點及應用場景?
CPU的體系架構:
CPU架構是CPU廠商給屬于同一系列的CPU產品定的一個規范,主要目的是為了區分不同類型CPU的重要標示,RISC(精簡指令集計算機)和CISC(復雜指令集計算機)是當前CPU的兩種架構。
CISC
CISC要用最少的機器語言指令來完成所需的計算任務。
比如:對于乘法運算,在CISC架構的CPU上需要這樣一條指令:MUL ADDRA, ADDRB。將ADDRA, ADDRB中的數據讀入寄存器,相乘后將結果寫回內存的操作全部依賴于CPU中設計的邏輯來實現。這種架構會增加CPU結構的復雜性和對CPU工藝的要求,但對于編譯器的開發十分有利。
RISC
RISC架構要求軟件來指定各個操作步驟。同上面的例子如果要在RISC架構上實現,將ADDRA, ADDRB中的數據讀入寄存器,相乘后將結果寫回內存的操作都必須由軟件來實現。這種架構可以降低CPU的復雜性以及允許在同樣的工藝水平下生產出功能更強大的CPU,但對于編譯器的設計有更高的要求。
CISC和RISC的差異:
①指令系統:RISC 設計者把主要精力放在那些經常使用的指令上,盡量使它們具有簡單高效的特色。對不常用的功能,常通過組合指令來完成。因此,在RISC 機器上實現特殊功能時,效率可能較低。但可以利用流水技術和超標量技術加以改進和彌補。而CISC 計算機的指令系統比較豐富,有專用指令來完成特定的功能。因此,處理特殊任務效率較高。
②存儲器操作:RISC 對存儲器操作有限制,使控制簡單化;而CISC 機器的存儲器操作指令多,操作直接。
③程序:RISC 匯編語言程序一般需要較大的內存空間,實現特殊功能時程序復雜,不易設計;而CISC 匯編語言程序編程相對簡單,科學計算及復雜操作的程序社設計相對容易,效率較高。
④中斷:RISC 機器在一條指令執行的適當地方可以響應中斷;而CISC 機器是在一條指令執行結束后響應中斷。
⑤CPU:RISC CPU 包含有較少的單元電路,因而面積小、功耗低;而CISC CPU 包含有豐富的電路單元,因而功能強、面積大、功耗大。
⑥ 設計周期:RISC 微處理器結構簡單,布局緊湊,設計周期短,且易于采用最新技術;CISC 微處理器結構復雜,設計周期長。
⑦用戶使用:RISC 微處理器結構簡單,指令規整,性能容易把握,易學易用;CISC微處理器結構復雜,功能強大,實現特殊功能容易。
⑧應用范圍:由于RISC 指令系統的確定與特定的應用領域有關,故RISC 機器更適合于專用機;而CISC 機器則更適合于通用機。
CPU的體系結構(四大):
ARM/MIPS/PowerPC均是基于精簡指令集機器處理器的架構;X86則是基于復雜指令集的架構,Atom是x86或者是x86指令集的精簡版。
ARM:
過去稱作進階精簡指令集機器,是一個32位精簡指令集(RISC)處理器架構,其廣泛地使用在許多嵌入式系統設計。
特點:
a.體積小,低功耗,低成本,高性能;
b.支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件;
c.大量使用寄存器,指令執行速度更快;
d.大多數數據操作都在寄存器中完成;
e.尋址方式靈活簡單,執行效率高;
f.指令長度固定
g.流水線處理方式
h.Load_store結構:在RISC中,所有的計算都要求在寄存器中完成,而寄存器和內存的通信則由單獨的指令來完成。而在CSIC中,CPU是可以直接對內存進行操作的。
應用場景:非常適用于行動通訊領域,符合其主要設計目標為低耗電的特性。
x86系列/Atom(安騰)
x86或80x86是英代爾Intel首先開發制造的一種微處理器體系結構的泛稱。Intel Atom是Intel的一個超低電壓處理器系列。
優點:能夠有效縮短新指令的微代碼設計時間,允許設計師實現CISC體系機器的向上相容。新的系統可以使用一個包含早期系統的指令超集合,也就可以使用較早電腦上使用的相同軟件。另外微程式指令的格式與高階語言相匹配,因而編譯器并不一定要重新編寫。
缺點:CISC的CPU執行是大多數時間是在訪問存儲器中的數據,而不是寄存器中的,這就拖慢了整個系統的速度;解碼分為硬件解碼和微解碼,對于簡單的x86指令只要硬件解碼即可,速度較快,而遇到復雜的x86指令則需要進行微解碼,并把它分成若干條簡單指令,速度較慢且很復雜;尋址范圍小,約束了用戶需要。
應用場景:RISC系統針對高端的服務器市場,相比之下x86系列主要針對個人用戶和小型的商用系統。
MIPS系列
MIPS是世界上很流行的一種RISC處理器。MIPS的意思是“無內部互鎖流水級的微處理器”其機制是盡量利用軟件辦法避免流水線中的數據相關問題。這些系列產品為很多計算機公司采用構成各種工作站和計算機系統。
特點:設計更簡單、設計周期更短,并可以應用更多先進的技術,開發更快的下一代處理器。MIPS是出現最早的商業RISC架構芯片之一,新的架構集成了所有原來MIPS指令集,并增加了許多更強大的功能。
應用場景:MIPS自己只進行CPU的設計,之后把設計方案授權給客戶,使得客戶能夠制造出高性能的CPU。
PowerPC系列
PowerPC 是一種RISC架構的中央處理器,其基本的設計源自IBM(國際商用機器公司)的IBM PowerPC 601 微處理器
特點:可伸縮性好、方便靈活。
應用場景:PowerPC 處理器有廣泛的實現范圍,包括從諸如 Power4 那樣的高端服務器 CPU 到嵌入式 CPU 市場(任天堂 Gamecube 使用了 PowerPC)。PowerPC 處理器有非常強的嵌入式表現,因為它具有優異的性能、較低的能量損耗以及較低的散熱量。除了象串行和以太網控制器那樣的集成 I/O,該嵌入式處理器與“臺式機”CPU 存在非常顯著的區別。
嵌入式不完全等于ARM
單片機是否可以作為嵌入式CPU?
YES 操作系統有類似ucossii小的操作系統,所以單片機可以上小型的操作系統
哪些操作系統可以作為嵌入式操作系統?
嵌入式操作系統是可移植(代碼開源。提供可移植接口)的操作系統(例:win10不能作為嵌入式操作系統因為他只適配在PC端,不可移植)
實時性(軟件、硬件):規定的時間內完成規定的動作
vxworks:實時性強 Linux:無實時的,運行效率穩定
實時性的還有:RT-Linux openwrt
總結
以上是生活随笔為你收集整理的嵌入式系统设计--课堂总结(概述)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机休眠后无法启动,电脑休眠后硬盘无法
- 下一篇: ac8265网卡linux驱动,【奋威A