admin 管理员组文章数量: 1184232
RTX51 Tiny的函数说明
os开头的只能在主函数里使用,中断只能用isr开头的
os_create_task(task_id);
1,创建task_id号任务,未被创建的任务无法执行
2,被os_delete_task(task_id);删除的任务如果要再次运行,需要被os_create_task(task_id);重新创建
3,被创建的任务会从头运行,重复创建同一个任务无影响
os_delete_task(task_id);
1,删除task_id号任务,被删除的任务无法执行
2,对静态变量无影响,静态变量的数据仍在。不是静态局部变量会消失
os_wait(typ,ticks,dummy)
1,dummy无用,填0即可。os_wait1(typ)只能填K_SIG,os_wait2(typ,ticks)没有dummy
2,typ可以写成 K_SIG|K_TMO ,K_SIG|K_IVL,如果延时未到,被K_SIG提前结束需使用os_reset_interval(task_id);置位延时寄存器,否则下次延时将加上剩余部分
3,ticks是延时的滴答次数
4,单个任务里,多个os_wait(K_SIG,0,0);连用,需要被多次触发
4,K_TMO和K_IVL的区别在于:K_TMO等待指定滴答数后,下次执行到这个地方就可以运行,延时时间是滴答数完成+滴答数完成后执行其他语句到这个K_TMO处。
而K_IVL是每间隔一定的滴答数后,次数+1,这个次数可以被累加,如果其他语句太长或延时滴答数太少导致次数累加过多,比如加到了3,那么当再次轮询到这个地方时不是像K_TMO执行一遍就跳出任务,而是每判断过一次该语句,次数-1,接着执行下面的语句,直至判断次数为0,跳过任务
os_send_signal(task_id);isr_send_signal(task_id);
1,向task_id号任务发送信号。只能作用于K_SIG
os_clear_signal(task_id);
1,清除task_id号任务的信号。只能作用于K_SIG
2,如果os_send_signal(task_id);向task_id号任务发送信号后,又被os_clear_signal(task_id);把task_id号任务得到的信号清除了,那么相当于task_id号任务没有收到信号
os_set_ready(task_id);isr_set_ready(task_id);
1,使task_id号任务里的os_wait(),os_wait1(),os_wait2()认为延时完成或者信号到达
os_running_task_id();
1,返回当前正在执行的x号任务
os_switch_task();
1,跳出当前任务
本文标签: RTX51 Tiny的函数说明
版权声明:本文标题:RTX51 Tiny的函数说明 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.roclinux.cn/p/1698025960a283295.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论