加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 1-收到開發(fā)板,首先要做什么?
    • 2-開發(fā)板如何上電測(cè)試?
    • 3-我暫時(shí)沒有硬件基礎(chǔ),能學(xué)習(xí)嵌入式Linux開發(fā)嗎?
    • 4-想學(xué)嵌入式Linux應(yīng)用程序開發(fā),應(yīng)該怎樣開始呢?
    • 5-很多出學(xué)者都被搭建開發(fā)環(huán)境勸退了,搭建開發(fā)環(huán)境很難嗎?
    • 6-用什么軟件編寫嵌入式Linux應(yīng)用程序代碼?
    • 8-怎樣在桌面PC和開發(fā)板之間互相傳輸文件?
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

嵌入式 Linux 開發(fā),常用的套路和技巧

2023/11/14
4062
閱讀需 11 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

我是老溫,一名熱愛學(xué)習(xí)的嵌入式工程師

生活中到處都是套路(技巧),嵌入式Linux開發(fā)也不例外,初學(xué)者如果懂得這些開發(fā)中常用的技巧,可以幫助你少走很多彎路,這些技巧不僅僅局限于某一個(gè)開發(fā)板平臺(tái),還可以舉一反三地應(yīng)用在其他開發(fā)板上面。

上一篇文章,我們開箱體驗(yàn)了 ELF 1S嵌入式Linux開發(fā)板,這款開發(fā)板來源于飛凌嵌入式全新的面向入門初學(xué)者的子品牌:ElfBoard ,關(guān)于上一篇文章的內(nèi)容,可以點(diǎn)擊下面的鏈接。
想學(xué)嵌入式,與其坐言觀望,不如起行實(shí)踐!

本篇文章,我們基于ELF 1S這一款開發(fā)板,來列舉一些嵌入式Linux應(yīng)用開發(fā)里面,經(jīng)常使用到的開發(fā)技巧和套路。

1-收到開發(fā)板,首先要做什么?

先欣賞一下包裝外觀,然后打開包裝盒,小心翼翼拿起來,觀賞一下開發(fā)板的顏值,還可以湊近點(diǎn)聞一下電路板的松香味和洗板水味。

如果開發(fā)板帶屏幕,還要看一下屏幕外觀是否有破損,如果有,馬上聯(lián)系開發(fā)板廠家進(jìn)行處理。

全面發(fā)揮你收集資料的技能,先去ElfBoard的官網(wǎng),不管三七二十八先把所有的文檔資料都下載到你的電腦,然后把以下網(wǎng)址收藏起來,因?yàn)榻虒W(xué)視頻都是在線觀看的。

https://www.elfboard.com/information/detail.html?id=1(復(fù)制到瀏覽器打開,或點(diǎn)擊【閱讀全文】)

2-開發(fā)板如何上電測(cè)試?

看這份文檔《01-0 ELF 1、ELF 1S開發(fā)板_快速啟動(dòng)手冊(cè)_V1.pdf》,基本上,現(xiàn)在很多入門級(jí)的開發(fā)板,都會(huì)配套一份“快速啟動(dòng)手冊(cè)”之類的文檔,旨在幫助初學(xué)者快速地把開發(fā)板通電使用起來。

至少通過這份手冊(cè),你可以知道開發(fā)板有哪些硬件資源,以及如何通電讓開發(fā)板運(yùn)行起來。

3-我暫時(shí)沒有硬件基礎(chǔ),能學(xué)習(xí)嵌入式Linux開發(fā)嗎?

嵌入式開發(fā)是必須要具備硬件電路知識(shí)的,不學(xué)硬件是不行的。但嵌入式軟件和硬件的學(xué)習(xí)次序,則可以靈活搭配,更何況ELF 1S這款開發(fā)板也提供了一系列的硬件學(xué)習(xí)文檔和視頻。

如果你是百分百的初學(xué)者,同時(shí)又對(duì)嵌入式技術(shù)存在執(zhí)念,那建議先從嵌入式Linux應(yīng)用開發(fā)入手,這樣至少?zèng)]那么容易被勸退。

嵌入式Linux應(yīng)用程序開發(fā),包括嵌入式Qt應(yīng)用程序開發(fā),都可以參考以下的兩份文檔內(nèi)容:

《01-1ELF 1、ELF 1S開發(fā)板_軟件教程_V1.pdf》第一章至第四章。
《01-3 ELF 1、ELF 1S開發(fā)板_Qt應(yīng)用教程_V1.pdf》整篇文檔。

4-想學(xué)嵌入式Linux應(yīng)用程序開發(fā),應(yīng)該怎樣開始呢?

要想學(xué)嵌入式Linux應(yīng)用程序,首先得了解什么是“Linux操作系統(tǒng)”?網(wǎng)絡(luò)上已經(jīng)有一大堆的概念介紹了。

要先學(xué)會(huì)用一款桌面型的Linux系統(tǒng),比如Ubuntu。因?yàn)殚_發(fā)板上面的應(yīng)用程序基本上都是在桌面型的Linux系統(tǒng)上進(jìn)行開發(fā)的,然后經(jīng)過交叉編譯后,再傳輸?shù)介_發(fā)板上面運(yùn)行。

C語言編程是必學(xué)的,shell編程也最好打一下基礎(chǔ),這兩門語言是嵌入式開發(fā)里面必不可少的兩大知識(shí)點(diǎn)。如果沒有這兩門語言的基礎(chǔ),建議先不要碰開發(fā)板,先在網(wǎng)上找相關(guān)的課程,把這兩門語言的基礎(chǔ)先打一下。

基礎(chǔ)不牢,地動(dòng)山搖!

編程語言學(xué)完后,就是搭建開發(fā)環(huán)境了。說得通俗一點(diǎn),搭建開發(fā)環(huán)境其實(shí)就是在你的Windows或者Ubuntu系統(tǒng)上面,安裝各種軟件,使你的電腦能跟開發(fā)板連接起來,能在兩者之間互相傳輸文件。安裝各種軟件,我相信這活難不倒各位。

嵌入式Linux應(yīng)用程序開發(fā),本質(zhì)上就是在你的桌面PC上寫程序,然后交叉編譯,然后把程序傳到開發(fā)板上面運(yùn)行起來。因?yàn)橛行╅_發(fā)板的性能,不足以支撐你在其上面寫代碼編譯。但有些性能非常強(qiáng)大的開發(fā)板,是可以直接在上面編程和運(yùn)行的,完全不需要交叉編譯。

記?。呵度胧絃inux開發(fā)板,本質(zhì)上也是一臺(tái)電腦,本質(zhì)上也是一臺(tái)電腦,本質(zhì)上也是一臺(tái)電腦。

5-很多出學(xué)者都被搭建開發(fā)環(huán)境勸退了,搭建開發(fā)環(huán)境很難嗎?

嵌入式Linux開發(fā)板的開發(fā)環(huán)境,有兩種獲得方式:1-根據(jù)教程和網(wǎng)上的資料,自己折騰。2-開發(fā)板廠家搭建好,直接拿來使用。

建議沒有嵌入式基礎(chǔ)的初學(xué)者,先直接用開發(fā)板廠家搭建好的開發(fā)環(huán)境,這樣不會(huì)那么容易被勸退,到了后期掌握了一定的技巧后,再嘗試自己搭建開發(fā)環(huán)境。搭建開發(fā)環(huán)境,就是安裝ubuntu,以及在Ubuntu上面安裝軟件。

使用廠家搭建好的開發(fā)環(huán)境,看《01-1 ELF 1、ELF 1S開發(fā)板_軟件教程_V1.pdf》的第二章,第2.1.3節(jié),如下圖所示。

6-用什么軟件編寫嵌入式Linux應(yīng)用程序代碼?

寫代碼的軟件多了去了,隨便簡(jiǎn)單改點(diǎn)代碼的話,記事本也是可以的。初學(xué)者比較常用的,可以用vscode,QtCreator也是一款很不錯(cuò)的編輯器,一開始入門學(xué)習(xí),不太建議迷信Vim大法,編輯器只是工具,Vim這種略復(fù)雜的編輯工具,還不太適合初級(jí)入門的同學(xué)。

不用太迷信代碼編輯工具,用你自己平時(shí)用習(xí)慣的,以及覺得編輯效率最高的,如果你平時(shí)沒有用啥編輯器,那建議用vscode吧,這工具是真香。

7-編寫完代碼,怎樣把代碼轉(zhuǎn)化為開發(fā)板能運(yùn)行的程序?

交叉編譯!前面提到,如果在開發(fā)板上面直接編寫代碼然后編譯,那個(gè)叫直接編譯運(yùn)行。如果在桌面型PC上編寫代碼和編譯,然后在開發(fā)板上面運(yùn)行,那就叫做交叉編譯。

可以查看《01-1 ELF 1、ELF 1S開發(fā)板_軟件教程_V1.pdf》這份文檔的第二章2.6.3章節(jié),如下圖所示。

8-怎樣在桌面PC和開發(fā)板之間互相傳輸文件?

一般有兩種方式:1-通過TF卡或者U盤互相拷貝,就像在兩臺(tái)電腦直接互拷文件一樣。2-用網(wǎng)線把電腦跟開發(fā)板連起來,通過FTP協(xié)議或者NFS網(wǎng)絡(luò)文件系統(tǒng)進(jìn)行傳輸。

我個(gè)人比較喜歡通過網(wǎng)絡(luò)的方式,在電腦和開發(fā)板直接互傳文件,F(xiàn)TP協(xié)議的方式,在快速啟動(dòng)手冊(cè)里面的【附錄一】有介紹,如下圖所示。

NFS網(wǎng)絡(luò)文件系統(tǒng),也是一種比較常用的方式,網(wǎng)上很多資料,可自行搜索學(xué)習(xí),特別是需要經(jīng)常修改文件系統(tǒng)配置的時(shí)候,通過NFS掛載文件系統(tǒng),可以起到事半功倍的作用。

TF卡一般用在產(chǎn)品批量生產(chǎn)時(shí)的固件燒錄,個(gè)人感覺,通過TF卡拷貝應(yīng)用程序到開發(fā)板然后運(yùn)行,略麻煩。

9-開發(fā)板的系統(tǒng)被搞壞了,怎樣恢復(fù)成出廠設(shè)置?

開發(fā)板廠家一般都會(huì)為板子配套出廠鏡像,在我們的開發(fā)過程中,如果不小心把原有的系統(tǒng)搞壞了,可以根據(jù)開發(fā)板廠家提供的方法,把開發(fā)板恢復(fù)成出廠時(shí)的狀態(tài),一般是通過特定的燒錄工具和TF卡進(jìn)行燒錄。

快速啟動(dòng)手冊(cè)里面的第四章,有講述如何為開發(fā)板恢復(fù)出廠設(shè)置,如下圖所示。

10-我想進(jìn)一步學(xué)習(xí)更復(fù)雜的嵌入式Linux系統(tǒng)移植和驅(qū)動(dòng)開發(fā),應(yīng)該怎樣開始?

看文檔和視頻,《01-1 ELF 1、ELF 1S開發(fā)板_軟件教程_V1.pdf》這份文檔的第五章至第九章,提供了Linux內(nèi)核移植、驅(qū)動(dòng)開發(fā)、u-boot介紹、文件系統(tǒng)移植,這幾大塊基本的知識(shí)點(diǎn),如下圖所示。

這幾章內(nèi)容是足夠初學(xué)者進(jìn)行入門學(xué)習(xí)的,但如果想深入,就必須從事嵌入式Linux驅(qū)動(dòng)開發(fā)相關(guān)的崗位,這類崗位在芯片原廠里面的技術(shù)含金量最高,想進(jìn)階,還是需要在工作中不斷深入學(xué)習(xí)。

11.嵌入式技術(shù)的本質(zhì)到底是什么?什么是嵌入式開發(fā)?

12.嵌入式技術(shù)能用在哪些行業(yè),這些行業(yè)的普遍工資是多少?

13.我想學(xué)嵌入式,到底應(yīng)該怎么學(xué),學(xué)習(xí)路線是怎樣的?

14.網(wǎng)絡(luò)上那么多資料,那么多開發(fā)板,到底該怎么選?

15.嵌入式需要哪些基礎(chǔ),要不要學(xué)硬件,要學(xué)哪些編程語言?

16.選單片機(jī)還是選嵌入式Linux,兩者有什么區(qū)別?

17.。。。。。。

以上種種疑問,有些問題或許你已經(jīng)有了答案,有些或許還在迷茫當(dāng)中,但作為一名十年的嵌入式老菜鳥,可以給的建議是:嵌入式技術(shù)領(lǐng)域沒有捷徑可言,學(xué)習(xí)成本也不像純軟件那樣,一臺(tái)電腦或者一臺(tái)手機(jī)就搞定,至少硬件開發(fā)板和模塊配件的投入是必須的。

經(jīng)濟(jì)條件允許的話,建議還可以購買一些質(zhì)量好的網(wǎng)絡(luò)課程,對(duì)嵌入式技術(shù)的學(xué)習(xí),將會(huì)起到事半功倍的作用。

關(guān)于上面的疑問,我們會(huì)在后續(xù)的文章里面,再繼續(xù)探討。

感謝閱讀,歡迎關(guān)注!

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
ABM8-32.000MHZ-10-B1U-T 1 Abracon Corporation CRYSTAL 32.0000MHZ 10PF SMD
$1.19 查看
ASEM1-12.000MHZ-LC-T 1 Abracon Corporation MEMS OSC XO 12.0000MHZ CMOS SMD

ECAD模型

下載ECAD模型
$1.55 查看
MX573BBA156M250 1 Microchip Technology Inc CRYSTAL OSCILLATOR, CLOCK, LVPECL OUTPUT
暫無數(shù)據(jù) 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜