【RTX51 Tiny入门】05_API函数


01 - API分类

  RTX51 Tiny的OS API只有13个,官网或者Keil的【Help】中可以查看到:
在这里插入图片描述

在这里插入图片描述
  按照用途,可以把这些API分为若干类:

  • 创建删除:os_create_task、os_delete_task
  • 通讯:isr/os_send_signal、os_clear_signal、os_wait/wait1/wait2、os_reset_interval
  • 调度:isr/os_set_ready、os_switch_task
  • 其它:os_running_task_id

  API的前缀ISROS两种,ISR表明此API只能在中断种使用,OS表明此API只能在任务中使用,RTX51 Tiny的API是十分精炼的,资源的限制让其只能提供单一的功能,比如通讯方式只提供了信号,所以如果需要稍微复杂的通讯方式就需要自己去基于内核开发。

02 - API 列表

  以下是API详细列表

功能返回值注意
os_create_task创建一个任务,进入ready态,准备运行0:创建成功-1:任务无法启动、任务已经运行、没有定义任务task ID必须是唯一没有重复的,否则会报error
os_delete_task暂停指定ID的任务,并在任务列表中删除此任务0:指定任务成功暂停并且删除-1:任务不存在、任务没有启动如果删除的任务是自身,则删除后马上切换下一个任务
isr_send_signal中断中发送一个信号给指定的任务,如果该任务之前已经等待信号,则该任务被置为ready态,但不是马上运行,如果该任务没有等待信号,则该任务依然存在信号标志0:发送成功-1:任务不存在——————
isr_set_ready把指定的任务设置为ready态,等待调度器调度运行None——————
os_send_signal与isr_send_signal一样,只是此API只能在任务中使用0:发送成功-1:任务不存在——————
os_set_ready把指定的任务设置为ready态,等待调度器调度运行None——————
os_clear_signal清除指定任务的信号标志位0:清除成功-1:任务不存在——————
os_wait停止当前任务,指定等待一个或多个事件,事件会是间隔K_IVL、超时K_TMO、中断或信号K_SIG中的一个返回值会是以下的其中一个RDY_EVENT:被 os_set_ready or isr_set_ready设置TMO_EVENT:时间间隔K_IVL或超时K_TMO到达SIG_EVENT:信号K_SIG到达NOT_OK:参数错误共3个参数,第3个参数是Full使用的,Tiny用不到,填0即可
os_wait1os_wait的子集,用于等待中断或信号K_SIG返回值会是以下的其中一个RDY_EVENT:被 os_set_ready or isr_set_ready设置SIG_EVENT:信号K_SIG到达NOT_OK:参数错误——————
os_wait2os_wait的子集,功能和os_wait一样和os_wait一样只有2个参数,消除了os_wait中第3个没有用到的参数
os_reset_interval重新设置等待的间隔K_IVLNone当同时用到K_IVL和K_SIG的时候,需要在K_SIG的到达后调用此函数,重新设置间隔
os_switch_task停止当前任务的执行,让出CPU资源让其他任务执行,如果调用os_switch_task的任务 是唯一准备执行的任务,它将立即恢复运行None主动切换后,将在不可预知的时刻重新得到执行(时间片调度),或者根据程序逻辑重新得到执行(协助调度)

03 - 总结

  • API按照前缀分为2类:OS和ISR
  • API按照用途分为4类:创建删除、通讯、调度和其他

  • 01-【RTX51 Tiny入门】-RTX51 Full & Tiny简介
  • 02-【RTX51 Tiny入门】-资源占用情况
  • 03-【RTX51 Tiny入门】-内核组成
  • 04-【RTX51 Tiny入门】-任务和调度器
  • 05-【RTX51 Tiny入门】-OS API函数
  • 06-【RTX51 Tiny入门】-查看RTX51 Tiny官方例程
  • 07-【RTX51 Tiny入门】-使用RTX51 Tiny
  • 08-【RTX51 Tiny入门】-Conf_tny.A51配置文件
  • 09-【RTX51 Tiny初级】-K_TMO与K_IVL的区别和使用场合
  • 10-【RTX51 Tiny初级】-os_send_signal()和os_set_ready()的区别和使用场合
  • 11-【RTX51 Tiny初级】-os_wait和os_switch_task区别和使用场合
  • 12-【RTX51 Tiny初级】-解决多重调用问题(MULTPLE CALL TOSEGMENT)
  • 13-【RTX51 Tiny高级】-进行Task的划分与拆分
  • 14-【RTX51 Tiny高级】-修改默认产生时间片的定时器T0为其它定时器
  • 15-【RTX51 Tiny高级】-考虑Round-Robin的开启与关闭
  • 16-【RTX51 Tiny高级】-解决Task之间的通讯和耦合问题
  • 17-【RTX51 Tiny高级】-Task ID隐藏的优先级问题
  • 18-【RTX51 Tiny高级】-系统架构的设计
  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值