2016-06-25 277 views
2

我將開始在Zynq板上開發應用程序。我的任務基本上是移植雙核ARM上的Microblaze上運行的現有應用程序。Petalinux和FreeRTOS之間的定性比較

我想知道的是哪種O.S.在新系統上使用,因爲我在這個領域沒有任何經驗。 看來,我認爲主要有四個途徑:

1)的Petalinux(使用雙核)

2)的Petalinux + FreeRTOS操作系統(使用雙核)

3)FreeRTOS操作系統(僅使用一個核心)

4)Baremetal(僅使用一個核心)

什麼我的應用程序需要做的是將以太網和多種自定義鏈接之間的數據的數量較大,所以它必須服務於大量的中斷和命令很多DMA操作離子。

Petalinux在中斷服務中針對裸機或FreeRTOS引入了多少開銷?對於這種工作,您認爲運行沒有任何操作系統的單個核心應用程序的速度會更快嗎?例如,Petalinux應用程序具有操作系統開銷(以及像信號量或互斥鎖那樣的同步機制)?

我知道這個問題並不精確,也很模糊,但在該領域沒有經驗,我強烈需要一些初步提示。

謝謝。

回答

1

正如你所說,這太模糊了,不能給出一個考慮的答案,因爲它實際上取決於你的應用程序(何時不這樣做)。如果你需要所有可用於Linux的「東西」,並且啓動時間不是問題,那就去做吧。如果您需要實際的實時行爲,快速啓動時間和簡單性,並且不需要特定的Linux,那麼FreeRTOS可能是您的最佳選擇。有一個Zynq FreeRTOS TCP項目在這裏使用BSD樣式套接字接口(如Linux):http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCPIP_FAT_Examples_Xilinx_Zynq.html

+0

謝謝你的評論。我主要懷疑的是在開銷較大但使用兩個內核的Petalinux應用程序與FreeRTOS解決方案(僅使用一個內核)之間的性能折中。我期待的主要是中斷服務的速度。 – Alessandro

1

通常,性能不應該有很大差異。 如果您使用優化編譯器編譯您的linux,與裸機相比,有一個很好的機會。

但是如果你需要硬實時linux不適合你。

有Altera的一個很好的白皮書,但應符合賽靈思太: whitepaper on real time jitter

+0

非常有用的答案。相反,內核和用戶空間之間的內存拷貝是什麼?我必須嚴重依賴以太網(使用TCP),所以我想知道如果使用petalinux解決方案,總線佔用率將會(高得多)更高 – Alessandro

+0

很難說發生了什麼,硬件實現之間存在很大差異。 存在以太網IP內核的解決方案,而不使用arm(也就是Linux)。通常實時以太網是不可能的(存在一些實時的實現),但在大多數情況下,它不是必需的。 另一件事什麼是實時的,每秒包,1us,1ms,1s延遲? –

+0

我對硬實時沒有興趣,但是在吞吐量方面 – Alessandro