2012-07-02 113 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

相关问题