0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

梳理嵌入式Linux的一些知識

GReq_mcu168 ? 來源:玩轉(zhuǎn)單片機 ? 2020-07-01 16:56 ? 次閱讀

前言

這篇文章簡單我們來一起梳理嵌入式Linux的一些知識,方便于一些想跟我一樣想要由單片機進階到嵌入式Linux的朋友做一些參考學習。

現(xiàn)在隨著嵌入式Linux的教程不斷增多,相信應(yīng)該有不少學單片機的朋友開始折騰這個了吧~

嵌入式Linux學哪些東西

1、認識Linux

學單片機的朋友有些已經(jīng)有一些Linux基礎(chǔ)了,但也不乏有些朋友沒用過Linux,甚至有些初學的讀者朋友沒聽說過Linux,為了照顧這些朋友,這里簡單地認識一下Linux:

2、認識嵌入式Linux

學習嵌入式Linux我們需要關(guān)注以下幾大塊內(nèi)容:

嵌入式Linux軟件部分最重要的三部分當屬Bootloader、Linux內(nèi)核、根文件系統(tǒng)。有了這三部分,這才是一個最小的、完整的、可運行程序的嵌入式系統(tǒng)

(1)BootLoader

BootLoader 是在操作系統(tǒng)運行之前運行的一段代碼, 用于引導操作系統(tǒng)。開源的BootLoader 有很多種,比如RedBoot、U-Boot 等 ,其中U-Boot用得最多。U-Boot的源碼非常龐大:

我們的學習重心在于學會怎么把芯片原廠移植好的U-Boot拿來修改然后適配我們的板子:

平時說的U-Boot移植通常都是指把芯片原廠移植好的U-Boot拿來修改適配我們板子的過程。

(2)Linux內(nèi)核

Linux 內(nèi)核(英語:Linux kernel)是一種開源的類 Unix 操作系統(tǒng)宏內(nèi)核。我們要學習移植的Linux內(nèi)核也是把芯片原廠移植好的Linux內(nèi)核包拿來作移植。內(nèi)核源碼目錄如下:

(3)根文件系統(tǒng)

根文件系統(tǒng)(rootfs)是內(nèi)核啟動時所 mount(掛載)的第一個文件系統(tǒng),內(nèi)核代碼映像文件保存在根文件系中。

而系統(tǒng)引導啟動程序會在根文件系統(tǒng)掛載之后從中把一些基本的初始化腳本和服務(wù)等加載到內(nèi)存中去運行。

這里的根文件系統(tǒng)的重要性猶如我們電腦的系統(tǒng)盤,有這個系統(tǒng)盤我們才能裝我們的系統(tǒng)。根文件系統(tǒng)有根目錄/,根目錄下有很多子目錄:

(圖片來源:百問網(wǎng))

根文件系統(tǒng)需要專門的框架來制作,這樣的框架有:BusyBox、Yocto、Buildroot 等。

(4)Linux驅(qū)動

Linux驅(qū)動應(yīng)該是我們學習嵌入式Linux的起始點與重心。上面那三大塊內(nèi)容已經(jīng)為我們創(chuàng)建好了完整的嵌入式Linux環(huán)境。

有了這樣一個環(huán)境,我們的Linux驅(qū)動就可以裝在上面。Linux驅(qū)動:

Linux中有三大類驅(qū)動:字符設(shè)備驅(qū)動、塊設(shè)備驅(qū)動、網(wǎng)絡(luò)設(shè)備驅(qū)動。

設(shè)備樹(Device Tree):描述設(shè)備樹的文件。這個 DTS 文件采用樹形結(jié)構(gòu)描述板級設(shè)備,也就是開發(fā)板上的設(shè)備信息,比如CPU 數(shù)量、 內(nèi)存基地址、 IIC 接口上接了哪些設(shè)備、 SPI 接口上接了哪些設(shè)備等等。

(5)Linux應(yīng)用

Linux中:一切皆文件。在C編程中,我們都知道對文件的操作都是打開文件、讀寫文件、關(guān)閉文件等。

在嵌入式Linux應(yīng)用編程中,我們的關(guān)注點也是怎么操作(open、close、read、write等)這些文件(設(shè)備文件等)。

3、一點經(jīng)驗

嵌入式Linux的學習相對于單片機的學習來說要難很多,不僅要學的內(nèi)容變多了,光是熟悉開發(fā)環(huán)境(Linux環(huán)境、交叉編譯器、Makefile等)這一塊就挺多內(nèi)容。

從深度上更是比單片機要深不少,比如以前學STM32是IDE編譯,嵌入式Linux是直接用編譯器編譯或使用編譯腳本編譯。

從我入門到放棄的經(jīng)驗來看,從Linux驅(qū)動和應(yīng)用開始學是比較好的,不要一上來就去擼上面那三個巨頭,不然很容易從入門到放棄。。。

學習這個做好吃苦的準備,可能很多問題都會令你暴走。比如你按照教程來做,最后出來的結(jié)果可能不一樣,可能會冒出很多問題,這都是很正常的。

而且有時候看似只是一個問題,但這個問題會牽扯著其它問題,得有耐心的解決。

比如之前我在編譯Linux內(nèi)核的時候,出現(xiàn)如下問題:

根據(jù)問題描述:缺少了一個叫l(wèi)zop的東西,然后我按提示安裝這個東西,然后又冒出問題:

然后只能到網(wǎng)上找解決方法,然后一個一個方法試,最后解決了:

我的實驗方法是和教程一樣的,包括開發(fā)環(huán)境都是教程提供的,這樣與教程完全一樣的操作都能出現(xiàn)問題,何況有時候得自己搭環(huán)境,那出錯的概率會更大。

無論如何,都不要那么容易放棄。

最后

嵌入式Linux的知識不僅限于上面提到的,但基本包含了我們的主要學習內(nèi)容。上面提到的只是一些表層的概念性的知識,之后我們將一起來學習分享更多比較深入的、細節(jié)的知識。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5060

    文章

    18975

    瀏覽量

    302095
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11212

    瀏覽量

    208723

原文標題:從單片機工程師的角度看嵌入式Linux

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式學習建議

    ,最好能有自己動手的空間。不花分硬件錢想要學好嵌入式系統(tǒng)不實際,因為這是實踐性很強的學科。好書,可以讓人少走彎路,不被誤導。好老師也可以是做過一些實際項目的學長(定要找做過幾個成功
    發(fā)表于 10-22 11:41

    嵌入式linux開發(fā)的基本步驟有哪些?

    嵌入式Linux開發(fā)是個復雜的過程,涉及到硬件選擇、操作系統(tǒng)移植、驅(qū)動開發(fā)、應(yīng)用程序開發(fā)等多個方面。以下是嵌入式Linux開發(fā)的基本步驟,
    的頭像 發(fā)表于 09-02 09:11 ?349次閱讀

    嵌入式linux開發(fā)板怎么操作

    嵌入式Linux開發(fā)板是種基于Linux操作系統(tǒng)的嵌入式系統(tǒng)開發(fā)平臺。它通常包括個處理器、內(nèi)
    的頭像 發(fā)表于 09-02 09:09 ?305次閱讀

    嵌入式linux開發(fā)板芯片的工作原理

    嵌入式Linux開發(fā)板是種基于Linux操作系統(tǒng)的嵌入式系統(tǒng)開發(fā)平臺,它廣泛應(yīng)用于工業(yè)控制、智能家居、智能交通、醫(yī)療設(shè)備等領(lǐng)域。
    的頭像 發(fā)表于 09-02 09:07 ?302次閱讀

    專家力薦|《嵌入式系統(tǒng)原理與開發(fā)——基于RISC-V和Linux系統(tǒng)》新書發(fā)售

    當前,嵌入式系統(tǒng)已成為智能設(shè)備的核心之,RISC-V+Linux的開源力量為嵌入式系統(tǒng)注入強大的創(chuàng)新動力。作為中國RISC-V軟硬件生態(tài)領(lǐng)導者,賽昉科技與業(yè)界專家合作推出《
    的頭像 發(fā)表于 07-24 08:20 ?494次閱讀
    專家力薦|《<b class='flag-5'>嵌入式</b>系統(tǒng)原理與開發(fā)——基于RISC-V和<b class='flag-5'>Linux</b>系統(tǒng)》新書發(fā)售

    面試嵌入式工作,會被問什么問題?

    面試嵌入式工作時,面試官可能會從多個方面考察應(yīng)聘者的知識、技能和經(jīng)驗。以下是一些常見的嵌入式工作面試問題,這些問題涵蓋了基礎(chǔ)知識、專業(yè)技能、
    的頭像 發(fā)表于 07-17 09:26 ?1816次閱讀
    面試<b class='flag-5'>嵌入式</b>工作,會被問什么問題?

    嵌入式開發(fā)學習

    我在學校專注于學這門,感覺特別受用,所以想深入學習一些關(guān)于嵌入式一些知識
    發(fā)表于 07-09 08:24

    嵌入式系統(tǒng)軟硬件基礎(chǔ)知識大全

    嵌入式系統(tǒng)是現(xiàn)代科技發(fā)展的個重要分支,廣泛應(yīng)用于工業(yè)控制、消費電子、醫(yī)療設(shè)備、汽車電子等領(lǐng)域。本文試圖全面解析嵌入式系統(tǒng)的軟基礎(chǔ)知識,以期讓讀者對這
    發(fā)表于 05-09 14:12

    如何成為嵌入式C語言高手?

    如何成為嵌入式C語言高手? 嵌入式系統(tǒng)是當今科技領(lǐng)域的核心,而C語言則是嵌入式系統(tǒng)開發(fā)中最常用的編程語言之。成為
    發(fā)表于 04-07 16:03

    如何成為嵌入式C語言高手?

    如何成為嵌入式C語言高手? 嵌入式系統(tǒng)是當今科技領(lǐng)域的核心,而C語言則是嵌入式系統(tǒng)開發(fā)中最常用的編程語言之。成為
    發(fā)表于 03-25 14:12

    嵌入式人工智能的就業(yè)方向有哪些?

    的發(fā)展方向有很多,門檻高低不樣。下面給大家列舉一些相應(yīng)崗位所需具備的技能: 嵌入式Linux,C語言開發(fā)工程師,
    發(fā)表于 02-26 10:17

    嵌入式軟件開發(fā)應(yīng)該掌握哪些知識?

    嵌入式軟件開發(fā)應(yīng)該掌握哪些知識? 、 什么是嵌入式軟件? 嵌入式軟件通常是指嵌入式系統(tǒng)中運行的
    發(fā)表于 02-19 11:23

    嵌入式Linux開發(fā)的三種方式

    嵌入式Linux開發(fā)主要有三種方式:裸機開發(fā)、SDK開發(fā)和驅(qū)動開發(fā)。
    的頭像 發(fā)表于 01-22 14:22 ?900次閱讀

    嵌入式自學好書推薦

    令、編輯器VI、編譯器GCC、調(diào)試器GDB以及Make項目管理工具、Shell和Makefile腳本編寫等知識,并搭建嵌入式開發(fā)環(huán)境。推薦書籍:《Linux從入門到精通》。 無論從就業(yè)市場還是技術(shù)發(fā)展的角度來看,
    發(fā)表于 01-11 15:13

    列舉一些嵌入式Linux應(yīng)用開發(fā)里經(jīng)常使用的技巧和套路

    本篇文章,我們基于ELF 1S這款開發(fā)板,來列舉一些嵌入式Linux應(yīng)用開發(fā)里面,經(jīng)常使用到的開發(fā)技巧和套路。
    的頭像 發(fā)表于 11-14 10:44 ?440次閱讀
    列舉<b class='flag-5'>一些</b><b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>應(yīng)用開發(fā)里經(jīng)常使用的技巧和套路