RL_RTX函数

Posted jieruishu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RL_RTX函数相关的知识,希望对你有一定的参考价值。

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函数的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin函数 ⑧ ( 函数引用 作为函数参数 | ::函数名 | 函数类型 作为函数返回值类型 )

测开之函数进阶篇・第五篇《递归函数纯函数匿名函数偏函数》

8InfluxDB常用函数聚合函数,count()函数,DISTINCT()函数,MEAN()函数,MEDIAN()函数,SPREAD()函数,SUM()函数

Kotlin函数式编程 ② ( 过滤函数 | predicate 谓词函数 | filter 过滤函数 | 合并函数 | zip 函数 | folder 函数 | 函数式编程意义 )

Kotlin函数式编程 ② ( 过滤函数 | predicate 谓词函数 | filter 过滤函数 | 合并函数 | zip 函数 | folder 函数 | 函数式编程意义 )

1.19.9.函数概览函数引用精确函数引用模糊函数引用函数解析顺序精确函数引用模糊函数引用自定义函数准备工作概述开发指南函数类求值方法标量函数表值函数聚合函数