本帖最后由 smcdef 于 2017-6-27 17:43 编辑
1 SMC-RTOS由来作为一名单片机的爱好者,我想大家都沉迷于自己作为造物主的角 {MOD}。控制着各种形形 {MOD} {MOD}的传感器,实现各种各样的功能。然而,在编程的世界中,你是否还在一直使用前后台轮询的方式编程。站在自己的角度来说,我一直是。当需要很多个线程的时候,我一般采取的方法是在定时器中为每一个线程定义一个计数器和一个事件标志位。当计数器达到设定的时间就立刻置位相应的标志位。main函数中通过查询置位的标志位进行线程处理。我想,聪明的你肯定明白我在说什么。但是,每一次多以线程就要定义一个事件标志位。命名都烦,因此就萌发使用操作系统的念头。但是经过自己的思考,我觉得现有的uC/OS-II是资料最多的RTOS,因此编程方便。但是,uC/OS-II(商业软件)又感觉过于臃肿并且开源但是不免费。因为我只想有一个线程调度的功能即可。所以,就决定自己写一个RTOS,仅仅包含基本的线程调度、时间片轮转以及信号量同步等功能。当然啦,更多的功能,完全可以由你自己完成或者日后我来完成,供大家选择。
2 致谢本人由于看过Linux内核、U-Boot、uC/OS-II以及RT-Thread的等工程源代码,因此在编程的过程中,或多或少的借鉴了他们优秀的代码风格以及编程思想。本人非常不喜欢uC/OS-II的代码风格以及命名规范,因此这也是我不喜欢uC/OS-II的原因之一,但是优秀的代码的思想值得借鉴。本人英语能力有限,因此在命名上为了更加符合英语的表达,因此在函数和变量的命名上部分直接采用RT-Thread的命名。在链表的使用,借鉴了Linux内核的使用方法,Linux内核对链表的操作可谓是我见到的代码之中最优秀之一。因此,在这里感谢这些优秀programmer。因此,我对于SMC-RTOS的定位是:SMC-RTOS是一款开源嵌入式实时操作系统(遵循GPL许可协议),它短小精悍,主要包含线程调度、信号量以及软件定时器。现阶段已经移植成功的平台有Cortex-M3和Cortex-M4内核的SoC。
3 源码获取SMC-RTOS是完全开源的实时操作系统,为了让更多感兴趣的人使用和学习,SMC-RTOS的全部源码可以从github链接:
https://github.com/smcdef/SMC-RTOS下载。感谢你的使用和支持,如果使用发现任何的bug可以发送到我的邮箱:
smcdef@163.com。
4 目标人群SMC-RTOS功能简单,代码量不多,因此适合想使用操作系统而又只想使用RTOS的线程调度功能。由于代码量少,因此可以更简单的阅读源码掌握调度的整个过程,在系统调试的时候,可以帮助我们确定问题存在是用户代码部分还是RTOS部分。同时,也适合新手学习,麻雀虽小,可是五脏俱全啊!通过阅读源码可以让你掌握RTOS的工作原理。
如果你想一起参与进来,我们可以共同维护代码,以及添加功能。当然了,最初的想法是打造精简的RTOS。
注意:移植的F4平台的工程中使用的代码不是最新版本的RTOS,最新版本的源码可以从github地址:https://github.com/smcdef/SMC-RTOS下载
下载方法:见图片
有一个PDF的介绍,定时器的使用在文档中有介绍,信号量当然跟其他的RTOS使用方法一致,因为都是信号量,内核短小,很容易理解,所以应该很容易的!谢谢支持
一周热门 更多>