久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 行業百科 > 簡述Linux如何應用(yong)在(zai)嵌入式(shi)單(dan)片機上

簡述(shu)Linux如何應用(yong)在嵌入式單片機上 時間:2020-05-06      來源:原創

大多數功能更強大的緊湊型單片機(SBC)都運行一種流行的Linux發行版,專門用于這些嵌入式板。盡管沒有針對嵌入式應用程序的特定版本的Linux內核,但與運行Linux的PC或臺式設備的區別通常很小。
通常比擁有大量RAM和硬盤更依賴于閃存-在某些情況下還“無頭”,即沒有HDMI或視頻輸出-嵌入式應用程序的分發是針對可用資源而量身定制的,而不是不能夠運行某些功能或命令。對于無頭SBC而言,與它們進行交互的唯一方法是通過Linux命令行,因此必須具備良好的Linux基礎知識。同樣,在設備和外圍設備連接級別(例如,具有GPIO接口和I2C功能),需要了解許多重要的Linux資源。在本文中,我們將介紹將嵌入式SBC連接到現實世界時最可能使用的一些命令。假定您具有一些基本的Linux命令行技能。

在開始使用命令行界面(CLI)之前,讓我們回顧一下使用Linux的一些好處。Linux可以運行在從具有嵌入式微控制器的緊湊型SBC到多核數據中心服務器等各種設備上,它是一種極其高效且可擴展的操作系統(OS)。正如我們將在本文中發現的那樣,您的SBC上可以使用大量的開源程序。我們將在本文中介紹其中一些,但還有數百個。將OS用于嵌入式設計的一個方面是,它并不特別適合某些實時應用程序的延遲和確定性要求。就是說,有許多行業的發展旨在提供基于搶占式的硬實時Linux OS。實質上,這樣可以根據需要中斷OS,以滿足實時需求。而且,由于Linux是開源操作系統,因此它已獲得GNU通用公共許可證(GPL)的許可,并且可以免費使用和修改。在這種情況下,社區對OS的支持是巨大的,因為有成千上萬的Linux內核和應用程序開發人員參與其中。
命令級界面
對于本文中的示例,我們將使用PocketBeagle板。PocketBeagle的IP地址為192.168.6.2,默認用戶為'debian'。在本文中,<ret>表示按回車鍵或Enter鍵。按住Ctrl鍵并按另一個鍵(在此示例中為“ D”)由Ctrl-D表示。Linux命令也有很長的選項列表,可以從命令行調用這些選項。鼓勵讀者研究這些內容,只需鍵入命令后接--幫助(例如df)--help <ret>即可產生命令語法和選項的完整詳細信息,在此情況下,設備文件系統命令。
從計算機到PocketBeagle的連接取決于使用終端程序(例如PuTTY)在Microsoft Windows下運行,還是使用Mac OS X時使用終端。
SSH(安全外殼)提供了一種遠程連接到另一臺計算機的安全加密方法。連接后,您可以運行直接在該計算機上運行的所有命令。
最常用的命令格式是SSH user @ host <ret>。主機可以是IP地址,也可以是本地網絡上的主機名。可以使用Ctrl-D終止SSH會話。如果先前未與主機(在這種情況下為PocketBeagle)進行通信,則將顯示警告消息。

Linux的前提是所有內容都是文件,并且GPIO引腳也不例外。PocketBeagle的每個可用輸入和輸出都以這種方式處理,可以在/ sys / class / gpio目錄中找到。當您使用Python之類的語言進行工作時,除了將其設置為高輸出還是低輸出之外,還可以將每個單獨的GPIO設置為輸入或輸出。這可以在命令行中以相同的方式實現。
在此示例中,選擇了引腳gpio27,然后使用命令echo out> direction <ret>設置GPIO方向。這會將“輸出”放入文件“方向”。然后,您可以通過命令echo 1> value <ret>將引腳的輸出值設置為高電平,或者通過echo 0> value <ret>將引腳驅動為低電平。使用PocketBeagle,您可以通過以相同的方式打開和關閉USR LED,將“亮度”值從0更改為1來打開LED,從而獲得一些樂趣。
在將7段顯示器或加速度計之類的I 2 C設備連接到嵌入式板的I 2 C總線時,至關重要的是要確保沒有其他設備正在使用該總線上的地址。通常,一個SBC配備有多個I 2 C總線。通常,某些內部板外圍設備可以連接到一個,而另一兩個可以用于用戶應用。i2cdetect實用程序可以掃描指定的總線并返回找到的設備的結果。-l選項提供有關可用的I 2 C總線數量的信息,而i2cdetect –r 0 <ret>命令提供了在總線0上發現的設備的列表。在圖4所示的示例中,在以下位置找到了兩個設備:地址24h和50h。
采用支持Linux使用的SBC會增加許多功能,并通過使用開源工具和軟件來幫助簡化開發過程。嵌入式開發人員將欣賞實用程序命令輕松完成集成外圍設備并實現跨局域網和與基于Web的應用程序之間的數據連接的任務。

一些(xie)常用(yong)的(de)文件(jian)和目錄命(ming)令

 

ls –列出(chu)文件

 

例如,ls <ret>,ls –l <ret>顯(xian)示每個(ge)文件的完整(zheng)詳細信息

 

cd –更改目錄(lu)

 

例如,cd <ret>,cd .. <ret>向上移動目錄,cd /。<ret>移至根目錄,cd?/ <ret>移至主目錄,cd / node_modules <ret>

 

mkdir –新建目錄

 

例(li)如,mkdir projectfab <ret>

 

rm –刪除文件

 

例如,rm empty.txt <ret>

 

rmdir –刪除目錄(lu)

 

例如,rmdir projectfab <ret>

 

cp –復制(zhi)文(wen)件或目錄

 

例如,cp program.c projectfab / program.c <ret>將文件program.c復制到子(zi)目錄projectfab

 

mv –移動文(wen)件或目(mu)錄(lu)

 

例如(ru),mv program.c projectfab / newprogram.c <ret>;將文件program.c移(yi)至(zhi)子目(mu)錄projectfab并將其重(zhong)命名(ming)為newprogram.c

 

觸摸(mo)–創建一個空文(wen)件

 

例如,觸摸empty.txt <ret>

 

更(geng)多(duo)–查看文件內(nei)容

 

例(li)如,更多program.c <ret>

 

whereis –查(cha)找特定(ding)文件或(huo)目(mu)錄(lu)的存儲位置

 

其(qi)他有(you)用的實用程序(xu)命令

 

df –提供有關(guan)計算機文件(jian)系統和已安裝(zhuang)設備的詳細(xi)信息

 

du –文(wen)件的完整目(mu)錄

 

您可以(yi)將一(yi)個命(ming)令(ling)(ling)的輸出(chu)“管道&rdquo;到另一(yi)命(ming)令(ling)(ling)–例如,一(yi)次(ci)使用時,顯(xian)示完整的上(shang)述命(ming)令(ling)(ling)輸出(chu)的屏幕

 

df | 更多(duo)<ret>

大(da)多數功(gong)能更強大(da)的(de)緊湊型單片機(SBC)都運行一種流行的(de)Linux發行版,專門用(yong)于這些嵌入式板。盡管沒有針(zhen)對嵌入式應(ying)用(yong)程序的(de)特定(ding)版本的(de)Linux內核,但(dan)與運行Linux的(de)PC或(huo)臺式設備的(de)區別通常很(hen)小。

 

通(tong)(tong)常(chang)比擁有大量RAM和(he)(he)硬盤(pan)更依賴于閃存(cun)-在某些情況下(xia)還“無(wu)頭(tou)”,即沒有HDMI或視頻輸出-嵌入(ru)式應用(yong)程序(xu)的(de)分發是(shi)針對(dui)可用(yong)資源而量身定制的(de),而不是(shi)不能(neng)夠運行(xing)(xing)某些功能(neng)或命(ming)令(ling)。對(dui)于無(wu)頭(tou)SBC而言,與它們進(jin)行(xing)(xing)交(jiao)互的(de)唯一(yi)方法是(shi)通(tong)(tong)過Linux命(ming)令(ling)行(xing)(xing),因此(ci)必須具(ju)備(bei)良好(hao)的(de)Linux基礎知識。同樣,在設備(bei)和(he)(he)外圍(wei)設備(bei)連(lian)接(jie)級(ji)別(例如,具(ju)有GPIO接(jie)口(kou)和(he)(he)I2C功能(neng)),需要了(le)解(jie)許多重要的(de)Linux資源。在本文中(zhong),我們將介紹將嵌入(ru)式SBC連(lian)接(jie)到現實世(shi)界時最可能(neng)使用(yong)的(de)一(yi)些命(ming)令(ling)。假定您具(ju)有一(yi)些基本的(de)Linux命(ming)令(ling)行(xing)(xing)技(ji)能(neng)。

 

在開始使(shi)用(yong)命令行界面(CLI)之前,讓我(wo)們回顧一下(xia)使(shi)用(yong)Linux的(de)(de)(de)一些好處。Linux可(ke)以(yi)運行在從具有(you)(you)嵌(qian)入式微(wei)控制器(qi)的(de)(de)(de)緊湊型SBC到多核數(shu)(shu)據中心服務器(qi)等各種(zhong)設(she)備(bei)上(shang),它是(shi)一種(zhong)極其(qi)(qi)高(gao)效且(qie)(qie)(qie)可(ke)擴展(zhan)的(de)(de)(de)操(cao)作系(xi)統(tong)(OS)。正如我(wo)們將在本文中發(fa)(fa)現(xian)的(de)(de)(de)那樣,您的(de)(de)(de)SBC上(shang)可(ke)以(yi)使(shi)用(yong)大量(liang)的(de)(de)(de)開源程(cheng)序(xu)。我(wo)們將在本文中介(jie)紹其(qi)(qi)中一些,但還有(you)(you)數(shu)(shu)百個(ge)(ge)。將OS用(yong)于嵌(qian)入式設(she)計的(de)(de)(de)一個(ge)(ge)方(fang)面是(shi),它并不特別適合(he)某些實(shi)(shi)時應(ying)用(yong)程(cheng)序(xu)的(de)(de)(de)延遲和確定性要(yao)求(qiu)。就(jiu)是(shi)說,有(you)(you)許(xu)多行業的(de)(de)(de)發(fa)(fa)展(zhan)旨在提(ti)供基(ji)于搶占式的(de)(de)(de)硬實(shi)(shi)時Linux OS。實(shi)(shi)質上(shang),這(zhe)樣可(ke)以(yi)根據需(xu)要(yao)中斷OS,以(yi)滿足實(shi)(shi)時需(xu)求(qiu)。而且(qie)(qie)(qie),由于Linux是(shi)開源操(cao)作系(xi)統(tong),因此它已獲得GNU通用(yong)公共許(xu)可(ke)證(GPL)的(de)(de)(de)許(xu)可(ke),并且(qie)(qie)(qie)可(ke)以(yi)免費使(shi)用(yong)和修改。在這(zhe)種(zhong)情況下(xia),社區對OS的(de)(de)(de)支(zhi)持是(shi)巨大的(de)(de)(de),因為有(you)(you)成千上(shang)萬的(de)(de)(de)Linux內核和應(ying)用(yong)程(cheng)序(xu)開發(fa)(fa)人員參與其(qi)(qi)中。

 

命(ming)令級界面(mian)

對于本文(wen)(wen)中的(de)示(shi)例(li),我們將使用PocketBeagle板。PocketBeagle的(de)IP地址為192.168.6.2,默認用戶為'debian'。在(zai)(zai)本文(wen)(wen)中,<ret>表(biao)示(shi)按(an)(an)回車鍵(jian)或Enter鍵(jian)。按(an)(an)住Ctrl鍵(jian)并按(an)(an)另(ling)一個鍵(jian)(在(zai)(zai)此(ci)示(shi)例(li)中為“ D”)由(you)Ctrl-D表(biao)示(shi)。Linux命(ming)(ming)令(ling)(ling)也有很長(chang)的(de)選項列表(biao),可以(yi)從(cong)命(ming)(ming)令(ling)(ling)行調用這些選項。鼓勵(li)讀者研究這些內容,只(zhi)需鍵(jian)入命(ming)(ming)令(ling)(ling)后接--幫(bang)助(例(li)如df)--help <ret>即可產(chan)生命(ming)(ming)令(ling)(ling)語法和選項的(de)完整(zheng)詳細信息(xi),在(zai)(zai)此(ci)情況下(xia),設備文(wen)(wen)件(jian)系統命(ming)(ming)令(ling)(ling)。

從計算機到PocketBeagle的(de)連接取決于使用終端(duan)程(cheng)序(例(li)如(ru)PuTTY)在Microsoft Windows下運行(xing),還是使用Mac OS X時使用終端(duan)。

SSH(安全外殼)提(ti)供了一種(zhong)遠程(cheng)連接到(dao)另一臺計算機的安全加(jia)密方法。連接后,您可以運(yun)行直接在該計算機上運(yun)行的所有命令(ling)。

最常用的(de)命(ming)令格式是(shi)(shi)SSH user @ host <ret>。主機可(ke)以(yi)是(shi)(shi)IP地址,也可(ke)以(yi)是(shi)(shi)本地網(wang)絡上的(de)主機名(在圖(tu)1的(de)示例中(zhong))。可(ke)以(yi)使(shi)用Ctrl-D終止SSH會話(hua)。如果先前(qian)未與主機(在這種情況(kuang)下為PocketBeagle)進(jin)行通信,則(ze)將顯示警告消息(xi)。

Linux的(de)(de)(de)(de)前提是所有內容都(dou)是文件(jian),并且(qie)GPIO引腳也不例外(wai)。PocketBeagle的(de)(de)(de)(de)每個可(ke)(ke)用(yong)輸(shu)(shu)(shu)入和輸(shu)(shu)(shu)出(chu)(chu)都(dou)以這種方(fang)式處理,可(ke)(ke)以在(zai)(zai)/ sys / class / gpio目錄(lu)中(zhong)找到。當您使用(yong)Python之(zhi)類的(de)(de)(de)(de)語言進行(xing)工作時,除(chu)了將(jiang)其(qi)設置(zhi)(zhi)為(wei)高輸(shu)(shu)(shu)出(chu)(chu)還(huan)是低輸(shu)(shu)(shu)出(chu)(chu)之(zhi)外(wai),還(huan)可(ke)(ke)以將(jiang)每個單獨的(de)(de)(de)(de)GPIO設置(zhi)(zhi)為(wei)輸(shu)(shu)(shu)入或輸(shu)(shu)(shu)出(chu)(chu)。這可(ke)(ke)以在(zai)(zai)命令(ling)行(xing)中(zhong)以相同的(de)(de)(de)(de)方(fang)式實(shi)現。

在(zai)此示例(li)中,選(xuan)擇了(le)引腳gpio27,然后(hou)(hou)使用命(ming)令(ling)echo out> direction <ret>設(she)置(zhi)GPIO方(fang)向。這(zhe)會將“輸(shu)出”放入(ru)文件(jian)“方(fang)向”。然后(hou)(hou),您可以通(tong)過(guo)(guo)命(ming)令(ling)echo 1> value <ret>將引腳的(de)(de)輸(shu)出值(zhi)設(she)置(zhi)為高電平,或者通(tong)過(guo)(guo)echo 0> value <ret>將引腳驅動(dong)為低電平。使用PocketBeagle,您可以通(tong)過(guo)(guo)以相同的(de)(de)方(fang)式打開和關閉USR LED,將“亮度”值(zhi)從0更改為1來(lai)打開LED,從而獲得一些樂趣(qu)。該圖(tu)顯(xian)示了(le)USR3 LED。

 

在將7段顯示器或加速度(du)計之(zhi)類(lei)的(de)I 2 C設備(bei)(bei)連接到(dao)(dao)嵌入式(shi)板的(de)I 2 C總(zong)(zong)線(xian)(xian)時,至關(guan)重要的(de)是要確保沒有(you)(you)其他設備(bei)(bei)正在使用(yong)該(gai)總(zong)(zong)線(xian)(xian)上的(de)地址。通(tong)常(chang),一(yi)個(ge)(ge)SBC配備(bei)(bei)有(you)(you)多個(ge)(ge)I 2 C總(zong)(zong)線(xian)(xian)。通(tong)常(chang),某(mou)些內部板外圍(wei)設備(bei)(bei)可以(yi)(yi)(yi)連接到(dao)(dao)一(yi)個(ge)(ge),而(er)另一(yi)兩個(ge)(ge)可以(yi)(yi)(yi)用(yong)于用(yong)戶應用(yong)。i2cdetect實用(yong)程(cheng)序(xu)可以(yi)(yi)(yi)掃描指定(ding)的(de)總(zong)(zong)線(xian)(xian)并(bing)返回(hui)找到(dao)(dao)的(de)設備(bei)(bei)的(de)結果。-l選項提(ti)供有(you)(you)關(guan)可用(yong)的(de)I 2 C總(zong)(zong)線(xian)(xian)數量的(de)信息,而(er)i2cdetect –r 0 <ret>命(ming)令(ling)提(ti)供了(le)在總(zong)(zong)線(xian)(xian)0上發現的(de)設備(bei)(bei)的(de)列(lie)表。在圖(tu)4所(suo)示的(de)示例中(zhong),在以(yi)(yi)(yi)下位置找到(dao)(dao)了(le)兩個(ge)(ge)設備(bei)(bei):地址24h和(he)50h。

采用支持Linux使(shi)(shi)用的(de)(de)SBC會增加(jia)許多(duo)功能,并通過使(shi)(shi)用開源工具(ju)和軟件來幫助簡化(hua)開發過程(cheng)。嵌入(ru)式開發人員(yuan)將欣賞實用程(cheng)序(xu)命令輕松完成集(ji)成外圍設備并實現跨局(ju)域(yu)網和與基于Web的(de)(de)應(ying)用程(cheng)序(xu)之(zhi)間的(de)(de)數據連接的(de)(de)任(ren)務。

一些常用的文(wen)件(jian)和目錄(lu)命令

 

ls –列出文件

 

例如,ls <ret>,ls –l <ret&gt;顯示每個(ge)文件的完整(zheng)詳細信息

 

cd –更(geng)改目錄

 

例如,cd <ret>,cd .. <ret>向上移動目(mu)錄(lu),cd /。<ret>移至根目(mu)錄(lu),cd?/ <ret>移至主目(mu)錄(lu),cd / node_modules <ret>

 

mkdir –新建目錄

 

例如,mkdir projectfab <ret>

 

rm –刪除文(wen)件

 

例如,rm empty.txt <ret>

 

rmdir –刪除目錄

 

例(li)如,rmdir projectfab <ret>

 

cp –復制文件或(huo)目(mu)錄

 

例如,cp program.c projectfab / program.c <ret>將文(wen)件(jian)program.c復(fu)制到子目錄projectfab

 

mv –移動文(wen)件或目錄

 

例如(ru),mv program.c projectfab / newprogram.c <ret>將(jiang)(jiang)文件program.c移至子(zi)目錄projectfab并將(jiang)(jiang)其(qi)重命名為newprogram.c

 

觸(chu)摸(mo)–創建(jian)一個空文(wen)件

 

例(li)如(ru),觸摸empty.txt <ret>

 

更多–查看文件(jian)內容

 

例如,更多program.c <ret>

 

whereis –查找特定文(wen)件或目(mu)錄的存儲位置

 

其他有用(yong)的實用(yong)程(cheng)序(xu)命令(ling)

 

df –提供有關計算機文(wen)件系統和已(yi)安裝設(she)備的(de)詳(xiang)細信息

 

du –文件的完整目錄

 

您(nin)可(ke)以將一(yi)(yi)個命(ming)(ming)令的(de)輸(shu)出“管道”到另(ling)一(yi)(yi)命(ming)(ming)令–例如,一(yi)(yi)次使用時,顯示完整的(de)上述命(ming)(ming)令輸(shu)出的(de)屏(ping)幕

 

df | 更多<ret>

上一篇:在版本控制中嵌入式軟件工程師需要了解什么

下一篇:促使你學習嵌入式系統編程的動力有哪些

熱點(dian)文章推薦
華清(qing)學員就業榜單
高薪學員經驗(yan)分享
熱點新聞推薦
前臺(tai)專線(xian):010-82525158 企業培訓洽談專線:010-82525379 院校(xiao)合作洽(qia)談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部