嵌入式Linux應用程式設計—嵌入式linux常識1
嵌入式系統是針對某個應用,軟硬體可裁減的,對體積、功耗、成本等等有嚴格要求的一個計算機系統。看起來很複雜,其實就2點:1.嵌入式系統是一個計算機系統;2.嵌入式系統是針對某個應用的。
我們通常使用的電腦、筆記本,就是一個通用的計算機系統。通用的意思是沒有特定的用途、什麼都可以幹,如上網、打遊戲、聽歌等。在超時買東西時,常看到收銀員使用pos機進行結賬收銀。pos機有主機板、CPU、作業系統,因此是計算機系統;且又是專門針對結賬收銀來使用的,因此它是一個嵌入式系統。
嵌入式中“嵌入”的是作業系統,那麼目前主流的嵌入式作業系統有哪些?
1.嵌入式Linux
嵌入式Linux和Linux是不一樣的,Linux不僅可以做嵌入式,還可以做桌面、伺服器等。嵌入式Linux是將標準的Linux經過裁剪處理後,使之能在嵌入式計算機系統上執行。
嵌入式Linux具有免費、開源、核心小且可裁剪、支援x86和x64的處理器、絕大部分的網路協議、大量應用程式...,這些優點使嵌入式Linux成為最流行的嵌入式作業系統。
Linux作為核心,該如何知道它的穩定版本呢?
訪問:https://www.kernel.org/,目前最新版本是4.20-rc2,最新穩定版本是:4.19.2。第一個數字表示目前釋出的核心主版本;第二個數字是偶數表示穩定版本,奇數表示開發中版本;第三個數字是錯誤修補次數。
Linux發行版又是什麼?
Linux系統一般由5個部分組成,Bootloader、核心、Shell、檔案系統、應用程式。
Bootloader是在核心執行之前執行的一段程式,它負責硬體的初始化、記憶體空間的對映,為呼叫核心做準備。核心指的就是Linux核心。
Shell是指面向使用者的命令介面,表現形式是一個可以由使用者錄入的介面。Linux和Windows不同,它的核心與介面是分離的,即linux可以脫離圖形介面單獨執行,也可以在核心的基礎上執行圖形化的桌面。
因此在Linux系統中,shell有2種表現形式,1.在無圖形介面,終端執行環境下的shell;2.桌面上執行的類似Windows的MS-DOS執行視窗。
在記憶體中儲存檔案時,需要遵循一定的格式,這種格式稱為檔案系統型別。Linux系統能支援多種目前主流的檔案系統,如fat16、fat32、nfs、ext2、ext3、jffs2、yaffs、和ISO9660。 標準的Linux系統有一套自己的應用程式集,它包括文字編輯器、程式語言、XWindow、辦公套件、Internet工具和資料庫等。
以Linux核心為中心,整合各種各樣的應用工具、軟體組成一套完整的作業系統,稱為Linux發行版。目前主流的發行版有Red Hat、Fedora、Ubuntu、CentOS、Debian...。
Linux的缺點:Linux本質上不是嵌入式實時作業系統(部分發行版在Linux上進行實時性改造)。
2.VxWorks
VxWorks是美國WindRiver公司開發的嵌入式實時作業系統,是當前市場佔有率極高的嵌入式作業系統。其具有可裁剪的微核心結構、高效的任務管理...,缺點是支援的硬體較少、授權費較高。
3.Windows CE
Windows CE是微軟公司針對嵌入式裝置開發的32位、多工、多執行緒作業系統。支援x86、ARM、MIPS等架構的處理器。缺點是原始碼沒有開放、佔用記憶體較多、系統過於龐大、授權費高。
4.µC/OS-Ⅱ
µC/OS-Ⅱ是Micrium公司開發的作業系統。可用於8/16/32位處理器,核心可裁剪。缺點是不開放原始碼、需要授權費(一次性、低)、需要編寫硬體驅動等。
1.2處理器和儲存器
Intel、AMD的CPU是x86架構,即32位處理器;x86-64架構又稱為x64,是基於x86架構開發的技術,其使用者可以自行選擇x86平臺或x64平臺。這2種架構使用的指令集為CISC(複雜指令集)。
IBM公司的CPU是PowerPC架構,使用的指令集為RISC(精簡指令集)。
MIPS公司的 MIPS架構(龍芯也是MIPS變種),使用的指令集為RISC(精簡指令集)。
ARM公司是ARM架構,使用的指令集為RISC(精簡指令集)。
此外還有高通的Adreno、ARM公司的Mali、Vivante的GCxx。
目前常用的嵌入式linux處理器是ARM公司的ARM架構處理器。
常見儲存器:SDRAM、NAND FLASH、NOR FLASH。
SDRAM:同步動態隨機儲存器。同步是指記憶體工作需要同步時鐘,命令的傳送和資料的傳輸都以此時鐘為基準;動態是指儲存陣列需要不斷的重新整理來保證資料不丟失,掉電後資料會丟失;隨機是指資料不是線性依次儲存,而是自由指定地址進行資料讀寫。類比於電腦中的記憶體,特點是程式可以直接執行,但掉電後資料丟失。
NAND FLASH:優點是體積小、容量大、掉電資料不丟失;缺點是程式不能直接執行。相當於電腦中的機械硬碟,常用於儲存資料。
NOR FLASH:優點是支援XIP(即程式碼可以在NOR FLASH上執行),掉電資料不丟失;缺點是容量小,價格高。常用於儲存程式碼和關鍵資料。