Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 将现有嵌入式源代码移植到RTOS_C_Embedded_Porting_Rtos - Fatal编程技术网

C 将现有嵌入式源代码移植到RTOS

C 将现有嵌入式源代码移植到RTOS,c,embedded,porting,rtos,C,Embedded,Porting,Rtos,我有一个现有的嵌入式源代码,它直接在没有操作系统的微控制器上运行。我需要移植代码以在特定RTOS上运行 在尝试去做一件事的时候,在哪里开始有什么指导方针吗? 资源、最佳实践和其他洞察将非常有用。RTOS抢占式多任务处理完全是关于I/O性能的。您需要能够在I/O完成时使线程就绪的驱动程序,例如,通过发送信号量。没有什么比这更重要了 不幸的是,这通常意味着需要重新设计系统,以消除以前存在的影响性能的轮询:((RTOS抢占式多任务处理完全是关于I/O性能的。您需要在I/O完成时使线程准备就绪的驱动程序

我有一个现有的嵌入式源代码,它直接在没有操作系统的微控制器上运行。我需要移植代码以在特定RTOS上运行

在尝试去做一件事的时候,在哪里开始有什么指导方针吗?
资源、最佳实践和其他洞察将非常有用。

RTOS抢占式多任务处理完全是关于I/O性能的。您需要能够在I/O完成时使线程就绪的驱动程序,例如,通过发送信号量。没有什么比这更重要了


不幸的是,这通常意味着需要重新设计系统,以消除以前存在的影响性能的轮询:((

RTOS抢占式多任务处理完全是关于I/O性能的。您需要在I/O完成时使线程准备就绪的驱动程序,例如,通过发送信号量。没有其他驱动程序比这更重要


不幸的是,这通常意味着系统重新设计,以消除以前存在的影响性能的轮询:((

首先,RTO必须移植到微控制器上。
如果RTO已经支持您的微控制器,那么下一步就是调整RTO的代码。为此,您需要参考RTO的用户指南。

首先,RTO必须移植到您的微控制器上。
如果RTO已经支持您的微控制器,那么下一步就是调整RTO的代码。为此,您需要参考RTO的用户指南。

您可能应该尝试识别非典型操作(外围设备配置、中断处理程序等)并将它们从简单的程序逻辑中分离出来,这样您就可以开始考虑如何以与RTO兼容的方式实现/替换它们。然后您需要查看程序组织—它是事件驱动的、循环轮询的吗?有时您可以在更丰富的环境中模拟原始环境,并保持大部分代码不变,其他方面mes你真的需要重新设计一些假设硬件是它的工作,因为它很乐意在操作系统环境中很好地发挥作用。你首先要回答的主要问题是:为什么你“需要”要在RTOS上移植代码?是否需要重构应用程序以更轻松地处理并行事件?是否需要在现有软件中添加新功能,这些功能需要与遗留代码同时执行?此RTOS是否有名称?我通常是您使用(掌握)后的心态一个或两个,它们几乎都一样,但如果你说的是uC/OS-II(小型)与OSE或VxWorks或其他任何东西,可能会有所帮助…@greydet-完全同意。为什么(MellowCandle)你“需要”要移植到这个操作系统?你知道在这种情况下我经常告诉客户什么吗?创建一个任务,将当前应用程序放入该任务,bam,你已经完成了。当然,在这种情况下,你没有利用RTO,但你没有告诉我们你需要减少轮询/添加协议栈等。(显然,如果您使用的是中断,那么您的工作就比将应用程序放入任务中稍微多了一点)。您可能应该尝试识别非典型操作(外围设备配置、中断处理程序等)并将它们从简单的程序逻辑中分离出来,这样您就可以开始考虑如何以与RTO兼容的方式实现/替换它们。然后您需要查看程序组织—它是事件驱动的、循环轮询的吗?有时您可以在更丰富的环境中模拟原始环境,并保持大部分代码不变,其他方面mes你真的需要重新设计一些假设硬件是它的工作,因为它很乐意在操作系统环境中很好地发挥作用。你首先要回答的主要问题是:为什么你“需要”要在RTOS上移植代码?是否需要重构应用程序以更轻松地处理并行事件?是否需要在现有软件中添加新功能,这些功能需要与遗留代码同时执行?此RTOS是否有名称?我通常是您使用(掌握)后的心态一个或两个,它们几乎都一样,但如果你说的是uC/OS-II(小型)与OSE或VxWorks或其他任何东西,可能会有所帮助…@greydet-完全同意。为什么(MellowCandle)你“需要”要移植到这个操作系统?你知道在这种情况下我经常告诉客户什么吗?创建一个任务,将当前应用程序放入该任务,bam,你已经完成了。当然,在这种情况下,你没有利用RTO,但你没有告诉我们你需要减少轮询/添加协议栈等。(显然,如果您使用的是中断,那么您的工作要比将应用程序放入任务中稍微多一些)。