码迷,mamicode.com
首页 > 其他好文 > 详细

RL_RTX函数

时间:2018-07-27 19:24:48      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:printf   print   超时   fonts   api   硬件   font   设置   创建   

1 延时:os_itv_set(usFrequency) //设置延时周期,配合os_itv_wait使用;os_itv_wait() 是绝对延迟是包含调用前的时间, os_dly_wait() 是相对延迟 ,不包含调用前的时间
二 调度方式:时间片调度,合作式调度;抢占式调度。
2.1 时间片式调度:使能后对相同优先级(需指定时间片)的几个任务在时间片用完切换,或者遇到阻塞式API调用时间片没有用完也切换。

2.2合作式调度:对相同优先级任务,若时间片调度被禁止则运行在合作式调度下,此时在遇到阻塞式API调用或者调用主动切换函数os_tsk_pass (),实际中不常用

2.3抢占式调度:基于不同的任务优先级(被抢占)或者阻塞式API调用,对于重要的模块应用,响应时间快和任务何时被执行是确定的。

三临界段 中断锁任务锁:为保证实时性,RTX不提供临界段操作和中断锁开关函数(与freertos/USOS不同),但用户可以通过给调度器上锁(任何中断都没有关闭)和关闭RTOS的内核定时器来禁止OS进行抢占式调度(也即任务锁),tsk_lock /unlock():不能再ISR中使用不支持嵌套、时间越短越好(和时间有关相关的时间片、延时都不再工作);
使用场合:防止多任务同时调用一个函数(如printf)/共享的外设硬件如串口(多任务调用进行发送)

四任务间同步和通讯:

4.1事件标志组:可解决裸机程序下中断与任务间同步(flag)、多任务访问全局变量冲突(volitle)、任务超时(这个裸机程序下很复杂)问题。每个任务创建时有16个标志组。

    中断中要使用isr_evt_set ,不要在ISR中进行复杂的处理(消息解析处理)可将处理设置成优先级较高的任务(isr_evt_set 后可得到立即执行),M3/M4建议NVIC分组为4.? os_evt_clr

  • os_evt_get、os_evt_set、os_evt_clr
  • os_evt_wait_and(flags,timeout),flags中16个位响应的bit同时置位。flags||timeout其一满足就返回,返回前已经设置的flags已经清零、os_evt_wait_or
  • isr_evt_set
     
     

 

RL_RTX函数

标签:printf   print   超时   fonts   api   硬件   font   设置   创建   

原文地址:https://www.cnblogs.com/jieruishu/p/9378990.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!