《第20章_多任务操作系统.ppt》由会员分享,可在线阅读,更多相关《第20章_多任务操作系统.ppt(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、联系方式:http:/北京源智天下科技有限公司21天学天学51单片机开发单片机开发第二十讲:第二十讲:51系列系列单片机的多任片机的多任务操作系操作系统 1-2北京源智天下科技有限公司联系方式:http:/课程安排课程安排RTX-51实时多任多任务操作系操作系统简介介 RTX-51 Tiny的任的任务管理管理 RTX-51 Tiny的系的系统函数函数 RTX-51与与单任任务程序的比程序的比较 RTX-51循循环任任务调度程序度程序设计 RTX-51事件任事件任务调度程序度程序设计 RTX-51信号任信号任务调度程序度程序设计 RTX-51优先先级及及抢先任先任务切切换程序程序设计 1-3北京
2、源智天下科技有限公司联系方式:http:/RTX-51实时多任多任务操作系操作系统简介介多任务操作系统也就是可以运行多个程序的平台。多任务操作系统也就是可以运行多个程序的平台。RTX-51是一种适用于是一种适用于51系列系列单片机的片机的实时多任多任务操操作系作系统(RTOS)。)。RTX-51实时多任多任务系系统 RTX-51 FULL RTX-51 Tiny 1-4北京源智天下科技有限公司联系方式:http:/RTX-51实时多任多任务系系统特点特点 任务调度任务调度 信息传递信息传递 中断中断 CAN通信通信 BITBUS通信通信 1-5北京源智天下科技有限公司联系方式:http:/RT
3、X-51 Tiny的任的任务管理管理 在在RTX-51 Tiny中支持中支持5种任务状态,任何一个任种任务状态,任何一个任务必须处于其中一个确定的状态。务必须处于其中一个确定的状态。READY RUNING WAITING DELETED TIMEOUT 1-6北京源智天下科技有限公司联系方式:http:/RTX-51 Tiny支持的事件支持的事件 信号(信号(SIGNAL)超时(超时(TIMEOUT)时间间隔事件(时间间隔事件(INTERVAL)1-7北京源智天下科技有限公司联系方式:http:/RTX-51 Tiny的系的系统函数函数 信号发送函数信号发送函数isr_send_signal
4、 信号标志清除函数信号标志清除函数os_clear_signal 任务启动函数任务启动函数os_create_task 任务删除函数任务删除函数os_delete_task 当前任务号函数当前任务号函数os_running_task_id 信号发送函数信号发送函数os_send_signal 等待函数等待函数os_wait 等待函数等待函数os_wait1等待函数等待函数os_wait21-8北京源智天下科技有限公司联系方式:http:/RTX-51与与单任任务程序的比程序的比较 简单的单任务简单的单任务C51程序程序 01#include 02#include 03 int count=0;
5、04 void main()/主函数05 06while(1)/主循环0708count+;/计数器加109printf(Single Task:count=%d,count);/输出10if(count=500)1112count=0;/归零131415 1-9北京源智天下科技有限公司联系方式:http:/RTX-51与与单任任务程序的比程序的比较 多任务循环多任务循环C51程序程序 01#include 02#include 03 int count0=0;04 int count1=0;05 void main()/主函数06 07while(1)/主循环0809count0+;/计数器
6、count0加110printf(Single Process Task0:count0=%dn,count0);11count1+;/计数器count1加112printf(Single Process Task1:count1=%dn,count1);13if(count0=500)1415count0=0;1617if(count1=500)1819count1=0;202122 1-10北京源智天下科技有限公司联系方式:http:/RTX-51与与单任任务程序的比程序的比较 多任务多任务RTX-51程序程序 01#include 02#include 03#include 04int
7、count0=0;05int count1=0;06Thread0()_task_ 0 /任务00708os_create_task(1);/创建任务109while(1)1011printf(Task0:count0=%dn,count0+);/打印输出count012if(count0=500)1314count0=0;15161718Thread1()_task_ 1 /任务11920while(1)2122printf(Task1:count1=%dn,count1+);/打印输出count123if(count1=500)2425count1=0;2627281-11北京源智天下科技
8、有限公司联系方式:http:/RTX-51循循环任任务调度程序度程序设计 RTX-51循循环任任务调度是按照度是按照预先划分的先划分的时间片来循片来循环轮流流执行行多个任多个任务的。的。01#include 02#include 03#include 04 Thread0()_task_ 0 /任务005 06P1=0 x00;/初始化07P2=0 x00;08os_create_task(1);/创建任务109while(1)1011P1=P1+1;/P1端口递增1213 14 Thread1()_task_ 1 /任务115 16while(1)1718P2=P2+1;/P2端口递增192
9、0 1-12北京源智天下科技有限公司联系方式:http:/RTX-51事件任事件任务调度程序度程序设计 RTX-51事件任事件任务调度是使用事件来度是使用事件来实现多任多任务之之间切切换的的调度方式。度方式。01#include 02#include 03#include 04int count0=0;05int count1=0;06Thread0()_task_ 0 /任务00708os_create_task(1);/创建任务109while(1)1011printf(Task0:count0=%dn,count0+);/打印输出count012os_wait(K_TMO,2);/暂停两
10、个信号13if(count0=500)1415count0=0;16171819Thread1()_task_ 1 /任务12021while(1)2223printf(Task1:count1=%dn,count1+);/打印输出count124os_wait(K_TMO,3);/暂停三个信号25if(count1=500)2627count1=0;2829301-13北京源智天下科技有限公司联系方式:http:/RTX-51信号任信号任务调度程序度程序设计 RTX-51信号任信号任务调度是使用信号来完成多任度是使用信号来完成多任务之之间切切换的的调度方式。度方式。01#include 02
11、#include 03#include 04 int count0=0;05 int count1=0;06 Thread0()_task_ 0 /任务007 08os_create_task(1);/创建任务109while(1)1011printf(Task0:count0=%dn,count0+);/打印输出count012if(count0=10)1314os_send_signal(1);/向任务1发送信号15count0=0;161718 19 Thread1()_task_ 1 /任务120 21while(1)2223os_wait(K_SIG,0,0);/等待信号24prin
12、tf(Task1:count1=%dn,count1+);/打印输出count12526 1-14北京源智天下科技有限公司联系方式:http:/RTX-51优先先级及及抢先任先任务切切换程序程序设计 抢先任先任务切切换是根据不同任是根据不同任务的的优先先级来来执行不同任行不同任务的的调度方式。度方式。01#include 02#include 03#include 04 int count0=0;05 int count1=0;06 Thread0()_task_ 0 /任务007 08os_create_task(1);/创建任务109while(1)1011printf(Task0:count0=%dn,count0+);/打印输出count012if(count0=10)1314os_send_signal(1);/向任务1发送信号15count0=0;161718 19 Thread1()_task_ 1 _priority_ 1/任务120 21while(1)2223os_wait(K_SIG,0,0);/等待信号24printf(Task1:count1=%dn,count1+);/打印输出count12526 联系方式:http:/北京源智天下科技有限公司性格决定命运性格决定命运,专注成就人生专注成就人生源智天下源智天下