ucos(正点原子)学习笔记|第一讲 RTOS入门

裸机与RTOS介绍 

裸机:只有硬件部分,没有任何软件系统。裸机又被称为前后台系统,前台系统指的中断服务函数,后台系统指的大循环,即应用程序。

特点:

1.实时性差。

2.delay函数是空等待,在此过程中CPU不执行其他代码。

3.结构臃肿,把所有的应用程序都往while(1)里塞。

裸机系统的事件处理方式如下:

while(1)
{
    事件1;
    事件2;
}

只有当事件1完成后,才能进行事件2。

RTOS(Real Time OS):实时操作系统。

特点:

1.把功能实现划分为多个任务。

2.延时函数过程中可以实现任务调度。

3.抢占式,低优先级任务在执行过程中,高优先级任务就绪后,会执行高优先级任务而不是低优先级任务。

4.任务堆栈:每个任务都有自己的栈空间(用来保存和恢复寄存器值)。简单来说就是在任务执行过程中,被更高优先级任务打断,当回到原先任务时,任务会从被打断处继续执行,而不是从头开始。例如背单词不会因为几天没背就又是abandon。

注意:

1.中断可以打断任意任务。(中断的优先级源于内核,任务的优先级源于软件)

2.任务可以同等优先级。

操作系统的事件处理方式如下:

void main()
{
    OSTaskCreate(事件1);//创建事件1任务
    OSTaskCreate(事件2);//创建事件2任务
}

void 事件1()
{
    while(1)
    {
        事件1;
    }
}

void 事件2()
{
    while(1)
    {
        事件2;
    }
}

此处事件1和事件2为相同优先级,且都设置为一个时间片(时间片也就是滴答定时器的中断频率)。那么此时当事件1执行了1个时间片之后,将会执行事件2。同样事件2执行了1个时间片之后,将会执行事件1。

总结:

裸机和RTOS的不同之处在于,裸机只能是一个事件一个事件的进行。也就是在完成事件1之后,才能进行事件2、3、4……而RTOS是做一会儿事件1之后,又去做事件2,做一会儿事件2之后又去做事件3,以此类推,但由于一个事件的持续时间过短,就会给人造成同时在做事件1、2、3的错觉。

而当出现更高优先级的事件时,裸机也需要先完成该事件的之前事件,才能进行更高优先级的事件。而在RTOS中,当前事件会被更高优先级的事件打断,转而执行更高优先级的事件,只有在更高优先级的事件处于空闲状态时,才会执行低优先级的事件。

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值