列表多圖
上一頁 1 下一頁

嵌入式 Linux 的基礎知識介紹


嵌入式LinuxLinux內核的改編版,用于嵌入式系統。嵌入式Linux最流行的例子是Android 操作系統。

但是,需要大量硬件資源來支持嵌入式 Linux,特別是如果它將部署在實時機器對機器 (M2M) 通信、機器人控制或復雜計時應用等用例中時. 這些資源至少包括支持以太網和其他基本接口的嵌入式硬件平臺(板卡或片上系統),以及用于容納操作系統、庫、文件系統、應用程序、引導加載程序、等等。

Linux.jpg

桌面 Linux 與嵌入式 Linux

嵌入式 Linux 是開源的、可修改的、用 C 編寫的。桌面Linux或任何其他操作系統一樣,嵌入式 Linux 的作用是從底層處理器中抽象出用戶和應用程序,內存和其他硬件組件;為各種功能分配和交付系統資源;同時管理多個任務和應用程序等等。

硬件.jpg

盡管如此,如果您現在還沒有注意到,嵌入式 Linux 和傳統桌面 Linux 之間存在許多顯著差異。這些包括例如直接從閃存而不是硬盤啟動的能力。

下面提供了一張圖表,比較了嵌入式 Linux 和桌面 Linux 之間的一些主要差異。

Linux1.jpg

嵌入式 Linux:交叉編譯器、庫和引導加載程序

由于嵌入式 Linux 是為特定應用程序設計的,因此在開始進行需要開源操作系統的系統設計時,工程師必須使用一些特定的開發工具。以下當然不是一個詳盡的列表,但一個好的起點是使用正確的庫、強大的交叉編譯器和與 Linux 內核配對的高效引導加載程序。

交叉編譯器

對于不熟悉的人來說,交叉編譯器是一種編譯器,它執行編寫的代碼,以便在編譯器所在的機器之外的其他機器上運行。例如,在您的 PC 或筆記本電腦上運行的交叉編譯器能夠生成為 Android 智能手機等嵌入式系統編寫的代碼。

交叉編譯器.jpg

嵌入式 Linux 系統需要交叉編譯器,因為這些設備通常沒有在本地編譯代碼所需的資源,因此必須在其他地方編譯然后交付給目標。

對于提供大小優化、支持控制處理的特性等功能的交叉編譯器,有多種選擇。但是這里列出了一些最常見的交叉編譯器:BuildrootCrosstool-NGYocto

C

C 庫提供內核和應用程序之間的接口,因此必須是交叉編譯過程的一部分。嵌入式 Linux 系統中的任何程序,無論是用 pythonjava 還是其他語言編寫的,都必須在運行時調用 C 庫才能通過 Linux 內核訪問硬件資源。

linux系統.jpg

下面是一些在嵌入式 Linux 系統中使用的流行 C 庫。

glibc 標準的 GNU C 庫功能豐富,但代價是占用大量內存。它也沒有任何配置選項。

uClibc – “u”表示 uClibc 是一個小型的微控制器 C 庫,用于嵌入式系統。

musl – musl 也很小,在 RAM 和存儲量有限的系統中是一個不錯的選擇。

eglibc – eglibc glibc 相同,但做了一些修改,使其更適合在嵌入式設備中使用,例如支持配置。

特定于應用程序的庫

嵌入式 Linux 內核的功能有限,因此需要特定的庫。下面列出了一些受歡迎的。

libgpiod如今,標準命令行并不是與 Linux 設備文件交互的唯一方式。libgpiod 用于與 Linux 設備中的 GPIO 硬件交互。

libusb – libusb 是一個 C 庫,它從單一平臺為所有通用 USB 設備提供驅動程序。

Socket Socket庫可連接網絡上的節點。

serdisplib – 該庫可以驅動多個顯示器,如 OLEDUSB 顯示器或帶有內置控制器的顯示器。

Pigpio – Pigpio 庫可用于控制 Raspberry Pi GPIO

opc-ua – opc-ua 協議是一種適用于時間敏感網絡的協議。

lockdev – 鎖定和解鎖設備

libxls – 該庫用于讀取和轉換 Excel 文件。

libstroke – 用于識別鼠標筆觸和手勢的庫。

libserialport – 在編寫使用串行端口的軟件時抽象操作系統特定的細節

hidapi – 用于與 USB 和藍牙 HID 設備通信的庫。乙肝

mjpg_streamer – 用于從一個或多個輸入捕獲 JPEG 幀并通過 IP 網絡流式傳輸它們

cheese —cheese 可以幫助您使用網絡攝像頭拍攝視頻、照片等。

Elisa – 它是一個簡單的音樂播放器,因此您可以播放任何音頻。

引導加載程序

引導加載程序是系統開機后運行的第一個代碼,它處理基本的硬件初始化并從可引導設備(如硬盤驅動器或 SD 卡或嵌入式 Linux 系統中的閃存)加載操作系統。一旦引導加載程序為 Linux 內核設置了可執行環境并且內核開始執行,就不再需要引導加載程序。

引導加載程序有各種形狀和大小,可以根據用戶或系統需求進行定制。事實上,一些嵌入式電路板帶有引導加載程序。

這里介紹了一些常用的引導加載程序及其支持的處理器架構。

名稱

支持的架構

Das U-Boot

ARCARMBlackfinMicroblazeMIPSNios IIOpenRicePowerPCSuperH

RedBoot

ARMMIPSPowerPCSuperH

Barebox

ARMBlackfinMIPSNios IIPowerPC

GRUB 2

x86x86_64

Little Kernel

arm

YAMON

MIPS

CFE

Broadcom MIPS

這些是您可能每天使用的各種基于 Linux 的嵌入式系統背后的關鍵構建塊,您可能甚至不知道它們運行Linux,例如智能電視、無線路由器和網絡附加存儲設備。

本文由朗銳智科(www.0579kk.com)編輯整理,如有侵權請聯系本站。


0755-88879880
QQ聯系方式:52609913
地址:深圳市南山區西麗龍珠三路光前工業區21棟4、5樓


                  視頻監控平臺      串口服務器        室內全彩LED顯示屏          全自動紅外測油儀
深圳市朗銳智科實業有限公司專注于工業主板、嵌入式主板、工控機、圖像采集卡的方案實施,高效地硬件開發能力,提供從云到端的全流程產品研發和生產服 務,硬件設計涵蓋單片機、armx86DSP等平臺,應用技術從數據采集 ,工業通訊,自動化控制到機器視覺等,服務領域從電梯安全、油田監 控、環保監測、鐵路安全、現代化農業到醫療健康等。

——————
熱線電話
0755-88879880
18929376664
微信在線客服