既实时又可分时调度small RTOS51操作系统
这个程序是在陈明计先生编写的small RTOS51的基础上编写的,本程序包含了完
整的small RTOS51 1.12.1版。有关small RTOS51更多的内容请访问www.zlgmcu.com
在实际使用实时操作系统时,有些处理过程确实需要实时处理,例如一些控制操作等,都需要在确定的时间内完成操作。而有些操作,并不需要实时,而这些操作又难以分配出合理的优先级,即使强行分出优先级也会影响性能。
为small RTOS51增加时间片轮转调度算法,用户可以根据需要定义那些为实时任务,那些为分时任务,这样做不仅不会影响实时任务的实时性,还会提高不要求实时响应任务的执行效率和编写非实时任务的难度。即使有一个非实时任务永远不打算释放CPU的控制权,当任务的时间片用完时,CPU被时间片轮转调度任务抢占,其他的等优先级分时任务就会得到CPU.
实现方法:建立一个优先级比实时任务低的任务做为时间片轮转调度任务,所有要分时调度的任务依次建立使用的优先级比这个任务要低且中间不可有闲置的优先级。这样就在small RTOS51上实现了时间片轮转调度,且所有的时间片轮转调度任务的优先级就是时间片轮转调度任务的优先级,建立这样的任务需定义两个常量,一个是时间片轮转调度任务的优先级,另一个是这个优先级的分时任务的数量。
优 先 级 高 ――――――――――> 低
任务类型 实时任务 ――― 时间片轮转调度任务 ――― 分时任务
例子中,先按照优先级建立5个任务,一个实时任务realtime,一个分时任务
调度任务TimerSchedule,三个分时任务task1,task2,task3.再在TimerSharing.h
中设置OS_Time_Slice_Prio,OS_Time_Slice_Sum两个宏。
试着将os_cfg.h中EN_TIME_SLICE_SCHED选项改为0,然后离线仿真这个程序,
点击KEIL uVersion2--->View--->Serial Window #1,看看串口会输出有什么变化。
编译器出现3个Warning,那是3个任务调用了同一个不可重入函数printf导致,
已使用关中断的方法禁止某个任务调用printf过程中被中断。
另外,使用连接定位控制OVERLAY(*!sfname) 为sfname增加新的根,使
实时操作系统为每个任务函数设置自己的程序路径或根,也就是让任务的调
用树可以独立分析。这样就可以对每个任务隔离开来进行覆盖分析。
在Option for Target中的BL51 Misc的选项卡中可以设置此项。
徐宝田 2005年2月1日
点击下载
相关推荐
用单片机实现可编程逻辑器件的配置
使用泰克方案解析常见测试案例--提升测试精度、缩短测试时间
英特尔18A来了!第三代酷睿Ultra发布:性能暴涨,笔电续航以天计算
基于Vxwoks OS的嵌入式系统开发 下
全球电动汽车市场格局已向中国制造商倾斜
选择广州的合作伙伴[ARM-44BOX]
从国民党军队失败说人生
速看!黄仁勋CES 2026演讲万字实录:甩出“物理AI”王牌
波士顿动力人形机器人CES首秀,计划2028年进厂造车
用单片机设计现场总线转换网桥
问一个ADI的JTAG仿真器的问题
最近开始学习Telelogic Tau!有人有相关的培训文档吗?
会识别按动时间、低功耗的电源轻触开关电路
Active Object技术讲解 下
安世半导体芯片出货延迟,本田宣布延长停产时间
用单片机实现电梯控制系统
电子标靶电路(出口欧美等地)
高通发布入门级PC芯片死磕英特尔!还剑指万亿机器人赛道
门铃电路
用单片机控制CD-ROM播放歌曲的制作资料
用单片机超声波测距电路的设计
通过端到端1.6T互连测试提升AI网络可靠性
今年智能手机售价预计将上涨约20%
*** 请教大侠:cache不能用的情况 ***
单键开关电路
MSP430概述
联发科发布Filogic 8000系列芯片,打响进军Wi-Fi 8生态第一枪
台积电美国厂每片晶圆毛利率仅有台湾厂的1/8
基于Vxwoks OS的嵌入式系统开发 上
简单实用的3键互锁电子开关电路