1. 程式人生 > >PX4概念學習(1)——Linux下多程序、多執行緒基礎

PX4概念學習(1)——Linux下多程序、多執行緒基礎

【學習Freeape大神的uORB時,乘機補補有關Linux多程序、多執行緒的知識】

uORB(Micro Object Request Broker,微物件請求代理器)是PX4/Pixhawk系統中非常重要且關鍵的一個模組,它肩負了整個系統的資料傳輸任務,所有的感測器資料、GPS、PPM訊號等都要從晶片獲取後通過uORB進行傳輸到各個模組進行計算處理。實際上uORB是一套跨程序的IPC通訊模組。在Pixhawk中, 所有的功能被獨立以程序模組為單位進行實現並工作。而程序間的資料互動就由為重要,必須要能夠符合實時、有序的特點。   Pixhawk使用的是NuttX實時ARM系統,uORB實際上是多個程序開啟同一個裝置檔案,程序間通過此檔案節點進行資料互動和共享。程序通過命名的「匯流排

」交換的訊息稱之為「主題」(topic),在Pixhawk 中,一個主題僅包含一種訊息型別,通俗點就是資料型別。每個程序可以「訂閱」或者「釋出」主題,可以存在多個釋出者,或者一個程序可以訂閱多個主題,但是一條總線上始終只有一條訊息。

主要參考這兩篇文章:

Linux下的多程序程式設計初步

Linux下的多執行緒程式設計