本篇文章,我們基于ELF 1S這一款開發(fā)板,來列舉一些嵌入式Linux應(yīng)用開發(fā)里面,經(jīng)常使用到的開發(fā)技巧和套路。
1-收到開發(fā)板,首先要做什么?
先欣賞一下包裝外觀,然后打開包裝盒,小心翼翼拿起來,觀賞一下開發(fā)板的顏值,還可以湊近點(diǎn)聞一下電路板的松香味和洗板水味。
如果開發(fā)板帶屏幕,還要看一下屏幕外觀是否有破損,如果有,馬上聯(lián)系開發(fā)板廠家進(jìn)行處理。
2-開發(fā)板如何上電測試?
看這份文檔《01-0 ELF 1、ELF 1S開發(fā)板_快速啟動手冊_V1.pdf》,基本上,現(xiàn)在很多入門級的開發(fā)板,都會配套一份“快速啟動手冊”之類的文檔,旨在幫助初學(xué)者快速地把開發(fā)板通電使用起來。
至少通過這份手冊,你可以知道開發(fā)板有哪些硬件資源,以及如何通電讓開發(fā)板運(yùn)行起來。
**3-我暫時沒有硬件基礎(chǔ),能學(xué)習(xí)嵌入式Linux開發(fā)嗎? **
嵌入式開發(fā)是必須要具備硬件電路知識的,不學(xué)硬件是不行的。但嵌入式軟件和硬件的學(xué)習(xí)次序,則可以靈活搭配,更何況ELF 1S這款開發(fā)板也提供了一系列的硬件學(xué)習(xí)文檔和視頻。
如果你是百分百的初學(xué)者,同時又對嵌入式技術(shù)存在執(zhí)念,那建議先從嵌入式Linux應(yīng)用開發(fā)入手,這樣至少沒那么容易被勸退。
4-想學(xué)嵌入式Linux應(yīng)用程序開發(fā),應(yīng)該怎樣開始呢?
要想學(xué)嵌入式Linux應(yīng)用程序,首先得了解什么是“Linux操作系統(tǒng)”?網(wǎng)絡(luò)上已經(jīng)有一大堆的概念介紹了。
要先學(xué)會用一款桌面型的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ā)里面必不可少的兩大知識點(diǎn)。如果沒有這兩門語言的基礎(chǔ),建議先不要碰開發(fā)板,先在網(wǎng)上找相關(guān)的課程,把這兩門語言的基礎(chǔ)先打一下。
基礎(chǔ)不牢,地動山搖!
編程語言學(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)行的,完全不需要交叉編譯。
記住:嵌入式Linux開發(fā)板,本質(zhì)上也是一臺電腦,本質(zhì)上也是一臺電腦,本質(zhì)上也是一臺電腦。
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)境,這樣不會那么容易被勸退,到了后期掌握了一定的技巧后,再嘗試自己搭建開發(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)用程序代碼?
寫代碼的軟件多了去了,隨便簡單改點(diǎn)代碼的話,記事本也是可以的。初學(xué)者比較常用的,可以用vscode,QtCreator也是一款很不錯的編輯器,一開始入門學(xué)習(xí),不太建議迷信Vim大法,編輯器只是工具,Vim這種略復(fù)雜的編輯工具,還不太適合初級入門的同學(xué)。
不用太迷信代碼編輯工具,用你自己平時用習(xí)慣的,以及覺得編輯效率最高的,如果你平時沒有用啥編輯器,那建議用vscode吧,這工具是真香。
7-編寫完代碼,怎樣把代碼轉(zhuǎn)化為開發(fā)板能運(yùn)行的程序?
交叉編譯!前面提到,如果在開發(fā)板上面直接編寫代碼然后編譯,那個叫直接編譯運(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盤互相拷貝,就像在兩臺電腦直接互拷文件一樣。2-用網(wǎng)線把電腦跟開發(fā)板連起來,通過FTP協(xié)議或者NFS網(wǎng)絡(luò)文件系統(tǒng)進(jìn)行傳輸。
我個人比較喜歡通過網(wǎng)絡(luò)的方式,在電腦和開發(fā)板直接互傳文件,F(xiàn)TP協(xié)議的方式,在快速啟動手冊里面的【附錄一】有介紹,如下圖所示。
NFS網(wǎng)絡(luò)文件系統(tǒng),也是一種比較常用的方式,網(wǎng)上很多資料,可自行搜索學(xué)習(xí),特別是需要經(jīng)常修改文件系統(tǒng)配置的時候,通過NFS掛載文件系統(tǒng),可以起到事半功倍的作用。
TF卡一般用在產(chǎn)品批量生產(chǎn)時的固件燒錄,個人感覺,通過TF卡拷貝應(yīng)用程序到開發(fā)板然后運(yùn)行,略麻煩。
9-開發(fā)板的系統(tǒng)被搞壞了,怎樣恢復(fù)成出廠設(shè)置?
開發(fā)板廠家一般都會為板子配套出廠鏡像,在我們的開發(fā)過程中,如果不小心把原有的系統(tǒng)搞壞了,可以根據(jù)開發(fā)板廠家提供的方法,把開發(fā)板恢復(fù)成出廠時的狀態(tài),一般是通過特定的燒錄工具和TF卡進(jìn)行燒錄。
快速啟動手冊里面的第四章,有講述如何為開發(fā)板恢復(fù)出廠設(shè)置,如下圖所示。
10-我想進(jìn)一步學(xué)習(xí)更復(fù)雜的嵌入式Linux系統(tǒng)移植和驅(qū)動開發(fā),應(yīng)該怎樣開始?
看文檔和視頻,《01-1 ELF 1、ELF 1S開發(fā)板_軟件教程_V1.pdf》這份文檔的第五章至第九章,提供了Linux內(nèi)核移植、驅(qū)動開發(fā)、u-boot介紹、文件系統(tǒng)移植,這幾大塊基本的知識點(diǎn),如下圖所示。
審核編輯:劉清
-
嵌入式
+關(guān)注
關(guān)注
5122文章
19422瀏覽量
312725 -
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
601瀏覽量
28137 -
C語言
+關(guān)注
關(guān)注
180文章
7626瀏覽量
139561 -
elf
+關(guān)注
關(guān)注
0文章
13瀏覽量
2275
原文標(biāo)題:嵌入式 Linux 開發(fā),常用的套路和技巧。
文章出處:【微信號:工程師進(jìn)階筆記,微信公眾號:工程師進(jìn)階筆記】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
硬核升級!華清遠(yuǎn)見STM32MP157驅(qū)動開發(fā)課程助力嵌入式Linux底層開發(fā)入門進(jìn)階

嵌入式開發(fā)必備-RK3562演示Linux常用系統(tǒng)查詢命令(上)觸覺智能出品

新手怎么學(xué)嵌入式?
零基礎(chǔ)嵌入式開發(fā)學(xué)習(xí)路線
【北京迅為】i.mx8mm嵌入式linux開發(fā)指南第四篇 嵌入式Linux系統(tǒng)移植篇第六十九章uboot移植

嵌入式開發(fā)常見問題排查

【免費(fèi)分享】嵌入式Linux開發(fā)板【入門+項(xiàng)目,應(yīng)用+底層】資料包一網(wǎng)打盡,附教程/視頻/源碼...

北京迅為RK3568開發(fā)板嵌入式學(xué)習(xí)之Linux驅(qū)動全新更新-CAN+

嵌入式linux開發(fā)的基本步驟有哪些?
嵌入式QT常見開發(fā)方式有哪些?
【出版發(fā)行】嵌入式系統(tǒng)原理與開發(fā)——基于RISC-V和Linux系統(tǒng)

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

嵌入式開發(fā)者的未來

評論