日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

从单片机工程师的角度看嵌入式Linux

發(fā)布時(shí)間:2023/12/19 linux 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从单片机工程师的角度看嵌入式Linux 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

這篇文章簡(jiǎn)單我們來一起梳理嵌入式Linux的一些知識(shí),方便于一些想跟我一樣想要由單片機(jī)進(jìn)階到嵌入式Linux的朋友做一些參考學(xué)習(xí)。

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

嵌入式Linux學(xué)哪些東西

1、認(rèn)識(shí)Linux

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

2、認(rèn)識(shí)嵌入式Linux

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

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

(1)BootLoader

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

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

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

(2)Linux內(nèi)核

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

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

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

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

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

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

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

(4)Linux驅(qū)動(dòng)

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

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

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

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

(5)Linux應(yīng)用

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

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

3、一點(diǎn)經(jīng)驗(yàn)

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

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

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

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

而且有時(shí)候看似只是一個(gè)問題,但這個(gè)問題會(huì)牽扯著其它問題,得有耐心的解決。

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

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

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

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

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

-END-

﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

免責(zé)聲明:本文轉(zhuǎn)自網(wǎng)絡(luò),版權(quán)歸原作者所有,如涉及作品版權(quán)問題,請(qǐng)及時(shí)與我們聯(lián)系,謝謝!

猜你喜歡

一個(gè)單片機(jī)的小問題。<<戳這里

做技術(shù)的,聊聊研發(fā)。<<戳這里

硬件工程師如何成為焊接界的高手。<<戳這里

?最 后??

?

若覺得文章不錯(cuò),轉(zhuǎn)發(fā)分享,也是我們繼續(xù)更新的動(dòng)力。

5T資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、單片機(jī)、等等

在公眾號(hào)內(nèi)回復(fù)「更多資源」,即可免費(fèi)獲取,期待你的關(guān)注~

長(zhǎng)按識(shí)別圖中二維碼關(guān)注

總結(jié)

以上是生活随笔為你收集整理的从单片机工程师的角度看嵌入式Linux的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。