第六章 函数参考.docx
- 文档编号:4230418
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:11
- 大小:18.40KB
第六章 函数参考.docx
《第六章 函数参考.docx》由会员分享,可在线阅读,更多相关《第六章 函数参考.docx(11页珍藏版)》请在冰豆网上搜索。
第六章函数参考
第六章 函数参考
以下部分描述RTX51Tiny的系统函数。
函数依字母顺序排列,分为以下部分:
概要(Summary)简述程序作用,列出包含的文件,包括它的声明和原型,语法举例,和参数描述。
描述(Description)程序的详细描述,如何使用。
返回值 程序返回值说明。
参阅(seealso) 相关程序。
例子 如何正确使用该函数的程序例子中断。
附注:
● 以os_开头的函数可以由任务调用,但不能由中断服务程序调用。
● 以isr_开头的函数可以由中断服务程序调用,但不能由任务调用。
1、irs_send_signal
概要:
#include
charisr_send_signal(unsignedchartask_id);/*信号发往的任务*/
描述:
isr_send_signal函数给任务task_id发送一个信号。
如果指定的任务正在等待一个信号,则该函数使该任务就绪,但不启动它,信号存储在任务的信号标志中。
附注:
● 该函数是RTX51Tiny实时操作系统的一部分,仅包含于PK51中。
● 该函数仅被中断函数调用。
返回值 成功调用后返回0,如果指定任务不存在,则返回-1。
参阅 os_clear_signal,os_send_signal,os_wait
例子
#include
voidtst_isr_send_signal(void)interrupt2
{
isr_send_signal(8);/*给任务8发信号*/
}
2、irs_set_ready
概要 #include
charisr_set_ready{unsignedchartask_id};/*使就绪的任务*/
描述 将由task_id指定的任务置为就绪态。
附注
● 该函数是RTX51Tiny的一部分,包含在PK51中。
● 该函数仅用于中断函数。
返回值 无
例子 #include
voidtst_isr_set_ready(void)interrupt2
{isr_set_ready
(1);/*置位任务1的就绪标志*/
}
3、os_clear_signal
概要 #include
charos_clesr_signal(unsignedcahrtask_id);/*清除信号的任务*/
描述 清除由task_id指定的任务信号标志。
附注:
该函数是RTX51Tiny的一部分,包含在PK51中。
返回值 信号成功清除后返回0,指定的任务不存在时返回-1。
参阅 isr_send_signal,os_send_signal,os_wait
例子 #include
voidtst_os_clsar_siganl(void)_task_8
{
…
os_clear_signal(5); /*清除任务5的信号标志*/
…
}
4、os_create_task
概要 #include
charos_create_task(unsignedchartask_id);/*要启动的任务ID*/
描述 启动任务task_id,该任务被标记为就绪,并在下一个时间点开始执行。
附注:
该函数是包含在PK51中的RTX51Tiny的组成部分。
返回值 任务成功启动后返回0,如果任务不能启动或任务已在运行,或没有以task_id定义的任务,返回-1。
参阅 os_delete_task
例子 #include
#include
voidnew_task(void)_task_2
{…}
voidtst_os_create_task(void)_task_0
{
…
if(os_create_task
(2))
{
printf(“couldn’tstarttask2"n”);
}
…
}
5、os_delete_task
概要 #include
charos_delete_task(unsignedchartask_id);/*要删除的任务*/
描述 函数将以task_id指定的任务停止,并从任务列表中将其删除。
附注 该函数是包含在PK51中的RTX51Tiny的组成部分。
返回值 任务成功停止并删除后返回0。
指定任务不存在或未启动时返回-1。
附注 如果任务删除自己,将立即发生任务切换。
参阅 os_create_task
例子 #include
#include
voidtst_os_delete_task(void)_task_0
{
…
if(os_delete_task
(2))
{
printf(“couldn’tstoptask2"n”);
}
…
}
6、os_reset_interval
概要 #include
voidos_reset_interval(unsignedcharticks);/*滴答数*/
描述 用于纠正由于os_wait函数同时等待K_IVL和K_SIG事件而产生的时间问题,在这种情况下,如果一个信号事件(K_SIG)引起os_wait退出,时间间隔定时器并不调整,这样,会导致后续的os_wait调用(等待一个时间间隔)延迟的不是预期的时间周期。
允许你将时间间隔定时器复位,这样,后续对os_wait的调用就会按预期的操作进行。
附注:
该函数是包含在PK51中的RTX51Tiny的组成部分。
返回值 无
例子 #include
voidtask_func(void)_task_4
{
…
switch(os_wait2(KSIG|K_IVL,100))
{
case TMO_EVENT:
/*发生了超时,不需要Os_reset_interval*/
break;
case SIG_EVCENT:
/*收到信号,需要Os_reset_interval*/
os_reset_interval(100);
/*依信号执行的其它操作*/
break;
}
…
}
7、os_running_task_id
概要 #include
charos_running_task_id(void);
描述 函数确认当前正在执行的任务的任务ID。
附注:
该函数是包含在PK51中的RTX51Tiny的组成部分。
返回值返回当前正在执行的任务的任务号,该值为0~15之间的一个数。
例子 #include
voidtst_os_running_task(void)_task_3
{
unsignedchartid;
tid=os_running_task_id();/*tid=3*/
}
8、os_send_signal
概要 #include
charos_send_signal(chartask_id);/*信号发往的任务*/
描述 函数向任务task_id发送一个信号。
如果指定的任务已经在等待一个信号,则该函数使任务准备执行但不启动它。
信号存储在任务的信号标志中。
附注 该函数是包含在PK51中的RTX51Tiny的组成部分。
返回值成功调用后返回0,指定任务不存在时返回-1。
参阅 isr_send_signal,os_clear_signal,os_wait
#include
voidsignal_func(void)_task_2
{
…
os_send_signal(8); /*向8号任务发信号*/
…
}
voidtst_os_send_signal(void)_task_8
{
…
os_send_signal
(2); /*向2号任务发信号*/
…
}
9、 os_set_ready
概要 #include
charos_set_ready(unsignedchartask_id);/*使就绪的任务*/
描述 将以task_id指定的任务置为就绪状态。
附注:
该函数是包含在PK51中的RTX51Tiny的组成部分。
返回值无
例子 #include
voidready_func(void)_task_2
{
…
os_set_ready
(1); /*置位任务1的就绪标志*/
…
}
10、 os_switch_task
概要 #include
charos_switch_task(void);
描述 该函数允许一个任务停止执行,并运行另一个任务。
如果调用os_switch_task的任务是唯一的就绪任务,它将立即恢复运行。
附注:
该函数是包含在PK51中的RTX51Tiny的组成部分。
返回值 无
例子 #include
#include
voidlong_job(void)_task_1
{
floatf1,f2;
f1=0.0;
while
(1)
{
f2=log(f1);
f1+=0.0001;
os_switch_task(); /*运行其它任务*/
}
}
11、os_wait
概要 #include
charos_wait(
unsignedcharevent_sel, /*要等待的事件*/
unsignedcharticks, /*要等待的滴答数*/
unsignedint dammy); /*无用参数*/
描述 该函数挂起当前任务,并等待一个或几个事件,如时间间隔,超时,或从其它任务和中断发来的信号。
参数event_set指定要等待的事件,可以是下表中常数的一些组合。
事 件
描 述
K_IVL
等待滴答值为单位的时间间隔
K_SIG
等待一个信号
K_TMO
等待一个以滴答值为单位的超时
事件可以用竖线符(“|”)进行逻辑或。
例如,K_TMO1K_SIG指定任务等待一个超时或者一个信号。
ticks参数指定要等待的时间间隔事件(K_IVL)或超时事件(K_TMO)的定时器滴答数。
参数是为了提供与兼容性而设置的,在中并不使用。
附注
● 该函数是包含在PK中的RTX51Tiny的组成部分。
● 请参阅事件一节获得关于K_IVL,K_SIG,K_TMO的更多信息。
返回值当有一个指定的事件发生时,任务进入就绪态。
任务恢复执行时,下表列出的由返回的常数指出使任务重新启动的事件。
可能的返回值有:
返回值
描 述
RDY_EVENT
表示任务的就绪标志是被或函数置位的。
SIG_EVENT
收到一个信号
TMO_EVENT
超时完成,或时间间隔到
NOT_OK
参数的值无效
参阅
isr_send_signal,isr_set_ready,os_clear_signal,os_reset_interval,
os_send_signal,os_set_ready,os_wait1,os_wait2
例子 #include
#include
voidtst_os_wait(void)_task_9
{
while
(1)
{
charevent;
event=os_wait(K_SIG|K_TMO,50.0);
switch(event)
{
default:
/*从不发生,该情况*/
break;
case TMO_EVENT;/*超时*/
break; /*50次滴答超时*/
case SIG_EVENT;/*收到信号*/
break;
}
}
}
12、os_wait1
概要 #include
charos_wait1(unsigned char event_sel);/*要等待的事件*/
描述 该函数挂起当前的任务等待一个事件发生。
os_wait1是os_wait的一个子集,它不支持os_wait提供的全部事件。
参数event_sel指定要等待的事件,该函数只能是K_SIG。
附注:
● 该函数是包含于PK51中的RTX51Tiny的组成部分。
● 参见事件一节获得K_IVL,K_SIG和K_TMO的更多信息。
返回值 当指定的事件发生,任务进入就绪态。
任务恢复运行时,os_wait1
返回的值表明启动任务的事件,返回值见下面的常数列表:
返 回 值
RDY_EVENT
任务的就绪标志位是被os_set_ready或isr_set_ready置位的
SIG_EVENT
收到一个信号
NOT_OK
Event_sel参数的值无效
例子 见os_wait
13、os_wait2
概要 #include
charos_wait2(unsignedcharevent_sel, /*要等待的事件*/
unsignedcharticks); /*要等待的滴答数*/
描述函数挂起当前任务等待一个或几个事件发生,如时间间隔,超时或一个从其它任务或中断来的信号。
参数event_sel指定的事件可以是下列常数的组合:
Event
描 述
K_IVL
等待以滴答数为单位的时间间隔
K_SIG
等待一个信号
K_TMO
等待以滴答数为单位的超时
事件可以用“|”进行逻辑或。
如K_TMO|K_SIG表示任务等待一个超时或一个信号。
参数ticks指定等待时间间隔(K_IVL)或超时(K_TMO)事件时的滴答数。
附注:
● 该函数是包含于PK51中的RTX51Tiny的组成部分。
● 参见事件一节获得更多关于K_IVL,K_TMO,和K_SIG的信息。
返回值 当一个或几个事件产生时,任务进入就绪态.任务恢复执行时,os_wait2的返回值见下面的常数列表:
返回值
描 述
RDY_EVENT
任务的就绪标志是被os_set_ready或isr_set_ready函数置位的
SIG_EVENT
收到一个信号
TMO_EVENT
返回时完成,或时间间隔到达
NOT_OK
参数event_sel的值无效
例子 见os_wait。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六章 函数参考 第六 函数 参考