2012-07-02 54 views

回答

1

使用不僅僅是標準C庫更需要一些移植工作的任何代碼 - 非標準和OS特定庫和調用作出安排,確定所需,甚至努力的程度這樣一個港口的可行性。

任何複雜性的大多數Linux代碼都需要POSIX API,網絡代碼可能會使用BSD套接字。多線程代碼可能會使用pthreads。 uC/OS-II既沒有這些,它僅處理調度,時序,同步和進程間通信;它是一個調度內核,與Linux不同,它不是一個完整的操作系統 - 它甚至沒有文件系統 - 這是大多數Linux代碼的要求。當然,添加額外的庫和擴展可能會提供您可能需要的部分或全部內容。此外,uC/OS-II簡單的每線程優先級調度程序會使典型的Linux多線程代碼難以按預期方式進行調度。大多數RTOS(包括uC/OS-III)都支持相同優先級的任務的循環/時間片調度,但uC/OS-II不支持;可能使它不適合這項任務。或許uC/OS-II可能更加複雜,或者可能使用更適合uC/OS-II的代碼。例如,對於嵌入式系統來說,這是一個更完整的RTOS;它是開源的,包含POSIX API,文件系統支持和套接字API。將Linux代碼移植到那裏會容易得多。同樣有許多輕量級的嵌入式Web服務器例子,可能更適合uC/OS-II和其他簡單的RTOS,甚至根本不需要操作系統。例如,LwIP是用於小型嵌入式系統的TCP/IP堆棧,其中存在uC/OS-II端口並且存在web server examples。要點是Linux與uC/OS-II是不可比的;一個需要< 10Kb的代碼,另一個需要約4Mb的最小尺寸!要讓Linux代碼在這樣的系統上運行,需要添加大量附加代碼來提供缺失的服務,並且在目標平臺上可能不可行。


[編輯:2012年7月08]

您在使用Micrium's own TCP/IP stack and μC/HTTPs web-server add-on考慮?可以更好地集成到uC/OS-II中,並提供比非RTOS特定的第三方代碼更好的性能。

+0

感謝您的有用信息。 –

+0

我有一個經過驗證的應用程序,運行在UCOS-2 RTOS上,由AllegroSoft用戶Rompager作爲Web服務器。但是網絡服務器存在性能問題,所以我想在我的UCOS-2平臺上移植Hiawatha。我需要堅持使用UCOS-2,因爲我的應用程序是寫在它上面的。所以我只剩下一個選項來更改Web服務器。請建議任何可以在UCOS-2上實施的開源Web服務器,並提供豐富的用戶體驗。 –

+0

性能可能是您的硬件而不是Rompager的限制。你在做什麼? uC/OS = II主要用於從8位開始的資源受限/低時鐘速度系統。Linux應用程序(甚至被認爲是「輕量級」的應用程序可以假設可用數十兆字節的RAM,超過200MHz的時鐘速度,完整的網絡堆棧,MMU控制的內存和文件系統;所以我發現它很難想象移植一個Linux應用程序是解決您的性能問題的方案,除非您的系統具有相似的資源 – Clifford

相關問題