0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机支持操作系统的特性概述

单片机匠人 来源:单片机匠人 作者:黄忠老师 2021-12-02 15:21 次阅读

1、支持操作系统的特性概述:

就拿M0核的单片机来说,就有一部分特性是针对嵌入式操作系统的(OS),包括:

l SysTick定时器,24位向下计数,且周期产生SysTick异常。

l 栈指针,即进程栈指针,两个栈指针的结构可以使得应用栈和OS内核栈相互独立。

l SVC异常和SVC指令,通过异常机制,应用程序可以使用SVC访问OS服务。

l PendSV异常,其可以被OS、设备驱动或者应用程序使用来产生可延迟的服务请求。

2、为什么要使用嵌入式操作系统?

当提到操作系统的时候,大多数人首先会想到Windows和Linux之类的桌面操作系统。这些操作系统要想运行起来,需要强大的处理器、大量的存储器以及其他硬件,而对于嵌入式设备,各种OS的差别很大。嵌入式操作系统可以运行在低功耗的微控制器上,它们需要很少的存储器(相对于桌面系统),并且运行的时钟频率要低很多,比如Keil RTX只需要4KB的程序空间以及大约0.5KB的SRAM,一般情况下,这些操作系统设置不需要显示或者键盘。当然也可以增加一些显示接口和输入设备,并且通过运行在OS上的应用任务来访问这些输入和输出接口。

在嵌入式应用程序中,OS一般用来管理多任务。在这种情况下,OS将处理器时间划分多个时间片,并且在每个时间片上执行不同的任务。当一个时间片结束时,OS任务调度器开始执行,这样在下一个时间片开始的时候,处理器已经切换到其他任务执行了。这种任务切换一般被称作上下文切换。

每个时间片的长度依赖于硬件以及操作系统的设计,有些嵌入式操作系统每秒会进行几百次的任务切换。

有些嵌入式OS也为每个任务定义了优先级,这样高优先级的任务就能在低优先级任务之前执行。如果一个任务的优先级比其他的都要高,在其到达空闲状态前,OS可能会连续多个时间片都在执行这个任务。应该注意的是,OS的优先级的定义与异常优先级是完全独立的(例如中断的优先级)。任务的优先级基于特定的OS,并且随着OS的不同而有所区别。

除了支持多任务以外,嵌入式OS也提供了其他各种功能,包括资源管理、内存管理、电源管理,以及应用程序编程接口(API)用以访问外设、硬件和信道。

3f5b3a3c-528b-11ec-b2e9-dac502259ad0.png

使用嵌入式OS并不总是有好处的,因为它需要额外的程序空间来存放OS内核,而且会增加执行周期的开销。多数简单应用并不需要嵌入式OS,不过,有些复杂的嵌入式应用需要并行执行任务,这时使用OS会使软件开发更加容易,并且降低出现错误的概率。

目前,可以应用在M0上的嵌入式OS有很多,例如,Keil 微控制器开发套件提供的免费且易于使用的RTX kernel,另外还有Micrium的uc/OS-II和uc/OS-III等都支持M0处理器。并且这个支持的操作系统在不断的增加中。

由于很多微控制器是不具备存储器管理单元(MMU),比如我们上面时候的M0核的处理器,所以它不能运行需要虚拟地址的嵌入式OS,比如Windows CE或Symbian OS。平常使用的Linux OS也需要MMU,它也不能再M0上工作。而uCLinux是Linux的特殊版,并且面向的是没有MMU的嵌入式设备,所以要在微控制器上加入OS也要先看能不能支持,并且支持哪些,再结合自己的项目实际选取。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6813

    浏览量

    147670
  • 单片机
    +关注

    关注

    6002

    文章

    43990

    浏览量

    620948
  • MMU
    MMU
    +关注

    关注

    0

    文章

    91

    浏览量

    17947
  • 嵌入式OS
    +关注

    关注

    4

    文章

    5

    浏览量

    7090

原文标题:单片机支持操作系统的特性

文章出处:【微信号:gh_e7f294a514ca,微信公众号:单片机匠人】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用STM32F401的单片机移植了ucosii操作系统后,在循环中调用sprintf函数时莫名卡死的原因?

    使用STM32F401的单片机移植了ucosii操作系统后。在编写任务函数时,在循环中调用sprintf函数时莫名卡死的原因?
    发表于 04-02 06:12

    单片机操作系统有哪些

    单片机操作系统(RTOS)是一种专门设计用于单片机操作系统,它可以提供任务调度、内存管理、设备驱动等功能,帮助程序员更高效地开发嵌入式系统
    的头像 发表于 12-08 16:18 1837次阅读

    51单片机多任务操作系统的原理是什么?

    51单片机多任务操作系统的原理
    发表于 11-06 08:10

    51单片机可以跑操作系统吗?

    据说单片机可以上操作系统,那51单片机可以上操作系统吗,感觉51单片机性能那么差,还能跑操作系统
    发表于 11-06 06:59

    51单片机能否移植free RTOS操作系统?

    用的是stc8a8k64s单片机,能否在里面移植RTOS操作系统
    发表于 11-03 06:39

    开源操作系统大全

    ,重启后不会影响用户数据;KnightOS 内核具有独立特性,它采用类 Unix 的环 境,使用 Z80 的汇编语言编写,开发者可以用它来编写自己的操作系统;需要较少的内存,使用 31K 的内存即可
    发表于 10-27 15:13

    32单片机上的uCOSII和FreeRTOS两个实时操作系统有什么区别?

    32单片机上的uCOSII和FreeRTOS两个实时操作系统有什么区别啊,在上班之后一般是用的哪一类实时操作系统比较多啊
    发表于 10-27 08:07

    嵌入式操作系统IJLC/OS一Ⅱ在通信电源监控中应用

    单片机开发相比.使用实时嵌入式操作系统。利用其多任务管理,任务间同步与通信等特点,可以在一定程度上提高系统的可靠性和实时性。嵌入式实时操作系统有几十种,如:VxWorks,pSOS,
    发表于 09-20 06:46

    Brocade Fabric操作系统功能和标准支持列表8.2.x

    电子发烧友网站提供《Brocade Fabric操作系统功能和标准支持列表8.2.x.pdf》资料免费下载
    发表于 08-30 10:00 0次下载
    Brocade Fabric<b class='flag-5'>操作系统</b>功能和标准<b class='flag-5'>支持</b>列表8.2.x

    linux是实时系统还是分时操作系统

    大家平时玩单片机基本上对于µC/OS、FreeRTOS、ThreadX这些操作系统非常熟悉了,他们都属于实时操作系统(RTOS),在工业领域比较广泛;
    的头像 发表于 08-18 09:48 1328次阅读

    MegaRAID SAS 3Gb/s操作系统支持列表

    电子发烧友网站提供《MegaRAID SAS 3Gb/s操作系统支持列表.pdf》资料免费下载
    发表于 08-15 10:54 0次下载
    MegaRAID SAS 3Gb/s<b class='flag-5'>操作系统支持</b>列表

    FreeRTOS:一个迷你的实时操作系统内核

    、协程等,可基本满足较小系统的需要。由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机
    的头像 发表于 06-29 17:15 524次阅读
    FreeRTOS:一个迷你的实时<b class='flag-5'>操作系统</b>内核

    硬件架构支持(2)#操作系统

    操作系统
    学习硬声知识
    发布于 :2023年06月01日 14:58:11

    硬件架构支持(1)#操作系统

    操作系统
    学习硬声知识
    发布于 :2023年06月01日 14:57:19

    聊聊操作系统

    说到操作系统,大家都不会陌生。我们天天都在接触操作系统——用台式机或笔记本电脑,使用的是windows和macOS系统;用手机、平板电脑,则是android(安卓)和iOS系统
    的头像 发表于 05-12 11:13 1035次阅读
    聊聊<b class='flag-5'>操作系统</b>