我想写一个模块,需要一些RTOSAPI,如Mbox和任务创建API!
我正在尝试结构化代码,为此我正在寻找一些库,如“lwip”。在“lwip”中有一个名为Sys arch.c的文件,据我所知,它是RTOS api的抽象层!但在我的端口中,它包括cmsis_os.h并使用了这些api。为什么他们不直接使用cmsis操作系统?
我应该有一个新的操作系统层,以便有可移植的代码或CMSIS_操作系统是足够的?

最佳答案

这个答案是基于观点的。
根据我的经验,在操作系统访问周围使用函数/定义总是一个好主意。如果你使用CMSIS_操作系统,或者你自己的层没有太大的区别,除了你有更多的工作,如果你使用自己的操作系统,特别是移植和测试变得非常麻烦与一个以上的操作系统。
CMSIS_OS将您绑定到Cortex-M系统,但是由于它们实现了您将在您的层中实现的功能,并且以非常常见的方式实现,因此稍后从CMSIS_OS移植到您自己的层相当简单。如果直接在代码中使用对特定操作系统的直接调用并不是那么简单,但是如果只依赖于标准功能(看看CMSIS_OS RTOS的常见功能是什么),并且不使用操作系统的特殊功能,也是可能的。

关于c - 如何使我的代码独立于“RTOS”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55882010/

10-15 04:32