一个简单的51单片机操作系统的实现
讲解一下实现的内容:
task_0是个空循环
task_1的作用是提取task_2的等待时间,显示在数码管上
task_2是在P3口上的跑马灯(2秒跑一个灯)
task_3是单纯地调用任务延时
task_4在P1口上的跑马灯(100ms跑一个灯)
程序使用定时器2计数器产生的中断作为时钟源,时钟的节拍是10ms一次。
当然这个渺小的操作系统只实现了一些相当基本的功能:多任务和系统延时以及抢占优先级。还有信号量、内存管理、事件、邮箱等等机制尚未实现,但是懂了这个基础内容之后,其它的东西,都是在上面做扩充的。
记得在一篇资料里面听到过这个:会写状态机的程序员,肯定会写操作系统。这句话到现在觉得相当正确。操作系统就是一个另类的状态机,人为地干预了子程序调用和返回的过程。庆幸当年的汇编没白学,操作系统需要懂得一些基本的硬件结构,汇编,C语言,当懂得这些之后,再去网上多搜索点相关的资料,并且自己去用代码一行行实现,加以时日,操作系统便能轻松地玩转与手.
在此,感谢黄健昌在网上的发表的《 建立一个属于自己的AVR的RTOS》,这篇文章让我对RTOS有了一个浅显的了解
风城少主发表的《建立一个属于自己的51实时操作系统》,指导我在熟悉的51单片机上实现这个操作系统。
芯源老师的《芯源的单片机教程》为我提供了51单片机汇编及其硬件架构的深入了解。
感谢http://www.51hei.com/mcu/1111.html这个作者的激励与鼓励
真诚地感谢上面提及的人,让我能够入门操作系统,进而了解到什么是嵌入式操作系统,怎么去具体实现。
评论