導航:首頁 > 器材知識 > nuttx上如何注冊設備

nuttx上如何注冊設備

發布時間:2022-02-16 18:59:08

『壹』 如何用eclipse將nuttx系統編譯到嵌入式系統中呢

eclipse只是個IDE,需要有編譯工具鏈。由於NUTTX是基於不同的開發板和CPU的嵌入式操作系統,因此需要根據硬體進行配置,然後編譯,編譯需要的工具鏈根據硬體的不同而不同。知道用什麼編譯工具鏈後,在eclipse中設置工具鏈的路徑就可以了。
重點在移植,用不用eclipse都行,命令也可以。

『貳』 如何用開源飛控PIXHAWK進行開發

以下所描述的都是針對px4原生固件,此外,由於固件更新過於頻繁,本文描述的是15年7月的固件,主要是舉例,有改動的話,自己再研究研究吧(後面換cmake編譯方式了,改動蠻大)。
既然要做開發,第一步就是搭好開發環境,根據我的經驗,最好是在linux環境下編譯,這樣效率會很快,以前在windows下編譯,經常40分鍾以上,這樣就太影響開發了;
第二步,大概了解下固件的架構,

如果只涉及應用層的開發,那底層的nuttx系統就可以繞過去了,一般,最好先把uorb模塊的機制整明白就好了,從uorb入手,了解每個話題的來源以及作用,整理數據流,清楚每個模塊之間的關系即可,比如,要實現手動模式,哪些模塊互相交互,auto模式,又有哪些模塊起作用,

如果涉及相應演算法的開發,要學會定位到相應的演算法模塊,甚至具體到哪些代碼,比如,你想試驗你的姿態估計演算法,那你就將姿態估計模塊替換掉即可,不過相應的介面仍需要和px4環境一樣,以姿態估計為例,最後要發布你的vehicle_attitude話題,不然無法與其他模塊交互;

另外,不要試圖在代碼中找main函數,那是單片機思維,你只需看啟動腳本即可,\ROMFS\px4fmu_common\init.d\rcs;

第三步,針對你的具體情況,定位相應的模塊,進行精讀研究,雖然模塊基本是用C++寫的,但是不會C++也沒關系,畢竟又不是讓你寫,本人倒目前為止,也不會C++,配合注釋,看明白就好了,比如,整理下mavlink的控制流程;

px4原生固件模塊列表:

系統命令程序

mavlink –通過串口發送和接收mavlink信息

sdlog2 –保存系統日誌/飛行數據到SD卡

tests –測試系統中的測試程序

top –列出當前的進程和CPU負載

uORB – 微對象請求代理器-分發其他應用程序之間的信息

驅動

mkblctrl–blctrl電子模塊驅動

esc_calib –ESC的校準工具

fmu –FMU引腳輸入輸出定義

gpio_led –GPIOLED驅動

gps –GPS接收器驅動

pwm –PWM的更新速率命令

sensors –感測器應用

px4io –px4io驅動

uavcan –uavcan驅動

飛行控制的程序

飛行安全和導航

commander –主要飛行安全狀態機

navigator –任務,失效保護和RTL導航儀

估計姿態和位置

attitude_estimator_ekf –基於EKF的姿態估計

ekf_att_pos_estimator –基於EKF的姿態和位置估計

position_estimator_inav–慣性導航的位置估計

multirotor姿態和位置控制器

mc_att_control–multirotor姿態控制器

mc_pos_control –multirotor位置控制器

fixedwing姿態和位置控制器

fw_att_control –固定翼飛機的姿態控制

fw_pos_control_l1 –固定翼位置控制器

垂直起降姿態控制器

vtol_att_control –垂直起降姿態控制器

最後提一句,多看看官網的說明,另外根據本人的經驗來看,由於大框架,代碼人家都寫好了,通常你要加功能,所修改的也就幾行代碼而已,舉例說明,比如px4固件只能在手動模式解鎖,假如我要修改成定高模式解鎖:

將MAIN_STATE_MANUAL替換成MAIN_STATE_ALTCTL即可。

『叄』 OSX系統用QT編譯cmakelist文件時出錯 在這無限循環

Qt在編譯時,需要首先使用uic.exe編譯UI文件,通過moc.exe處理Q_OBJECT之類的宏,當然你可以去掉這些定義,否則就需要加上:#COMPILEUIsSET(UISmnwindow)FOREACH(ui_file${UIS})SET(TMP_IN"${PROJECT_SOURCE_DIR}/res/${ui_file}.ui")SET(TMP_OUT"${PROJECT_BINARY_DIR}/ui_${ui_file}.h")EXECUTE_PROCESS(COMMAND${QT_FOLDER}/bin/uic.exe-o${TMP_OUT}${TMP_IN})MESSAGE(STATUS"EXEC=${QT_FOLDER}/bin/uic.exe-o${PROJECT_BINARY_DIR}/ui_${ui_file}.h${PROJECT_SOURCE_DIR}/res/${ui_file}.ui")ENDFOREACH(ui_file)#CREATEMOCSET(HEADERSmainwindow)FOREACH(header_file${HEADERS})SET(TMP_IN"${PROJECT_SOURCE_DIR}/inc/${header_file}.h")SET(TMP_OUT"${PROJECT_BINARY_DIR}/moc_${header_file}.cpp")EXECUTE_PROCESS(COMMAND${QT_FOLDER}/bin/moc.exe-o${TMP_OUT}${TMP_IN})SET(MOCS${MOCS}${PROJECT_BINARY_DIR}/moc_${header_file}.cpp)MESSAGE(STATUS"EXEC=${QT_FOLDER}/bin/moc.exe-o${PROJECT_BINARY_DIR}/moc_${header_file}.cpp${PROJECT_SOURCE_DIR}/inc/${header_file}.h")ENDFOREACH(header_file)freec#.netqrcreator這里要注意的是:EXECUTE_PROCESS在COMMAND後面不能加引號,命令直接寫,否則執行的程序也不會出錯,但也不會正常運行.

『肆』 嵌入式Linux和RTOS的區別

移植RTOS可以讓代碼更加清晰,後期維護 已經增加功能都很方便。裸機的中斷是有優先順序,但是你在前台的while(1)里邊是有順序的

『伍』 如何用開源飛控Pixhawk進行二次開發

商業轉載請聯系作者獲得授權,非商業轉載請註明出處。
鏈接:http://www.hu.com/question/38874663/answer/84239995
來源:知乎
以下所描述的都是針對px4原生固件,此外,由於固件更新過於頻繁,本文描述的是15年7月的固件,主要是舉例,有改動的話,自己再研究研究吧(後面換cmake編譯方式了,改動蠻大)。

既然要做開發,第一步就是搭好開發環境,根據我的經驗,最好是在linux環境下編譯,這樣效率會很快,以前在windows下編譯,經常40分鍾以上,這樣就太影響開發了;
第二步,大概了解下固件的架構,

如果只涉及應用層的開發,那底層的nuttx系統就可以繞過去了,一般,最好先把uorb模塊的機制整明白就好了,從uorb入手,了解每個話題的來源以及作用,整理數據流,清楚每個模塊之間的關系即可,比如,要實現手動模式,哪些模塊互相交互,auto模式,又有哪些模塊起作用,
如果涉及相應演算法的開發,要學會定位到相應的演算法模塊,甚至具體到哪些代碼,比如,你想試驗你的姿態估計演算法,那你就將姿態估計模塊替換掉即可,不過相應的介面仍需要和px4環境一樣,以姿態估計為例,最後要發布你的vehicle_attitude話題,不然無法與其他模塊交互;

另外,不要試圖在代碼中找main函數,那是單片機思維,你只需看啟動腳本即可,\ROMFS\px4fmu_common\init.d\rcs;
第三步,針對你的具體情況,定位相應的模塊,進行精讀研究,雖然模塊基本是用C++寫的,但是不會C++也沒關系,畢竟又不是讓你寫,本人倒目前為止,也不會C++,配合注釋,看明白就好了,比如,整理下mavlink的控制流程;

px4原生固件模塊列表:
系統命令程序
mavlink –通過串口發送和接收mavlink信息
sdlog2 –保存系統日誌/飛行數據到SD卡
tests –測試系統中的測試程序
top –列出當前的進程和CPU負載
uORB – 微對象請求代理器-分發其他應用程序之間的信息
驅動
mkblctrl–blctrl電子模塊驅動
esc_calib –ESC的校準工具
fmu –FMU引腳輸入輸出定義
gpio_led –GPIOLED驅動
gps –GPS接收器驅動
pwm –PWM的更新速率命令
sensors –感測器應用
px4io –px4io驅動
uavcan –uavcan驅動
飛行控制的程序
飛行安全和導航
commander –主要飛行安全狀態機
navigator –任務,失效保護和RTL導航儀
估計姿態和位置
attitude_estimator_ekf –基於EKF的姿態估計
ekf_att_pos_estimator –基於EKF的姿態和位置估計
position_estimator_inav–慣性導航的位置估計
multirotor姿態和位置控制器
mc_att_control–multirotor姿態控制器
mc_pos_control –multirotor位置控制器
fixedwing姿態和位置控制器
fw_att_control –固定翼飛機的姿態控制
fw_pos_control_l1 –固定翼位置控制器
垂直起降姿態控制器
vtol_att_control –垂直起降姿態控制器
最後提一句,多看看官網的說明,另外根據本人的經驗來看,由於大框架,代碼人家都寫好了,通常你要加功能,所修改的也就幾行代碼而已,舉例說明,比如px4固件只能在手動模式解鎖,假如我要修改成定高模式解鎖

希望可以幫助你,歡迎採納

『陸』 nuttx windows下開發環境搭建

在Windows下要使用Linux工具鏈,必需有一個Linux模擬環境,這種環境有多種:Cygwin、MinGW等,這里推薦使用Cygwin。Windows下典型的開發環境是:Cygwin + GNU make + GCC/binutils。這個開發環境和Linux本地開發環境一樣可以很好地工作,除了編譯連接過程的時間可能會長一些。上面提到的定製的buildroot工具鏈在這個環境下也可以編譯。同樣,這個環境下用SDCC代替GCC也可以工作。

『柒』 arino如何輸出一個數組如位置坐標(x,y).不是賦值而是輸出。

可以試一下把println(x,y);改成:
print("("); print(x); print(","); print(y); println(")");
把數組拆分輸出

『捌』 ubuntu 環境下怎樣編譯pixhawk px4源碼

Ubuntu環境下Pixhawk原生固件PX4的編譯
分類:無人機ubuntu代碼編譯Pixhawk
(3946) (6)
Ubuntu下Pixhawk原生固件PX4的編譯這個問題困擾了兩天時間,可能是博主腦力不夠,主要是環境搭建不起來,主要原因應該是路徑的原因,最後在大師傅的幫助下還好成功將路徑搭建好,成功編譯。

下面就跟大家分享一下環境搭建的過程。

1.操作環境

每次寫文章,環境一定要介紹的,不同的環境總會出現不同的問題

我的環境是Windows下面安裝虛擬機,虛擬機跑Ubuntu

Windows:win10 64位

虛擬機:VMware Workstation 12 Pro 12.1.0 build-3272444

Ubuntu:Ubuntu15.10

2.編譯環境搭建

(1)許可權設置

官方提示:

Warning Never ever fix permission problems by using 'sudo'. It will create more permission problems in the process and require a system reinstallation to fix them.
意思是你會遇到許可權問題,不要用sudo解決,那樣會帶來更多問題,但是我沒聽他的,我沒用,最後也是實現了

官方提供指令

[plain] view plain

然後注銷,重新登錄生效

(2)安裝

更新包列表,安裝下面編譯PX4的依賴包。PX4主要支持的系列:

NuttX based hardware: Pixhawk, Pixfalcon
Snapdragon Flight hardware: Snapdragon
Raspberry Pi hardware: Raspberry Pi 2
Host simulation: jMAVSim SITL and Gazebo SITL

注意:安裝Ninja Build System可以比make更快進行編譯。如果安裝了它就會自動選擇使用它進行編譯。

[plain] view plain
卸載模式管理器

[plain] view plain

更新包列表和安裝下面的依賴包。務必安裝指定的版本的包

[plain] view plain

上面代碼中紅色部分大家需要一高警惕,gcc-arm-none-eabi版本導致PX4/Firmware編譯錯誤,現在apt-get安裝的gcc-arm-none-eabi基本上是4.9的版本,但是這個固件需要gcc-arm-none-eabi 4.8de 版本,所以最後安裝好以後,查看你的gcc-arm-none-eabi版本,如果是4.9需要手動安裝4.8的版本,安裝gcc-arm-none-eabi 4.8的版本的方法如下:

[plain] view plain

【Warning】上面紅色的路徑一定要添加正確,不然問題很多,我第一次就輸入錯誤,結果結果開不了機了,反復輸入密碼。博主裝的是Ubuntu 64位系統,而上述arm-none-eabi是直接下載的編譯好的32位,還需要安裝一個東西
[plain] view plain
可以檢查arm-none-eabi 4.8.4是否安裝成功,輸入以下指令:

[plain] view plain
如果出現如上信息,交叉編譯環境搭建就搭建成功了
(3)代碼編譯
根據PX4中文維基官網教程。
安裝Git

[plain] view plain
下載代碼

[plain] view plain
初始化
先進入Firmware文件夾,進而進行初始化、更新子模塊操作,耐心的等待……

[plain] view plain
許可權
編譯時會遇到許可權問題,執行指令

[plain] view plain
-R 是對文件下麵包含的子文件許可權問題,* 是對所有文件的許可權問題
編譯

[plain] view plain
注意到「make」是一個字元命令編譯工具,「px4fmu-v2」是硬體版本,「default」是默認配置,所有的PX4編譯目標遵循這個規則。
最後附一張編譯成功的代碼,如果這樣你還有問題,請給我留言。

[plain] view plain
-- nuttx-px4fmu-v2-default
-- The ASM compiler identification is GNU
-- Found assembler: /opt/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-gcc
-- Found PythonInterp: /usr/bin/python (found version "2.7.10")
-- Using C++03
-- Release build type: RelWithDebInfo
-- Adding UAVCAN STM32 platform driver
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lihongwei/Documents/Firmware/build_px4fmu-v2_default
#+@Tools/check_submoles.sh
PX4 CONFIG: px4fmu-v2_default
Scanning dependencies of target git_mavlink
Scanning dependencies of target git_uavcan
Scanning dependencies of target git_gencpp
Scanning dependencies of target git_genmsg
[ 0%] Generating git_init_mavlink_include_mavlink_v1.0.stamp
[ 0%] Generating git_init_src_moles_uavcan_libuavcan.stamp
[ 0%] Generating git_init_Tools_genmsg.stamp
[ 0%] Generating git_init_Tools_gencpp.stamp
[ 0%] Built target git_uavcan
[ 0%] Built target git_mavlink
[ 0%] Built target git_genmsg
[ 0%] Built target git_gencpp

『玖』 現在手機哪個品牌好

現在國內哪個品牌手機用的是國產系統?

從嚴格意義上來說,國內還沒有任何品牌的手機是國產系統。如果從寬泛一點講,華為鴻蒙算是做得最好的自研國產系統,小米vela也算一個,但還是物聯網系統。其他基於開源系統上深度定製優化的系統倒是不少。

1、華為自研鴻蒙OS,但嚴格看還是有不少開源影子

嚴格意義上的國產系統,應該從底層內核(Kernel)到外殼程序(Shell)全部是國產自研才算得上。同時,操作系統的意義是為了運行APP,一些非常常用的APP也只能自研。但國內的手機系統確實還沒有完全做到。我們就拿做得最好的華為鴻蒙OS來說。

底層內核:鴻蒙並沒有採用傳統的單內核架構,而是採用了一種微內核架構。而安卓系統則是採用宏內核。這樣看來兩者並不相干,華為也確實從底層自己研發,完全可以說是自研。但是,無論是宏內核、微內核都是Linux開源系統的兩種內核形式。從這方面講,依然借鑒了Linux開源系統。也可以充分兼容安卓。

外殼程序:外殼程序鴻蒙OS有一個專門的服務框架對上層應用提供服務。包括了分布式匯流排、分布式數據管理、分布式任務調度,以及方舟編譯器。這一切都是華為自己研發的。但很多公共基礎庫、依然和Linux、安卓類似。因為新生的系統需要考慮兼容目前主流的安卓系統。

所以,從嚴格意義上來說,華為鴻蒙也不能完全算是自研,有一小部分還是用了linux、安卓等的類似公共基礎庫。目的是為了更好的兼容,保證良好的生態。如果按照一般情況理解,華為鴻蒙是算國產自研系統的。

2、小米的MIUI系統及Vela

雷軍剛開始做小米時,就從當時的安卓系統入手,進行了深度優化形成了MIUI系統。並且從GoogleNexusone開始適配,逐漸擴散到其他通用機型。那時候泡論壇、Root、刷機是很多人為了手機更好用樂此不疲的事情。這個時候的MIUI基本還是在安卓系統上做優化。

到了2011年,小開始發布自己的手機,終於開始了自己軟硬體發展之路。有了硬體,小米再也不只是一個刷機ROM了。它可以基於自己的硬體做更加深度的定製和優化,MIUI也就在這樣的道路中一路進步。同時,也在一路替換一些安卓的核心APP,和組件。雖然定製的內容越來越多,但大部分還是停留在外殼層面。內核改動並不大,所以也還有UI兩個字。

近期,小米發布了一款自研的vela系統。該款系統是基於Nuttx開發的物聯網產品的系統。底層還是用了Nuttx內核,上層則是自研的Vela應用框架對應用提供服務。同時,還提供了logger、Autotest、GUI相關開發工具。當然,這個系統目前還只是用在物聯網,將來有可能也會擴展到手機。

3、其他國產系統

其他國產手機也在發展過程中,或多或少也定製優化出自己的系統。比如:榮耀的MagicUI;一加手機的氫OS;魅族Flyme系統;努比亞的nubiaUI;黑鯊的JoyUI;錘子的SmartisanOS;以上這些雖然發展得沒有華為、小米系統的名氣大。但是在自己家手機上也受到自家粉絲的喜愛

閱讀全文

與nuttx上如何注冊設備相關的資料

熱點內容
steam令牌換設備了怎麼辦 瀏覽:246
新生測聽力儀器怎麼看結果 瀏覽:224
化學試驗排水集氣法的實驗裝置 瀏覽:156
家用水泵軸承位置漏水怎麼回事 瀏覽:131
羊水鏡設備多少錢一台 瀏覽:125
機械制圖里型鋼如何表示 瀏覽:19
測定空氣中氧氣含量實驗裝置如圖所示 瀏覽:718
超聲波換能器等級怎麼分 瀏覽:800
3萬軸承是什麼意思 瀏覽:110
鑫旺五金製品廠 瀏覽:861
蘇州四通閥製冷配件一般加多少 瀏覽:153
江北全套健身器材哪裡有 瀏覽:106
水表閥門不開怎麼辦 瀏覽:109
花冠儀表盤怎麼顯示時速 瀏覽:106
洗砂機多少錢一台18沃力機械 瀏覽:489
超聲波碎石用什麼材料 瀏覽:607
組裝實驗室製取二氧化碳的簡易裝置的方法 瀏覽:165
怎麼知道天然氣充不了閥門關閉 瀏覽:902
公司賣舊設備掛什麼科目 瀏覽:544
尚葉五金機電 瀏覽:59