PX4概念學習(1)——Linux下多程序、多執行緒基礎
阿新 • • 發佈:2018-12-11
【學習Freeape大神的uORB時,乘機補補有關Linux多程序、多執行緒的知識】
uORB(Micro Object Request Broker,微物件請求代理器)是PX4/Pixhawk系統中非常重要且關鍵的一個模組,它肩負了整個系統的資料傳輸任務,所有的感測器資料、GPS、PPM訊號等都要從晶片獲取後通過uORB進行傳輸到各個模組進行計算處理。實際上uORB是一套跨「程序
」 的IPC通訊模組。在Pixhawk中, 所有的功能被獨立以程序模組為單位進行實現並工作。而程序間的資料互動就由為重要,必須要能夠符合實時、有序的特點。
Pixhawk使用的是NuttX實時ARM系統,uORB實際上是多個程序開啟同一個裝置檔案,程序間通過此檔案節點進行資料互動和共享。程序通過命名的「匯流排
」交換的訊息稱之為「主題
」(topic),在Pixhawk 中,一個主題僅包含一種訊息型別,通俗點就是資料型別。每個程序可以「訂閱
」或者「釋出
」主題,可以存在多個釋出者,或者一個程序可以訂閱多個主題,但是一條總線上始終只有一條訊息。
主要參考這兩篇文章: