一个任务如何拥有自己的CPU的

473 篇文章 2 订阅
452 篇文章 9 订阅

嵌入式实时操作系统

1、典型的嵌入式实时操作系统(RTOS)

(1)近200种操作系统,VxWorks、QNX、WinCE、PalmOS

(2)面向SOC的操作系统:Symbian的Epoc、Express Logic的ThreadX、ATI的Nucleus

(3)开放源码的操作系统:Linux系列、uC/OS

2、典型性能指标

(1)内核大小:几K~几百K

(2)调度时间片:1ms

(3)实时任务响应时间:20~40微妙

(4)一般任务响应时间:20微妙~几百毫秒

8eeb91c7e6cccf821bafbdb8e63a75c6.png

3、嵌入式系统的设计要求

(1)功能实用、便于升级

(2)并发处理、及时响应

(3)造型自然、结构紧凑

(4)接口方便、操作容易

(5)稳定可靠、维护简便

(6)功耗管理、降低成本

ce5e43de1b3b0150918fad6e4df53f6a.png

文章相对比较长,字数比较多,大家可以先打开头像关注我,之后慢慢看,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像左下角黑色字体加我也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///

一个任务如何拥有自己的CPU

最后来看看任务是如何“拥有”自己的CPU 的。只有一个 CPU,各个任务共享,轮流使用。如何才能实现?我们先来看看中断的过程,当中断来临时,CPU 把当前程序的运行地址,寄存器等现场数据保存起来(一般保存在栈里),然后跳到中断服务程序执行。待执行完毕,再把先前保存的数据装回CPU 又回到原来的程序执行。这样就实现了两个不同程序的交叉运行。

借鉴这种思想不就能实现多任务了吗!模仿中断的过程就可以实现任务切换运行。任务切换时,把当前任务的现场数据保存在自己的任务栈里面,再把待运行的任务的数据从自己的任务栈装载到CPU中,改变 CPU 的 PC,SP,寄存器等。可以说,任务的切换是任务运行环境的切换。而任务的运行环境保存在任务栈中,也就是说,任务切换的关键是把任务的私有堆栈指针赋予处理器的堆栈指针SP。

1e41a24035728d254927392ac9dbe878.png

创建一个任务。它接收三个参数,分别是任务的入口地址,任务堆栈的首地址和任务的优先级。调用本函数后,系统会根据用户给出的参数初始化任务栈,并把栈顶指针保存到任务控制块中,在任务就绪表标记该任务为就绪状态。最后返回,这样一个任务就创建成功了。

当一个任务将要运行时,便通过取得它的堆栈指针(保存在任务控制块中)将这些寄存器出栈装入CPU 相应的位置即可。


如何实现抢占式调度?

基于任务优先级的抢占式调度,也就是最高优先级的任务一旦处于就绪状态,则立即抢占正在运行的低优先级任务的处理器资源。为了保证CPU 总是执行处于就绪条件下优先级最高的任务,每当任务状态改变后,即判断当前运行的任务是否是就绪任务中优先级最高的,否则进行任务切换。

51bfda43fd175d8fb9d1e0588aa1ae44.png

任务状态会在什么时候发生改变呢?有下面两种情况:

1、高优先级的任务因为需要某种资源或延时,主动请求挂起,让出处理器,此时将调度就绪状态的低优先级任务获得执行,这种调度称为任务级的切换。如任务执行OSTImeDly或OSTaskSuspend把自身挂起就属于这种。

2、高优先级的任务因为时钟节拍到来,或在中断处理结束后,内核发现更高优先级任务获得了执行条件(如延时的时钟到时)则在中断后直接切换到更高优先级任务执行。这种调度也称为中断级的切换。

挂起/恢复任务

1挂起任务

通过 OSTaskSuspend可以主动挂起一个任务。OSTaskSuspend会把任务从任务就绪表中移出,最后重新启动系统调度。这个函数可以挂起任务本身也可以挂起其他任务。

2恢复任务(OSTaskResume)

可以让被 OSTaskSuspend 或 OSTimeDly 挂起的任务恢复就绪态,然后进行任务调度。

嵌入式系统产品有哪些特点

有人说嵌入式系统就是微电脑,小的计算机。也有人称嵌入式系统为后PC时代和后网络时代的新秀。那么嵌入式系统与传统的通用计算机,数字产品相比,利用嵌入式技术的产品有其自己的特点,下面小编详细为大家介绍嵌入式系统开发技术以及其应用产品的特点。

8f08149e7dbec97dda4ca1c5c567b9fd.png

1.由于嵌入式系统采用的是微处理器,实现相对单一的功能,采用独立的操作系统,所以往往不需要大量的外围器件。因而在体积上,功耗上有其自身的优势。相比之下,一个使用WindowsCE的PDA,仅靠机内电源就可以使用几天,而任何一台笔记本仅仅能够支持3小时左右。

2.嵌入式系统开发技术是将计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物,是一门综合技术学科。由于空间和各种资源相对不足,嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。

3.嵌入式系统是一个软硬件高度结合的产物。为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。片上系统,板上系统的实现,使得以pda等为代表的这类产品拥有更加熟悉的操作界面和操作方式,比着传统的商务通等功能更加完善,实用。

4.为适应嵌入式分布处理结构和应用上网需求,面向21世纪的嵌入式系统开发要求配备标准的一种或多种网络通信接口。针对外部联网要求,嵌入设备必需配有通信接口,相应需要TCP/IP协议簇软件支持;由于家用电器相互关联(如防盗报警、灯光能源控制、影视设备和信息终端交换信息)及实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持应用软件的特定编程模式,如Web或无线Web编程模式,还需要相应的浏览器,如HTML、WML等。

5.因为嵌入式系统往往和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。

嵌入式系统开发以其集成化,功能化广泛应用于电子产品中。小编认为其主要的特点是功能化明确,用途相对具有针对性。嵌入系统技术的开发也相对大众化,不像计算机系统需要庞大的团队共同开发。


对单片机感兴趣的朋友可以找我,我录制了一些关于单片机的入门教程,有需要的童鞋找我拿就行,免费的,私信我“林老师”就可以拿~点击打开我的头像就能领取

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值