大多數功能更強大的緊湊型單片機(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的應用程序之間的數據連接的任務。
一些常用的文件和目錄命令
ls –列出文件
例如,ls <ret>,ls –l <ret>顯示每個文件的完整詳細信息
cd –更改目錄
例如,cd <ret>,cd .. <ret>向上移動目錄,cd /。<ret>移至根目錄,cd?/ <ret>移至主目錄,cd / node_modules <ret>
mkdir –新建目錄
例如,mkdir projectfab <ret>
rm –刪除文件
例如,rm empty.txt <ret>
rmdir –刪除目錄
例如,rmdir projectfab <ret>
cp –復制文件或目錄
例如,cp program.c projectfab / program.c <ret>將文件program.c復制到子目錄projectfab
mv –移動文件或目錄
例如,mv program.c projectfab / newprogram.c <ret>將文件program.c移至子目錄projectfab并將其重命名為newprogram.c
觸摸–創建一個空文件
例如,觸摸empty.txt <ret>
更多–查看文件內容
例如,更多program.c <ret>
whereis –查找特定文件或目錄的存儲位置
其他有用的實用程序命令
df –提供有關計算機文件系統和已安裝設備的詳細信息
du –文件的完整目錄
您可以將一個命令的輸出“管道”到另一命令–例如,一次使用時,顯示完整的上述命令輸出的屏幕
df | 更多<ret>
大多數功能更強大的緊湊型單片機(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地址,也可以是本地網絡上的主機名(在圖1的示例中)。可以使用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,從而獲得一些樂趣。該圖顯示了USR3 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的應用程序之間的數據連接的任務。
一些常用的文件和目錄命令
ls –列出文件
例如,ls <ret>,ls –l <ret>顯示每個文件的完整詳細信息
cd –更改目錄
例如,cd <ret>,cd .. <ret>向上移動目錄,cd /。<ret>移至根目錄,cd?/ <ret>移至主目錄,cd / node_modules <ret>
mkdir –新建目錄
例如,mkdir projectfab <ret>
rm –刪除文件
例如,rm empty.txt <ret>
rmdir –刪除目錄
例如,rmdir projectfab <ret>
cp –復制文件或目錄
例如,cp program.c projectfab / program.c <ret>將文件program.c復制到子目錄projectfab
mv –移動文件或目錄
例如,mv program.c projectfab / newprogram.c <ret>將文件program.c移至子目錄projectfab并將其重命名為newprogram.c
觸摸–創建一個空文件
例如,觸摸empty.txt <ret>
更多–查看文件內容
例如,更多program.c <ret>
whereis –查找特定文件或目錄的存儲位置
其他有用的實用程序命令
df –提供有關計算機文件系統和已安裝設備的詳細信息
du –文件的完整目錄
您可以將一個命令的輸出“管道”到另一命令–例如,一次使用時,顯示完整的上述命令輸出的屏幕
df | 更多<ret>