⭐️px4原生源碼學習(2/3)-----Nuttx實時操縱系統的使用!!!!!

首先將你的px4硬件同電腦鏈接(經過usb便可), 切換到px4源碼目錄。 cd Firmware/Toolsphp

運行pythone腳本,同Nuttx的shell通訊 ./mavlink_shell.py /dev/ttyACM0python

運行結果以下圖所示: linux

這就是一個相似於linux的shell,由於他是Nuttx的shell,因此叫Nuttx shell,簡稱nsh。它的做用和其它操做系統的命令行沒什麼區別,都是用來對系統進行操做用的,敲擊相應的命令,完成對應得任務,是一個很好的用戶界面(知道操做系統的強大了吧!這是個在stm32上跑的系統,他還自帶shell!),因此看px4代碼千萬不要有單片機main(),init(),while(1)的思惟,要站在操做系統層面看待px4。 下面我就具體來說講這個nsh的使用: 用過shell的朋友,確定會想到我先打個help試試: shell

一看就知道了,這是nsh的命令,用過linux的應該很快就知道這些命令的意義了,像什麼ls,cd,pwd,echo,rm啦都是在linux上常常使用的命令。事實上在Nuttx系統中這些命令的功能和在其餘類Unix系統中是差很少的(由於確實有些命令功能不是那麼強大,有些許不一樣)。若是有些命令你以爲功能不是很清楚,能夠經過查看Nuttx實時操做系統的官網中Nuttx shell手冊,查看詳細功能(全英文,http://nuttx.org/doku.php?id=documentation:nuttshell,拉到網頁最下面能夠看到索引。)學習

那麼Builtin App又是什麼鬼呢? ui

其實就是Nuttx的一些內建程序,這些程序中大部分是px4團隊爲飛控寫的控制程序(因此px4飛控不是一個單獨的程序,而是由這幾十個程序構成,每一個程序功能明確!)下面咱們就隨便挑一個程序講講,好比ver,這是個判斷硬件版本的程序。在nsh界面中輸入ver,能夠看到下面的輸出,說咱們缺乏運行所帶的參數,讓我麼輸入相應參數。 操作系統

咱們就在輸入:ver hw ,它就會輸出板子的硬件版本。 .net

你能夠試試其它程序,過程都是同樣的,有的要帶參數,有的不要,能夠試試看,不會出什麼問題的。 還有一個比較重要的東西,我以爲我應該交代一下,就是Nuttx的文件系統,咱們能夠經過命令來查看Nuttx系統中有哪些文件。 nsh界面輸入:ls 命令行

能夠看到輸出了4個文件夾,由於篇幅緣由,我就不過多講解了,主要講講這四個文件夾是作什麼用的 dev文件夾下面是被系統抽象出來的驅動,你經過cd命令進去看,能夠看到裏面的文件都是對應硬件的名字,這也就是第二篇所講的一切皆文件,經過讀取這些文件就能夠獲取傳感器和其它I/O設備的數據了。 etc文件夾是用戶的是一些配置文件,和一些執行腳本(nsh執行的腳本),裏面還有一些很重要的東西,後面我會講到。 fs文件夾下面一個重要的文件夾就是microsd,這個就是px4硬件上的那張內存卡,他就被系統掛載在/fs/microsd下。 obj文件夾下面是px4團隊爲Nuttx開發的一個相似於操做系統進程通訊的東西,就是那個uorb(這個我也會在後面單獨介紹一下,目前還不是很瞭解),你目前能夠把裏面的文件理解是用來供不一樣進程間通訊的文件就好(相似於linux的管道文件)。code

相關文章
相關標籤/搜索