• 正文
  • 推薦器件
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

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

2023/11/14
2791
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

我是老溫,一名熱愛學習的嵌入式工程師

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

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

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

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

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

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

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

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

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

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

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

3-我暫時沒有硬件基礎,能學習嵌入式Linux開發(fā)嗎?

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

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

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

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

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

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

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

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

基礎不牢,地動山搖!

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

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

記住:嵌入式Linux開發(fā)板,本質(zhì)上也是一臺電腦,本質(zhì)上也是一臺電腦,本質(zhì)上也是一臺電腦。

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

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

建議沒有嵌入式基礎的初學者,先直接用開發(fā)板廠家搭建好的開發(fā)環(huán)境,這樣不會那么容易被勸退,到了后期掌握了一定的技巧后,再嘗試自己搭建開發(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應用程序代碼?

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

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

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

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

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

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

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

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

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

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

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

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

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

10-我想進一步學習更復雜的嵌入式Linux系統(tǒng)移植和驅(qū)動開發(fā),應該怎樣開始?

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

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

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

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

13.我想學嵌入式,到底應該怎么學,學習路線是怎樣的?

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

15.嵌入式需要哪些基礎,要不要學硬件,要學哪些編程語言?

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

17.。。。。。。

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

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

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

感謝閱讀,歡迎關注!

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
NC7ST08M5X 1 Fairchild Semiconductor Corporation AND Gate, HST/T Series, 1-Func, 2-Input, CMOS, PDSO5, 1.60 MM, MO-178AA, SOT-23, 5 PIN
$0.33 查看
AB26T-32.768KHZ-E 1 Abracon Corporation CRYSTAL 32.7680KHZ 12.5PF T/H

ECAD模型

下載ECAD模型
$0.23 查看
SN74LVC1G14DBVR 1 Rochester Electronics LLC Inverter,
$0.14 查看

相關推薦