日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

px4原生源码学习三--Nuttx实时操作系统的使用

發布時間:2024/4/18 windows 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 px4原生源码学习三--Nuttx实时操作系统的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/**************************************************************************************************************

? po上我使用到的硬件和開發環境

? px4硬件:某寶銷量最高的pixhawk套件(主機,gps+指南針,數傳,pwm轉pmm,安全開關,蜂鳴器,電源轉換接頭)

? 遙控器:某國產神器

? 開發環境:虛擬機vm12+ubuntu14

?ps:此文章只針對純代碼分析,關于那些個飛機類型啦,硬件什么的我就不多說了,這個得自己去親身體驗才行,切不可貿然飛行,這個還是很危險的!!!!!

?還有就是什么Git,Linux,make什么的也不會多說,畢竟只是工具屬性。

?獲得更好支持可以訪問http//:px4.io 我知道的大部分來自這個網站。

? **************************************************************************************************************/


????? 前面說到px4是基于Nuttx實時操作系統上開發的,那么Nuttx系統是怎么樣的呢?px4又是怎么在Nuttx上運行的呢?本篇文章就向大家講解一下Nuttx實時操作系統的使用。

?? 首先將你的px4硬件同電腦連接(通過usb即可),并按照我在px4原生源碼學習(1)所提到的那樣,將px4同虛擬機內的ubuntu系統連接上。

?? 切換到px4源碼目錄

cd Firmware/Tools ?

? 運行pythone腳本,同Nuttx的shell通信

./mavlink_shell.py /dev/ttyACM0 ? 我在運行這個python腳本的時候出現了一些問題,可能是腳本中用到了python 的組件pipe,所以你去安裝pipe組件,安裝組件的時候還是會出問題,你把那個問題百度一下安裝缺少的依賴包,再去安裝pipe就可以了

?如果一切正常你應該可以看到以下畫面:


??? 熟悉linux的朋友應該能夠猜出這是什么,對!這就是一個類似于linux的shell,因為他是Nuttx的shell,所以叫Nuttx shell,簡稱nsh。它的作用和其它操作系統的命令行沒什么區別,都是用來對系統進行操作用的,敲擊相應的命令,完成對應得任務,是一個很好的用戶界面(知道操作系統的強大了吧!這是個在stm32上跑的系統,他還自帶shell!),所以看px4代碼千萬不要有單片機main(),init(),while(1)的思維,要站在操作系統層面看待px4。

?? 下面我就具體來講講這個nsh的使用:

??? 用過shell的朋友,肯定會想到我先打個help試試:

???

??? 從截圖(截圖并不完整)中我們可以看到我們輸入help后的結果

??? 首先是這些:

??

?? 一看就知道了,這是nsh的命令,用過linux的應該很快就知道這些命令的意義了,像什么ls,cd,pwd,echo,rm啦都是在linux上經常使用的命令。事實上在Nuttx系統中這些命令的功能和在其他類Unix系統中是差不多的(因為確實有些命令功能不是那么強大,有些許不同)。如果有些命令你覺得功能不是很清楚,可以通過查看Nuttx實時操作系統的官網中Nuttx shell手冊,查看詳細功能(全英文)

? po上地址:http://nuttx.org/doku.php?id=documentation:nuttshell

? 拉到網頁最下面可以看到索引。


? 那么Builtin App又是什么鬼呢?

?

? 其實就是Nuttx的一些內建程序,這些程序中大部分是px4團隊為飛控寫的控制程序(所以px4飛控不是一個單獨的程序,而是由這幾十個程序構成,每個程序功能明確!)

? 下面我們就隨便挑一個程序講講,比如ver,這是個判斷硬件版本的程序。

? 在nsh界面中輸入ver,可以看到下面的輸出,說我們缺少運行所帶的參數,讓我么輸入相應參數

?

?我們就在輸入:ver hw ,它就會輸出板子的硬件版本

?

你可以試試其它程序,過程都是一樣的,有的要帶參數,有的不要,可以試試看,不會出什么問題的。



還有一個比較重要的東西,我覺得我應該交代一下,就是Nuttx的文件系統,我們可以通過命令來查看Nuttx系統中有哪些文件。

?nsh界面輸入:ls

?

?可以看到輸出了4個文件夾,因為篇幅原因,我就不過多講解了,主要講講這四個文件夾是做什么用的

dev文件夾下面是被系統抽象出來的驅動,你通過cd命令進去看,可以看到里面的文件都是對應硬件的名字,這也就是第二篇所講的一切皆文件,通過讀取這些文件就可以獲取傳感器和其它I/O設備的數據了。

etc文件夾是用戶的是一些配置文件,和一些執行腳本(nsh執行的腳本),里面還有一些很重要的東西,后面我會講到。

fs文件夾下面一個重要的文件夾就是microsd,這個就是px4硬件上的那張內存卡,他就被系統掛載在/fs/microsd下。

obj文件夾下面是px4團隊為Nuttx開發的一個類似于操作系統進程通信的東西,就是那個uorb(這個我也會在后面單獨介紹一下,目前還不是很了解),你目前可以把里面的文件理解是用來供不同進程間通信的文件就好(類似于linux的管道文件)。


?下一篇我將講解如何為Nuttx編寫一個我們程序猿入門一個平臺的都會編寫的程序。

總結

以上是生活随笔為你收集整理的px4原生源码学习三--Nuttx实时操作系统的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。