内核实验六时 钟 中 断_第1页
内核实验六时 钟 中 断_第2页
内核实验六时 钟 中 断_第3页
内核实验六时 钟 中 断_第4页
内核实验六时 钟 中 断_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内核实验六时钟中断第1页,共16页,2023年,2月20日,星期日实验目的

掌握嵌入式实时操作系统µC/OS中中断的使用情况。第2页,共16页,2023年,2月20日,星期日

时钟节拍是特定的周期性中断。这个中断可以看作是系统心脏的脉动。时钟的节拍式中断使得内核可以将任务延时若干个整数时钟节拍,以及当任务等待事件发生时,提供等待超时的依据。时钟节拍原理第3页,共16页,2023年,2月20日,星期日Task1和Task2获得信号量InterruptSem后延时,Task1延时200Tick,Task2延时500Tick,利用Task3输出的次数来对Task1和Task2的延时计数,Task3每100Tick产生一次输出。实验设计第4页,共16页,2023年,2月20日,星期日#defineOS_LOWEST_PRIO

16/*任务优先级不可以大于16*/#defineOS_MAX_TASKS

4/*最多可以创建4个任务*/#defineOS_TASK_STAT_EN0/*禁止统计任务*/#defineOS_TASK_SUSPEND_EN1/*是否允许使用OSTaskSuspend()andOSTaskResume()*/操作系统配置第5页,共16页,2023年,2月20日,星期日#defineOS_SEM_EN1

/*是否允许使用信号量功能

*/#defineOS_TICKS_PER_SEC200/*设置每秒之内的时钟节拍数目*/#defineOS_MAX_EVENTS1/*最多可以有1个事件*/操作系统配置第6页,共16页,2023年,2月20日,星期日OSTaskCreate():建立一个新任务本实验中所用到的µC/OS-II相关函数OSTimeDly():将一个任务延时若干个时钟节拍

OSSemCreate():建立并初始化一个信号量

OSSemPend():申请信号量

OSemPost():设置信号量第7页,共16页,2023年,2月20日,星期日1、创建起始任务TaskStartOSTaskCreate(TaskStart,(void*)0,&TaskStartStk[TASK_STK_SIZE-1],4);源程序说明第8页,共16页,2023年,2月20日,星期日TaskStart负责:安装时钟中断服务例程ucos_x86_idt_set_handler(0x20,(void*)OSTickISR,0x8e00);初始化操作系统时钟ucos_timer_init();创建信号量InterruptSem=OSSemCreate(1);创建应用任务TaskStartCreateTasks();源程序说明第9页,共16页,2023年,2月20日,星期日2、创建应用任务Task3、应用任务 OSTaskCreate(Task1,(void*)0,&Task1Stk[TASK_STK_SIZE-1],TASK_1_PRIO); OSTaskCreate(Task2,(void*)0,&Task2Stk[TASK_STK_SIZE-1],TASK_2_PRIO); OSTaskCreate(Task3,(void*)0,&Task3Stk[TASK_STK_SIZE-1],TASK_3_PRIO);源程序说明第10页,共16页,2023年,2月20日,星期日voidTask1(void*pdata){for(;;){/*无限循环*/……OSSemPend(InterruptSem,0,&err);……

OSTimeDly(200);

……OSSemPost(InterruptSem);

……}}源程序说明第11页,共16页,2023年,2月20日,星期日voidTask2(void*pdata){for(;;){/*无限循环*/……OSSemPend(InterruptSem,0,&err);……

OSTimeDly(500);

……OSSemPost(InterruptSem);

……}}源程序说明第12页,共16页,2023年,2月20日,星期日voidTask3(void*pdata){for(;;){/*无限循环*/printk("Task3hasgottotheCPU:\n");

OSTimeDly(100);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论