【RTX51 Tiny入门】05_API函数

文章目录

  • 01 - API分类
  • 02 - API 列表
  • 03 - 总结


01 - API分类

  RTX51 Tiny的OS API只有13个,官网或者Keil的【Help】中可以查看到:
【RTX51 Tiny入门】05_API函数_第1张图片

【RTX51 Tiny入门】05_API函数_第2张图片
  按照用途,可以把这些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_wait1 os_wait的子集,用于等待中断或信号K_SIG 返回值会是以下的其中一个RDY_EVENT:被 os_set_ready or isr_set_ready设置SIG_EVENT:信号K_SIG到达NOT_OK:参数错误 ——————
os_wait2 os_wait的子集,功能和os_wait一样 和os_wait一样 只有2个参数,消除了os_wait中第3个没有用到的参数
os_reset_interval 重新设置等待的间隔K_IVL None 当同时用到K_IVL和K_SIG的时候,需要在K_SIG的到达后调用此函数,重新设置间隔
os_switch_task 停止当前任务的执行,让出CPU资源让其他任务执行,如果调用os_switch_task的任务 是唯一准备执行的任务,它将立即恢复运行 None 主动切换后,将在不可预知的时刻重新得到执行(时间片调度),或者根据程序逻辑重新得到执行(协助调度)

03 - 总结

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

你可能感兴趣的:(#,RTX51,Tiny)