CosyOS-III API用户参考手册: 概述：API说明

CosyOS-III API用户参考手册 V1.2.8
  • 首页
  • 相关页面
  • 模块
  • 文件
概述：API说明

用户通过调用API来实现对系统服务的调用，所有API均为宏定义，所有API参数均支持宏定义。

  • API分类
  • 创建API
    静态创建：前缀为“u”，分为声明对象（uExtern）、创建对象（uCreate）、定义对象（uDef）。
    动态创建：前缀为“d”，分为声明对象（dExtern）、创建对象（dCreate）。
  • 任务API
    前缀为“u”，指仅在任务中调用。
  • 滴答API
    前缀为“t”，指仅在 SysTick_Handler 中调用，包括但不限于在滴答钩子、定时中断钩子、
    定时查询钩子、定时查询事件等处调用。
  • 中断API
    前缀为“i”，指仅在用户中断中调用。
  • PSVAPI
    前缀为“p”，指仅在 PendSV_Handler（pendsv_hook）中调用。
  • 公共API
    前缀为“x”，指可在任意处调用。

  • API返回
  • 无返回
    （1）服务的执行结果一定是成功的，所以不需要返回。
    （2）所有中断挂起服务均无返回。
  • 返回错误码
    服务的执行结果可能会失败，导致失败的原因可能有多个。
    （1）无错误。
    （2）由于结果已经成功，导致本次并未执行。
    （3）失败。
  • 返回结果
    服务的执行结果可能会失败，但导致失败的原因是唯一的。
    执行结果为 bool 类型，true 为成功，false 为失败。
  • 返回指针
    返回一个指针，(void *) 类型，NULL 为失败。
  • 返回值
    返回一个数值，特定的数据类型，0 为失败。

  • 名词解释
  • 无限阻塞
    阻塞时间为无限长。
  • 无限等待
    超时时间为无限长。
  • 无限延时
    延时时间为无限长。
  • 无限同步
    仅同步一次，事件处理线程便可不限次数的周期运行处理事件。
    仅二值信号量支持该功能，可通过上锁的方式来终止无限同步。

制作者 doxygen 1.8.10


CosyOS-III API用户参考手册: 模块

  • 模块
  • 文件
模块
这里列出了所有模块:
[详情级别 1234]
▼ CosyOS_用户API |
构建系统 | 系统构建相关服务。
▼ 任务 | 任务线程的声明、创建、启动，及操作。
声明任务 | 任务线程的声明
创建任务 | 任务线程的创建
启动任务 | 任务线程的启动。任务只有在启动以后，才能加入到任务队列参与调度并运行。
▼ 操作任务 | 对任意任务的操作，如 恢复、挂起、删除、设置优先级 等。
设置阻塞（时间） | 设置、修改指定任务的阻塞时间，前提是该任务当前已为阻塞状态。
▼ 操作自身任务 | 仅适用于对自身任务的操作
自身任务延时 | 自身任务延时分为阻塞延时和就绪延时。
定时中断 | 由用户定时操作，当定时器溢出时，系统将自动恢复/调用与其绑定的任务/钩子并可自动重复定时。
定时查询 | 由用户定时操作，当定时器溢出后，系统在每个滴答周期都会查询用户定义的事件， 若事件为真，系统将自动恢复/调用与其绑定的任务/钩子并可自动重复定时。
互斥信号量 | 仅适用于在任务中对任务级公共资源的互斥访问。
二值信号量 | 常用于事件同步、互斥访问（中断与任务之间的互斥）。
计数信号量 | 常用于事件同步、重入访问（资源管理），是唯一能够实现并发事件同步的手段。
事件标志组 | 适用于对一类事件的事件同步。
飞信 | 原子类型、传输数据。
消息邮箱 | 任意类型、传输指针。
消息队列 | 任意类型、传输指针，是唯一能够实现并发消息同步的手段。
全局变量访问 | 由CosyOS内核提供服务支持，可实现在任务、滴答、中断中，对非原子 全局变量的安全访问，同时不会破坏零中断延迟。
软件RTC | 适用于没有硬件RTC的物联网终端设备。
▼ 动态内存 |
进程内存 | 以进程为单位初始化内存池，各进程独享自己的内存池。
线程内存 | 以线程为单位初始化内存池，各线程独享自己的内存池。
▼ 临界区 |
调度锁（任务临界区） | 通过上锁任务调度器的方式，实现任务级的临界区保护，仅支持在任务中调用。
内核锁（服务层临界区） | OS内核级的临界区保护，会关闭系统中断（SysTick、PendSV），仅支持在任务中调用。
▼ 中断锁（全局临界区） | 全局的临界区保护，通常会关闭总中断，支持在任意处调用。
操作-PRIMASK |
操作-BASEPRI |
▼ 杂项 |
DEBUG | DEBUG接口，串口发送与接收的实现。
时间单位转换 | 把其它单位的时间转换为滴答周期。


CosyOS-III API用户参考手册: CosyOS_用户API

模块
CosyOS_用户API
CosyOS_用户API 的协作图:

模块

构建系统
系统构建相关服务。
任务
任务线程的声明、创建、启动，及操作。
定时中断
由用户定时操作，当定时器溢出时，系统将自动恢复/调用与其绑定的任务/钩子并可自动重复定时。
定时查询
由用户定时操作，当定时器溢出后，系统在每个滴答周期都会查询用户定义的事件， 若事件为真，系统将自动恢复/调用与其绑定的任务/钩子并可自动重复定时。
互斥信号量
仅适用于在任务中对任务级公共资源的互斥访问。
二值信号量
常用于事件同步、互斥访问（中断与任务之间的互斥）。
计数信号量
常用于事件同步、重入访问（资源管理），是唯一能够实现并发事件同步的手段。
事件标志组
适用于对一类事件的事件同步。
飞信
原子类型、传输数据。
消息邮箱
任意类型、传输指针。
消息队列
任意类型、传输指针，是唯一能够实现并发消息同步的手段。
全局变量访问
由CosyOS内核提供服务支持，可实现在任务、滴答、中断中，对非原子 全局变量的安全访问，同时不会破坏零中断延迟。
软件RTC
适用于没有硬件RTC的物联网终端设备。
动态内存
临界区
杂项

详细描述

制作者 doxygen 1.8.10


CosyOS-III API用户参考手册: 构建系统

函数
构建系统
CosyOS_用户API

系统构建相关服务。 更多...

构建系统 的协作图:

函数

s_ecode_t | uStartCosyOS (void)
启动-CosyOS 更多...
void | tCosyTick_Handler (void)
CosyOS-滴答 更多...

详细描述

系统构建相关服务。

函数说明

void tCosyTick_Handler ( void )

CosyOS-滴答

参数
无
返回
无
注解
对于Arm用户来说，您应自主创建 SysTick_Handler()，并在其中调用该服务。
警告
对于51/251用户来说，系统滴答中断固定采用定时器0中断，并由CosyOS托管，
您应屏蔽掉工程中原有的定时器0中断函数以避免冲突。
s_ecode_t uStartCosyOS ( void )

启动-CosyOS

参数
无
返回
错误码
注解
用户应自主创建main函数，并在其末尾处调用该函数来启动-CosyOS；
在正常情况下，该函数并不会返回，而是直接调度至 Starter 运行；
只有在 Sysidle / Starter 启动失败时，才会返回错误码提示用户。


CosyOS-III API用户参考手册: 任务

模块
任务
CosyOS_用户API

任务线程的声明、创建、启动，及操作。 更多...

任务 的协作图:

模块

声明任务
任务线程的声明
创建任务
任务线程的创建
启动任务
任务线程的启动。任务只有在启动以后，才能加入到任务队列参与调度并运行。
操作任务
对任意任务的操作，如 恢复、挂起、删除、设置优先级 等。
操作自身任务
仅适用于对自身任务的操作

详细描述

任务线程的声明、创建、启动，及操作。


CosyOS-III API用户参考手册: 声明任务

宏定义
声明任务
CosyOS_用户API » 任务

任务线程的声明 更多...

声明任务 的协作图:

宏定义

#define | uExtTask(task) sCSV_ExtTask(task)
简化声明静态任务 更多...
#define | dExtTask(task) dCSV_ExtTask(task)
简化声明动态任务 更多...
#define | uExternTask(task) sCSV_ExternTask(task)
完整声明静态任务 更多...
#define | dExternTask(task) dCSV_ExternTask(task)
完整声明动态任务 更多...

详细描述

任务线程的声明

注解
首先，声明任务不一定是必须的，当仅在一个c文件中启动、操作任务时，时常并不需要声明。
在声明任务时，通常无论是在h文件中声明还是在c文件中声明，都应采用完整声明方式，
只有在编译器发出警告，与该任务相关的全局变量未引用时，再考虑简化声明方式。
通常这种情况并不会发生，典型的是在您使用GCC(GNU)编译器时，可能偶尔会出现这种警告。

宏定义说明

#define dExternTask ( task ) dCSV_ExternTask(task)

完整声明动态任务

参数
[in] task 任务名称
返回
无

在文件 ur_api.h 第 167 行定义.

#define dExtTask ( task ) dCSV_ExtTask(task)

简化声明动态任务

参数
[in] task 任务名称
返回
无

在文件 ur_api.h 第 151 行定义.

#define uExternTask ( task ) sCSV_ExternTask(task)

完整声明静态任务

参数
[in] task 任务名称
返回
无

在文件 ur_api.h 第 159 行定义.

#define uExtTask ( task ) sCSV_ExtTask(task)

简化声明静态任务

参数
[in] task 任务名称
返回
无

在文件 ur_api.h 第 143 行定义.


CosyOS-III API用户参考手册: 创建任务

宏定义
创建任务
CosyOS_用户API » 任务

任务线程的创建 更多...

创建任务 的协作图:

宏定义

#define | uCreateTask(task, pri, tss, srt, res) sCSV_CreateTask(task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
静态创建一般任务 更多...
#define | dCreateTask(task, pri, tss, srt, res) dCSV_CreateTask(task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
动态创建一般任务 更多...
#define | uCreateTask_TimInt(tmid, arl, task, pri, tss, srt, res) sCSV_CreateTask_TimInt(tmid, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
静态创建定时中断任务 更多...
#define | dCreateTask_TimInt(tmid, arl, task, pri, tss, srt, res) dCSV_CreateTask_TimInt(tmid, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
动态创建定时中断任务 更多...
#define | uCreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, res) sCSV_CreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
静态创建定时查询任务 更多...
#define | dCreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, res) dCSV_CreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
动态创建定时查询任务 更多...

详细描述

任务线程的创建

宏定义说明

#define dCreateTask | ( | task,
 |  | pri,
 |  | tss,
 |  | srt,
 |  | res
 | ) | dCSV_CreateTask(task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))

动态创建一般任务

参数
[in] | task | 任务名称
[in] | pri | 任务优先级
[in] | tss | 任务栈大小（单位为字节）
[in] | srt | 安全运行时（单位为时间片，0为无限长）
[in] | res | 保留
[in] | add{...} | 附加任务代码
返回
无

在文件 ur_api.h 第 202 行定义.

#define dCreateTask_TimInt | ( | tmid,
 |  | arl,
 |  | task,
 |  | pri,
 |  | tss,
 |  | srt,
 |  | res
 | ) | dCSV_CreateTask_TimInt(tmid, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))

动态创建定时中断任务

参数
[in] | tmid | 定时中断定时器ID
[in] | arl | 自动重装载
[in] | task | 任务名称
[in] | pri | 任务优先级
[in] | tss | 任务栈大小（单位为字节）
[in] | srt | 安全运行时（单位为时间片，0为无限长）
[in] | res | 保留
[in] | add{...} | 附加任务代码
返回
无

在文件 ur_api.h 第 232 行定义.

#define dCreateTask_TimQry | ( | tmid,
 |  | event,
 |  | arl,
 |  | task,
 |  | pri,
 |  | tss,
 |  | srt,
 |  | res
 | ) | dCSV_CreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))

动态创建定时查询任务

参数
[in] | tmid | 定时查询定时器ID
[in] | event | 定时查询事件
[in] | arl | 自动重装载
[in] | task | 任务名称
[in] | pri | 任务优先级
[in] | tss | 任务栈大小（单位为字节）
[in] | srt | 安全运行时（单位为时间片，0为无限长）
[in] | res | 保留
[in] | add{...} | 附加任务代码
返回
无

在文件 ur_api.h 第 264 行定义.

#define uCreateTask | ( | task,
 |  | pri,
 |  | tss,
 |  | srt,
 |  | res
 | ) | sCSV_CreateTask(task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))

静态创建一般任务

参数
[in] | task | 任务名称
[in] | pri | 任务优先级
[in] | tss | 任务栈大小（单位为字节）
[in] | srt | 安全运行时（单位为时间片，0为无限长）
[in] | res | 保留
[in] | add{...} | 附加任务代码
返回
无

在文件 ur_api.h 第 189 行定义.

#define uCreateTask_TimInt | ( | tmid,
 |  | arl,
 |  | task,
 |  | pri,
 |  | tss,
 |  | srt,
 |  | res
 | ) | sCSV_CreateTask_TimInt(tmid, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))

静态创建定时中断任务

参数
[in] | tmid | 定时中断定时器ID
[in] | arl | 自动重装载
[in] | task | 任务名称
[in] | pri | 任务优先级
[in] | tss | 任务栈大小（单位为字节）
[in] | srt | 安全运行时（单位为时间片，0为无限长）
[in] | res | 保留
[in] | add{...} | 附加任务代码
返回
无

在文件 ur_api.h 第 217 行定义.

#define uCreateTask_TimQry | ( | tmid,
 |  | event,
 |  | arl,
 |  | task,
 |  | pri,
 |  | tss,
 |  | srt,
 |  | res
 | ) | sCSV_CreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))

静态创建定时查询任务

参数
[in] | tmid | 定时查询定时器ID
[in] | event | 定时查询事件
[in] | arl | 自动重装载
[in] | task | 任务名称
[in] | pri | 任务优先级
[in] | tss | 任务栈大小（单位为字节）
[in] | srt | 安全运行时（单位为时间片，0为无限长）
[in] | res | 保留
[in] | add{...} | 附加任务代码
返回
无

在文件 ur_api.h 第 248 行定义.


CosyOS-III API用户参考手册: 启动任务

宏定义
启动任务
CosyOS_用户API » 任务

任务线程的启动。任务只有在启动以后，才能加入到任务队列参与调度并运行。 更多...

启动任务 的协作图:

宏定义

#define | uStartTask(task, status) sUSV_StartTask(&u_taskhand_##task, status)
启动任务 更多...
#define | uStartTask_Ready(task) uStartTask(task, OS_STATUS_READY)
启动任务并就绪 更多...
#define | uStartTask_Block(task) uStartTask(task, OS_STATUS_BLOCKED)
启动任务并阻塞 更多...
#define | uStartTask_Suspend(task) uStartTask(task, OS_STATUS_SUSPENDED)
启动任务并挂起 更多...

详细描述

任务线程的启动。任务只有在启动以后，才能加入到任务队列参与调度并运行。

警告
所有定时中断任务和定时查询任务均由操作系统自动启动，用户不要启动。
不支持在临界区中，包括任务临界区、服务层临界区、全局临界区，或关闭总中断时调用。

宏定义说明

#define uStartTask | ( | task,
 |  | status
 | ) | sUSV_StartTask(&u_taskhand_##task, status)

启动任务

启动任务并置任务的初始状态为设定状态。

参数
[in] task 任务名称
[in] status 任务的初始状态
就绪状态：OS_STATUS_READY
阻塞状态：OS_STATUS_BLOCKED，阻塞类型为延时阻塞，延时时间为无限长。
挂起状态：OS_STATUS_SUSPENDED，先前状态为就绪状态。
返回
错误码（s_ecode_t）
返回值
OS_ECODE_NOERROR | 无错误
OS_ECODE_OVERFLOW_TASKSTACK | 任务栈溢出
OS_ECODE_MALLOCFAIL_TASKNODE | 任务节点内存分配失败
OS_ECODE_MALLOCFAIL_TASKSTACK | 任务栈内存分配失败

在文件 ur_api.h 第 292 行定义.

#define uStartTask_Block ( task ) uStartTask(task, OS_STATUS_BLOCKED)

启动任务并阻塞

启动任务并置任务的初始状态为阻塞状态（阻塞类型为延时阻塞，延时时间为无限长）。

参数
[in] task 任务名称
返回
错误码（s_ecode_t）
返回值
OS_ECODE_NOERROR | 无错误
OS_ECODE_OVERFLOW_TASKSTACK | 任务栈溢出
OS_ECODE_MALLOCFAIL_TASKNODE | 任务节点内存分配失败
OS_ECODE_MALLOCFAIL_TASKSTACK | 任务栈内存分配失败

在文件 ur_api.h 第 318 行定义.

#define uStartTask_Ready ( task ) uStartTask(task, OS_STATUS_READY)

启动任务并就绪

启动任务并置任务的初始状态为就绪状态。

参数
[in] task 任务名称
返回
错误码（s_ecode_t）
返回值
OS_ECODE_NOERROR | 无错误
OS_ECODE_OVERFLOW_TASKSTACK | 任务栈溢出
OS_ECODE_MALLOCFAIL_TASKNODE | 任务节点内存分配失败
OS_ECODE_MALLOCFAIL_TASKSTACK | 任务栈内存分配失败

在文件 ur_api.h 第 305 行定义.

#define uStartTask_Suspend ( task ) uStartTask(task, OS_STATUS_SUSPENDED)

启动任务并挂起

启动任务并置任务的初始状态为挂起状态（先前状态为就绪状态）。

参数
[in] task 任务名称
返回
错误码（s_ecode_t）
返回值
OS_ECODE_NOERROR | 无错误
OS_ECODE_OVERFLOW_TASKSTACK | 任务栈溢出
OS_ECODE_MALLOCFAIL_TASKNODE | 任务节点内存分配失败
OS_ECODE_MALLOCFAIL_TASKSTACK | 任务栈内存分配失败

在文件 ur_api.h 第 331 行定义.


CosyOS-III API用户参考手册: 操作任务

模块 | 宏定义
操作任务
CosyOS_用户API » 任务

对任意任务的操作，如 恢复、挂起、删除、设置优先级 等。 更多...

操作任务 的协作图:

模块

设置阻塞（时间）
设置、修改指定任务的阻塞时间，前提是该任务当前已为阻塞状态。

宏定义

#define | tClearDelay() sTSV_ClearDelay()
清除就绪延时 更多...
#define | uResumeTask(task) sUSV_ResumeTask(u_taskhandle_##task)
恢复任务 更多...
#define | uSuspendTask(task) sUSV_SuspendTask(u_taskhandle_##task)
挂起任务 更多...
#define | uDeleteTask(task) sUSV_DeleteTask(u_taskhandle_##task)
删除任务 更多...
#define | uSetTaskPri(task, npri) sUSV_SetTaskPri(u_taskhandle_##task, npri)
设置任务优先级 更多...
#define | uClearBlock(task) sUSV_ClearBlock(u_taskhandle_##task)
清除阻塞（状态） 更多...

详细描述

对任意任务的操作，如 恢复、挂起、删除、设置优先级 等。

宏定义说明

#define tClearDelay ( ) sTSV_ClearDelay()

清除就绪延时

清除当前任务的就绪延时，前提是当前任务已在就绪延时中。

参数
无
返回
无
注解
同型服务：
iClearDelay()，无返回。
pClearDelay()，无返回。

在文件 ur_api.h 第 352 行定义.

#define uClearBlock ( task ) sUSV_ClearBlock(u_taskhandle_##task)

清除阻塞（状态）

清除指定任务的阻塞状态并使其就绪。

参数
[in] task 任务名称
返回
错误码（s_ecode_t）
返回值
OS_ECODE_NOERROR | 无错误
OS_ECODE_TASKNOTBLOCKED | 任务未阻塞
OS_ECODE_TASKNOTSTARTED | 任务未启动/已删除
注解
同型服务：
tClearBlock(task)，同返回。
iClearBlock(task)，无返回。
pClearBlock(task)，无返回。

在文件 ur_api.h 第 430 行定义.

#define uDeleteTask ( task ) sUSV_DeleteTask(u_taskhandle_##task)

删除任务

参数
[in] task 任务名称
返回
错误码（s_ecode_t）
返回值
OS_ECODE_NOERROR | 无错误
OS_ECODE_TASKNOTSTARTED | 任务未启动/已删除
注解
同型服务：
tDeleteTask(task)，同返回。
iDeleteTask(task)，无返回。
pDeleteTask(task)，无返回。

在文件 ur_api.h 第 397 行定义.

#define uResumeTask ( task ) sUSV_ResumeTask(u_taskhandle_##task)

恢复任务

参数
[in] task 任务名称
返回
错误码（s_ecode_t）
返回值
OS_ECODE_NOERROR | 无错误
OS_ECODE_TASKNOTSUSPENDED | 任务未挂起
OS_ECODE_TASKSTOPPED | 任务已停止
OS_ECODE_TASKNOTSTARTED | 任务未启动/已删除
注解
同型服务：
tResumeTask(task)，同返回。
iResumeTask(task)，无返回。
pResumeTask(task)，无返回。

在文件 ur_api.h 第 367 行定义.

#define uSetTaskPri | ( | task,
 |  | npri
 | ) | sUSV_SetTaskPri(u_taskhandle_##task, npri)

设置任务优先级

参数
[in] | task | 任务名称
[in] | npri | 新优先级
返回
错误码（s_ecode_t）
返回值
OS_ECODE_NOERROR | 无错误
OS_ECODE_TASKPRIUNCHANGED | 任务优先级未改变
OS_ECODE_TASKSTOPPED | 任务已停止
OS_ECODE_TASKNOTSTARTED | 任务未启动/已删除
注解
同型服务：
tSetTaskPri(task, npri)，同返回。
iSetTaskPri(task, npri)，无返回。
pSetTaskPri(task, npri)，无返回。

在文件 ur_api.h 第 414 行定义.

#define uSuspendTask ( task ) sUSV_SuspendTask(u_taskhandle_##task)

挂起任务

参数
[in] task 任务名称
返回
错误码（s_ecode_t）
返回值
OS_ECODE_NOERROR | 无错误
OS_ECODE_TASKSUSPENDED | 任务已挂起
OS_ECODE_TASKSTOPPED | 任务已停止
OS_ECODE_TASKNOTSTARTED | 任务未启动/已删除
注解
同型服务：
tSuspendTask(task)，同返回。
iSuspendTask(task)，无返回。
pSuspendTask(task)，无返回。

在文件 ur_api.h 第 383 行定义.


CosyOS-III API用户参考手册: 设置阻塞（时间）

宏定义
设置阻塞（时间）
CosyOS_用户API » 任务 » 操作任务

设置、修改指定任务的阻塞时间，前提是该任务当前已为阻塞状态。 更多...

设置阻塞（时间） 的协作图:

宏定义

#define | uSetBlock_tc(task, tc) sUSV_SetBlock(u_taskhandle_##task, tc)
设置阻塞-滴答周期 更多...
#define | uSetBlock_ms(task, ms) uSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
设置阻塞-毫秒 更多...
#define | uSetBlock_s(task, s) uSetBlock_ms(task, 1000UL * (s))
设置阻塞-秒钟 更多...
#define | uSetBlock_m(task, m) uSetBlock_s(task, 60UL * (m))
设置阻塞-分钟 更多...
#define | uSetBlock_h(task, h) uSetBlock_m(task, 60UL * (h))
设置阻塞-小时 更多...

详细描述

设置、修改指定任务的阻塞时间，前提是该任务当前已为阻塞状态。

注解
理想误差：-1tick。
警告
按 毫秒、秒钟、分钟、小时 设置，用户需自己保证时间的有效性（可被系统滴答周期整除）。
无限阻塞，仅能通过调用 xSetBlock_tc(task, ~0) 来实现。

宏定义说明

#define uSetBlock_h | ( | task,
 |  | h
 | ) | uSetBlock_m(task, 60UL * (h))

设置阻塞-小时

参数
[in] task 任务名称
[in] h 小时（阻塞时间）
0：清除阻塞
返回
错误码（s_ecode_t）
返回值
OS_ECODE_NOERROR | 无错误
OS_ECODE_TASKNOTBLOCKED | 任务未阻塞
OS_ECODE_TASKNOTSTARTED | 任务未启动/已删除
注解
同型服务：
tSetBlock_h(task, h)，同返回。
iSetBlock_h(task, h)，无返回。
pSetBlock_h(task, h)，无返回。

在文件 ur_api.h 第 522 行定义.

#define uSetBlock_m | ( | task,
 |  | m
 | ) | uSetBlock_s(task, 60UL * (m))

设置阻塞-分钟

参数
[in] task 任务名称
[in] m 分钟（阻塞时间）
0：清除阻塞
返回
错误码（s_ecode_t）
返回值
OS_ECODE_NOERROR | 无错误
OS_ECODE_TASKNOTBLOCKED | 任务未阻塞
OS_ECODE_TASKNOTSTARTED | 任务未启动/已删除
注解
同型服务：
tSetBlock_m(task, m)，同返回。
iSetBlock_m(task, m)，无返回。
pSetBlock_m(task, m)，无返回。

在文件 ur_api.h 第 506 行定义.

#define uSetBlock_ms | ( | task,
 |  | ms
 | ) | uSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)

设置阻塞-毫秒

参数
[in] task 任务名称
[in] ms 毫秒（阻塞时间）
0：清除阻塞
返回
错误码（s_ecode_t）
返回值
OS_ECODE_NOERROR | 无错误
OS_ECODE_TASKNOTBLOCKED | 任务未阻塞
OS_ECODE_TASKNOTSTARTED | 任务未启动/已删除
注解
同型服务：
tSetBlock_ms(task, ms)，同返回。
iSetBlock_ms(task, ms)，无返回。
pSetBlock_ms(task, ms)，无返回。

在文件 ur_api.h 第 474 行定义.

#define uSetBlock_s | ( | task,
 |  | s
 | ) | uSetBlock_ms(task, 1000UL * (s))

设置阻塞-秒钟

参数
[in] task 任务名称
[in] s 秒钟（阻塞时间）
0：清除阻塞
返回
错误码（s_ecode_t）
返回值
OS_ECODE_NOERROR | 无错误
OS_ECODE_TASKNOTBLOCKED | 任务未阻塞
OS_ECODE_TASKNOTSTARTED | 任务未启动/已删除
注解
同型服务：
tSetBlock_s(task, s)，同返回。
iSetBlock_s(task, s)，无返回。
pSetBlock_s(task, s)，无返回。

在文件 ur_api.h 第 490 行定义.

#define uSetBlock_tc | ( | task,
 |  | tc
 | ) | sUSV_SetBlock(u_taskhandle_##task, tc)

设置阻塞-滴答周期

参数
[in] task 任务名称
[in] tc 滴答周期（阻塞时间）
+0：清除阻塞
~0：无限阻塞
返回
错误码（s_ecode_t）
返回值
OS_ECODE_NOERROR | 无错误
OS_ECODE_TASKNOTBLOCKED | 任务未阻塞
OS_ECODE_TASKNOTSTARTED | 任务未启动/已删除
注解
同型服务：
tSetBlock_tc(task, tc)，同返回。
iSetBlock_tc(task, tc)，无返回。
pSetBlock_tc(task, tc)，无返回。

在文件 ur_api.h 第 458 行定义.


CosyOS-III API用户参考手册: 操作自身任务

模块 | 宏定义
操作自身任务
CosyOS_用户API » 任务

仅适用于对自身任务的操作 更多...

操作自身任务 的协作图:

模块

自身任务延时
自身任务延时分为阻塞延时和就绪延时。

宏定义

#define | uYieldTasking() su_yield_tasking()
禅让任务 更多...
#define | uSetTaskingPri(npri) sUSV_SetTaskPri(s_task_current, npri)
设置自身任务优先级 更多...
#define | uSuspendTasking() sUSV_SuspendTask(s_task_current)
挂起自身任务 更多...
#define | uDeleteTasking() sUSV_DeleteTask(s_task_current)
删除自身任务 更多...
#define | uResumeSuspend(task) sUSV_ResumeSuspend(u_taskhandle_##task)
恢复指定任务并挂起自身任务 更多...

详细描述

仅适用于对自身任务的操作

宏定义说明

#define uDeleteTasking ( ) sUSV_DeleteTask(s_task_current)

删除自身任务

参数
无
返回
错误码（s_ecode_t）
注解
虽然也返回错误码，但在正常情况下结果一定是成功的，不必查看错误码。

在文件 ur_api.h 第 567 行定义.

#define uResumeSuspend ( task ) sUSV_ResumeSuspend(u_taskhandle_##task)

恢复指定任务并挂起自身任务

参数
[in] task 指定任务名称
返回
错误码（s_ecode_t）
返回值
OS_ECODE_NOERROR | 无错误
OS_ECODE_TASKNOTREADY | 指定任务未就绪
OS_ECODE_TASKSTOPPED | 指定任务已停止
OS_ECODE_TASKNOTSTARTED | 指定任务未启动/已删除
注解
当返回错误时，指定任务未能恢复为就绪状态，自身任务不会挂起。

在文件 ur_api.h 第 579 行定义.

#define uSetTaskingPri ( npri ) sUSV_SetTaskPri(s_task_current, npri)

设置自身任务优先级

参数
[in] npri 新优先级
返回
错误码（s_ecode_t）
返回值
OS_ECODE_NOERROR | 无错误
OS_ECODE_TPLUNCHANGED | 优先级未改变

在文件 ur_api.h 第 551 行定义.

#define uSuspendTasking ( ) sUSV_SuspendTask(s_task_current)

挂起自身任务

参数
无
返回
错误码（s_ecode_t）
注解
虽然也返回错误码，但在正常情况下结果一定是成功的，不必查看错误码。

在文件 ur_api.h 第 559 行定义.

#define uYieldTasking ( ) su_yield_tasking()

禅让任务

自身任务主动禅让CPU使用权，轮转至下一个相同优先级的任务运行。

参数
无
返回
无
注解
多个相同优先级的任务，通过禅让的方式可实现合作式任务。
禅让是自身任务主动时间片到期，禅让后任务仍为就绪状态。
警告
当开启相同优先级任务的时间片轮转调度时，才支持此服务。

在文件 ur_api.h 第 542 行定义.


CosyOS-III API用户参考手册: 自身任务延时

宏定义
自身任务延时
CosyOS_用户API » 任务 » 操作自身任务

自身任务延时分为阻塞延时和就绪延时。 更多...

自身任务延时 的协作图:

宏定义

#define | uDelay_tc(tc) sUSV_Delay(tc)
延时-滴答周期 更多...
#define | uDelay_ms(ms) uDelay_tc((1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
延时-毫秒 更多...
#define | uDelay_s(s) uDelay_ms(1000UL * (s))
延时-秒钟 更多...
#define | uDelay_m(m) uDelay_s(60UL * (m))
延时-分钟 更多...
#define | uDelay_h(h) uDelay_m(60UL * (h))
延时-小时 更多...

详细描述

自身任务延时分为阻塞延时和就绪延时。

注解
阻塞延时：在延时期间，任务会进入阻塞状态，把CPU使用权转让给其它任务。
就绪延时：在延时期间，任务会维持就绪状态，原地等待延时时间到达，不转让CPU使用权。
当在任务临界区中，自动选择为就绪延时，否则选择为阻塞延时。
理想误差：-1tick。
警告
按 毫秒、秒钟、分钟、小时 延时，用户需自己保证时间的有效性（可被系统滴答周期整除）。
无限延时，仅能通过调用 uDelay_tc(~0) 来实现。
不支持在服务层临界区、全局临界区，或关闭总中断时调用。

宏定义说明

#define uDelay_h ( h ) uDelay_m(60UL * (h))

延时-小时

参数
[in] h 小时（延时时间）
返回
无

在文件 ur_api.h 第 629 行定义.

#define uDelay_m ( m ) uDelay_s(60UL * (m))

延时-分钟

参数
[in] m 分钟（延时时间）
返回
无

在文件 ur_api.h 第 622 行定义.

#define uDelay_ms ( ms ) uDelay_tc((1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)

延时-毫秒

参数
[in] ms 毫秒（延时时间）
返回
无

在文件 ur_api.h 第 608 行定义.

#define uDelay_s ( s ) uDelay_ms(1000UL * (s))

延时-秒钟

参数
[in] s 秒钟（延时时间）
返回
无

在文件 ur_api.h 第 615 行定义.

#define uDelay_tc ( tc ) sUSV_Delay(tc)

延时-滴答周期

参数
[in] tc 滴答周期（延时时间）
~0：无限延时
返回
无

在文件 ur_api.h 第 601 行定义.


CosyOS-III API用户参考手册: 定时中断

宏定义
定时中断
CosyOS_用户API

由用户定时操作，当定时器溢出时，系统将自动恢复/调用与其绑定的任务/钩子并可自动重复定时。 更多...

定时中断 的协作图:

宏定义

#define | uCreateHook_TimInt(tmid, arl, hook) sCSV_CreateHook_TimInt(tmid, arl, hook)
创建定时中断钩子 更多...
#define | uTimInt_tc(tmid, tc) sUSV_TimInt(tmid, tc)
定时中断-滴答周期 更多...
#define | uTimInt_ms(tmid, ms) uTimInt_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
定时中断-毫秒 更多...
#define | uTimInt_s(tmid, s) uTimInt_ms(tmid, 1000UL * (s))
定时中断-秒钟 更多...
#define | uTimInt_m(tmid, m) uTimInt_s(tmid, 60UL * (m))
定时中断-分钟 更多...
#define | uTimInt_h(tmid, h) uTimInt_m(tmid, 60UL * (h))
定时中断-小时 更多...
#define | uTimInt_Cancel(tmid) uTimInt_tc(tmid, 0)
终止定时中断 更多...
#define | xTimInt_AutoReload(tmid, arl) s_timint_autoreload[tmid] = arl
定时中断定时器自动重装载 更多...

详细描述

由用户定时操作，当定时器溢出时，系统将自动恢复/调用与其绑定的任务/钩子并可自动重复定时。

注解
理想误差：-1tick。
警告
按 毫秒、秒钟、分钟、小时 定时，用户需自己保证时间的有效性（可被系统滴答周期整除）。

宏定义说明

#define uCreateHook_TimInt | ( | tmid,
 |  | arl,
 |  | hook
 | ) | sCSV_CreateHook_TimInt(tmid, arl, hook)

创建定时中断钩子

参数
[in] | tmid | 定时器ID
[in] arl 自动重装载设置
0：关闭自动重装载
1：开启自动重装载
[in] | hook | 钩子函数
[in] | add{...} | 附加钩子代码
返回
无

在文件 ur_api.h 第 652 行定义.

#define uTimInt_Cancel ( tmid ) uTimInt_tc(tmid, 0)

终止定时中断

参数
[in] tmid 定时中断定时器ID
返回
无
注解
同型服务：
tTimInt_Cancel(tmid)。
iTimInt_Cancel(tmid)。

在文件 ur_api.h 第 718 行定义.

#define uTimInt_h | ( | tmid,
 |  | h
 | ) | uTimInt_m(tmid, 60UL * (h))

定时中断-小时

参数
[in] | tmid | 定时中断定时器ID
[in] | h | 小时（定时时间）
返回
无
注解
同型服务：
tTimInt_h(tmid, h)。
iTimInt_h(tmid, h)。

在文件 ur_api.h 第 708 行定义.

#define uTimInt_m | ( | tmid,
 |  | m
 | ) | uTimInt_s(tmid, 60UL * (m))

定时中断-分钟

参数
[in] | tmid | 定时中断定时器ID
[in] | m | 分钟（定时时间）
返回
无
注解
同型服务：
tTimInt_m(tmid, m)。
iTimInt_m(tmid, m)。

在文件 ur_api.h 第 697 行定义.

#define uTimInt_ms | ( | tmid,
 |  | ms
 | ) | uTimInt_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)

定时中断-毫秒

参数
[in] | tmid | 定时中断定时器ID
[in] | ms | 毫秒（定时时间）
返回
无
注解
同型服务：
tTimInt_ms(tmid, ms)。
iTimInt_ms(tmid, ms)。

在文件 ur_api.h 第 675 行定义.

#define uTimInt_s | ( | tmid,
 |  | s
 | ) | uTimInt_ms(tmid, 1000UL * (s))

定时中断-秒钟

参数
[in] | tmid | 定时中断定时器ID
[in] | s | 秒钟（定时时间）
返回
无
注解
同型服务：
tTimInt_s(tmid, s)。
iTimInt_s(tmid, s)。

在文件 ur_api.h 第 686 行定义.

#define uTimInt_tc | ( | tmid,
 |  | tc
 | ) | sUSV_TimInt(tmid, tc)

定时中断-滴答周期

参数
[in] | tmid | 定时中断定时器ID
[in] | tc | 滴答周期（定时时间）
返回
无
注解
同型服务：
tTimInt_tc(tmid, tc)。
iTimInt_tc(tmid, tc)。

在文件 ur_api.h 第 664 行定义.

#define xTimInt_AutoReload | ( | tmid,
 |  | arl
 | ) | s_timint_autoreload[tmid] = arl

定时中断定时器自动重装载

参数
[in] tmid 定时中断定时器ID
[in] arl 自动重装载设置
0：关闭自动重装载
1：开启自动重装载
返回
无

在文件 ur_api.h 第 728 行定义.


CosyOS-III API用户参考手册: 定时查询

宏定义
定时查询
CosyOS_用户API

由用户定时操作，当定时器溢出后，系统在每个滴答周期都会查询用户定义的事件， 若事件为真，系统将自动恢复/调用与其绑定的任务/钩子并可自动重复定时。 更多...

定时查询 的协作图:

宏定义

#define | uCreateHook_TimQry(tmid, event, arl, hook) sCSV_CreateHook_TimQry(tmid, event, arl, hook)
创建定时查询钩子 更多...
#define | uTimQry_tc(tmid, tc) sUSV_TimQry(tmid, tc)
定时查询-滴答周期 更多...
#define | uTimQry_ms(tmid, ms) uTimQry_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
定时查询-毫秒 更多...
#define | uTimQry_s(tmid, s) uTimQry_ms(tmid, 1000UL * (s))
定时查询-秒钟 更多...
#define | uTimQry_m(tmid, m) uTimQry_s(tmid, 60UL * (m))
定时查询-分钟 更多...
#define | uTimQry_h(tmid, h) uTimQry_m(tmid, 60UL * (h))
定时查询-小时 更多...
#define | uTimQry_Cancel(tmid) uTimQry_tc(tmid, ~0)
终止定时查询 更多...
#define | xTimQry_AutoReload(tmid, arl) s_timqry_autoreload[tmid] = arl
定时查询定时器自动重装载 更多...

详细描述

由用户定时操作，当定时器溢出后，系统在每个滴答周期都会查询用户定义的事件， 若事件为真，系统将自动恢复/调用与其绑定的任务/钩子并可自动重复定时。

注解
理想误差：-1tick。
警告
按 毫秒、秒钟、分钟、小时 定时，用户需自己保证时间的有效性（可被系统滴答周期整除）。

宏定义说明

#define uCreateHook_TimQry | ( | tmid,
 |  | event,
 |  | arl,
 |  | hook
 | ) | sCSV_CreateHook_TimQry(tmid, event, arl, hook)

创建定时查询钩子

参数
[in] | tmid | 定时器ID
[in] | event | 定时查询事件
[in] arl 自动重装载设置
0：关闭自动重装载
1：开启自动重装载
[in] | hook | 钩子函数
[in] | add{...} | 附加钩子代码
返回
无

在文件 ur_api.h 第 753 行定义.

#define uTimQry_Cancel ( tmid ) uTimQry_tc(tmid, ~0)

终止定时查询

参数
[in] tmid 定时查询定时器ID
返回
无
注解
同型服务：
tTimQry_Cancel(tmid)。
iTimQry_Cancel(tmid)。

在文件 ur_api.h 第 819 行定义.

#define uTimQry_h | ( | tmid,
 |  | h
 | ) | uTimQry_m(tmid, 60UL * (h))

定时查询-小时

参数
[in] | tmid | 定时查询定时器ID
[in] | h | 小时（定时时间）
返回
无
注解
同型服务：
tTimQry_h(tmid, h)。
iTimQry_h(tmid, h)。

在文件 ur_api.h 第 809 行定义.

#define uTimQry_m | ( | tmid,
 |  | m
 | ) | uTimQry_s(tmid, 60UL * (m))

定时查询-分钟

参数
[in] | tmid | 定时查询定时器ID
[in] | m | 分钟（定时时间）
返回
无
注解
同型服务：
tTimQry_m(tmid, m)。
iTimQry_m(tmid, m)。

在文件 ur_api.h 第 798 行定义.

#define uTimQry_ms | ( | tmid,
 |  | ms
 | ) | uTimQry_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)

定时查询-毫秒

参数
[in] | tmid | 定时查询定时器ID
[in] | ms | 毫秒（定时时间）
返回
无
注解
同型服务：
tTimQry_ms(tmid, ms)。
iTimQry_ms(tmid, ms)。

在文件 ur_api.h 第 776 行定义.

#define uTimQry_s | ( | tmid,
 |  | s
 | ) | uTimQry_ms(tmid, 1000UL * (s))

定时查询-秒钟

参数
[in] | tmid | 定时查询定时器ID
[in] | s | 秒钟（定时时间）
返回
无
注解
同型服务：
tTimQry_s(tmid, s)。
iTimQry_s(tmid, s)。

在文件 ur_api.h 第 787 行定义.

#define uTimQry_tc | ( | tmid,
 |  | tc
 | ) | sUSV_TimQry(tmid, tc)

定时查询-滴答周期

参数
[in] | tmid | 定时查询定时器ID
[in] | tc | 滴答周期（定时时间）
返回
无
注解
同型服务：
tTimQry_tc(tmid, tc)。
iTimQry_tc(tmid, tc)。

在文件 ur_api.h 第 765 行定义.

#define xTimQry_AutoReload | ( | tmid,
 |  | arl
 | ) | s_timqry_autoreload[tmid] = arl

定时查询定时器自动重装载

参数
[in] tmid 定时查询定时器ID
[in] arl 自动重装载设置
0：关闭自动重装载
1：开启自动重装载
返回
无

在文件 ur_api.h 第 829 行定义.


CosyOS-III API用户参考手册: 互斥信号量

宏定义
互斥信号量
CosyOS_用户API

仅适用于在任务中对任务级公共资源的互斥访问。 更多...

互斥信号量 的协作图:

宏定义

#define | uExternMut(mut) sCSV_ExternMut(mut)
声明互斥信号量 更多...
#define | uCreateMut(mut) sCSV_CreateMut(mut)
创建互斥信号量 更多...
#define | uTakeMut(mut, tc) sUSV_TakeMut(mut, tc)
获取互斥信号量 更多...
#define | uBackMut(mut) sUSV_BackMut(mut)
归还互斥信号量 更多...

详细描述

仅适用于在任务中对任务级公共资源的互斥访问。

注解
有优先级继承/天花板机制，以抑制优先级反转的发生。
互斥信号量均支持嵌套使用，最大嵌套深度255，获取与归还必须配对使用。
如果任务中调用了获取互斥量，应谨慎操作该任务，如操作不当可能会导致获取该互斥量的其它任务死锁。

宏定义说明

#define uBackMut ( mut ) sUSV_BackMut(mut)

归还互斥信号量

参数
[in] mut 互斥信号量名称
返回
无

在文件 ur_api.h 第 876 行定义.

#define uCreateMut ( mut ) sCSV_CreateMut(mut)

创建互斥信号量

参数
[in] mut 互斥信号量名称
返回
无
警告
创建互斥信号量时，系统将自动赋初值，用户不可赋初值。

在文件 ur_api.h 第 856 行定义.

#define uExternMut ( mut ) sCSV_ExternMut(mut)

声明互斥信号量

参数
[in] mut 互斥信号量名称
返回
无

在文件 ur_api.h 第 848 行定义.

#define uTakeMut | ( | mut,
 |  | tc
 | ) | sUSV_TakeMut(mut, tc)

获取互斥信号量

参数
[in] mut 互斥信号量名称
[in] tc 滴答周期（超时时间）
+0：立即返回
~0：无限等待
返回
结果（bool）
返回值
false | 失败
true | 成功
警告
不支持在临界区中，包括任务临界区、服务层临界区、全局临界区，或关闭总中断时调用。

在文件 ur_api.h 第 869 行定义.


CosyOS-III API用户参考手册: 二值信号量

宏定义
二值信号量
CosyOS_用户API

常用于事件同步、互斥访问（中断与任务之间的互斥）。 更多...

二值信号量 的协作图:

宏定义

#define | uExternBin(bin) sCSV_ExternBin(bin)
声明二值信号量 更多...
#define | uCreateBin(bin, init) sCSV_CreateBin(bin, init)
创建二值信号量 更多...
#define | uLockBin(bin) bin.binary = false
上锁二值信号量 更多...
#define | uWaitBin(bin, tc) sUSV_WaitBin(bin, tc)
等待二值信号量 更多...
#define | uGiveBin(bin) sUSV_GiveBin(bin)
给予二值信号量 更多...
#define | uTakeBin(bin, tc) sUSV_TakeBin(bin, tc)
获取二值信号量 更多...
#define | uBackBin(bin) uGiveBin(bin)
归还二值信号量 更多...

详细描述

常用于事件同步、互斥访问（中断与任务之间的互斥）。

宏定义说明

#define uBackBin ( bin ) uGiveBin(bin)

归还二值信号量

专用于互斥访问。

参数
[in] bin 二值信号量名称
返回
无
注解
同型服务：
tBackBin(bin)。
iBackBin(bin)。

在文件 ur_api.h 第 969 行定义.

#define uCreateBin | ( | bin,
 |  | init
 | ) | sCSV_CreateBin(bin, init)

创建二值信号量

参数
[in] bin 二值信号量名称
[in] init 二值信号量初始值
false（0）：已上锁，无法立即成功获取
true（1） ：已解锁，可以立即成功获取
返回
无
注解
当用于互斥访问时，初始值应为true。

在文件 ur_api.h 第 903 行定义.

#define uExternBin ( bin ) sCSV_ExternBin(bin)

声明二值信号量

参数
[in] bin 二值信号量名称
返回
无

在文件 ur_api.h 第 892 行定义.

#define uGiveBin ( bin ) sUSV_GiveBin(bin)

给予二值信号量

专用于事件同步。

参数
[in] bin 二值信号量名称
返回
无
注解
同型服务：
tGiveBin(bin)。
iGiveBin(bin)。
pGiveBin(bin)。

在文件 ur_api.h 第 941 行定义.

#define uLockBin ( bin ) bin.binary = false

上锁二值信号量

用于终止线程的无限同步。

参数
[in] bin 二值信号量名称
返回
无
注解
同型服务：
tLockBin(bin)。
iLockBin(bin)。
pLockBin(bin)。

在文件 ur_api.h 第 915 行定义.

#define uTakeBin | ( | bin,
 |  | tc
 | ) | sUSV_TakeBin(bin, tc)

获取二值信号量

用于事件同步或互斥访问。

参数
[in] bin 二值信号量名称
[in] tc 滴答周期（超时时间）
+0：立即返回
~0：无限等待
返回
结果（bool）
返回值
false | 失败
true | 成功
注解
同型服务：
tTakeBin(bin)。
iTakeBin(bin)。
警告
任务中获取，不支持在临界区中，包括任务临界区、服务层临界区、全局临界区，或关闭总中断时调用。

在文件 ur_api.h 第 958 行定义.

#define uWaitBin | ( | bin,
 |  | tc
 | ) | sUSV_WaitBin(bin, tc)

等待二值信号量

在指定的超时时间内等待二值信号量为真，适用于任务的无限同步，与获取的区别是不上锁。

参数
[in] bin 二值信号量名称
[in] tc 滴答周期（超时时间）
+0：立即返回
~0：无限等待
返回
结果（bool）
返回值
false | 失败
true | 成功
警告
不支持在临界区中，包括任务临界区、服务层临界区、全局临界区，或关闭总中断时调用。

在文件 ur_api.h 第 929 行定义.


CosyOS-III API用户参考手册: 计数信号量

宏定义
计数信号量
CosyOS_用户API

常用于事件同步、重入访问（资源管理），是唯一能够实现并发事件同步的手段。 更多...

计数信号量 的协作图:

宏定义

#define | uExternSem(sem) sCSV_ExternSem(sem)
声明计数信号量 更多...
#define | uCreateSem(sem, init, max) sCSV_CreateSem(sem, init, max)
创建计数信号量 更多...
#define | uGiveSem(sem) sUSV_GiveSem(sem)
给予计数信号量 更多...
#define | uTakeSem(sem, tc) sUSV_TakeSem(sem, tc)
获取计数信号量 更多...
#define | uBackSem(sem) uGiveSem(sem)
归还计数信号量 更多...

详细描述

常用于事件同步、重入访问（资源管理），是唯一能够实现并发事件同步的手段。

宏定义说明

#define uBackSem ( sem ) uGiveSem(sem)

归还计数信号量

参数
[in] sem 计数信号量名称
返回
无
注解
同型服务：
tBackSem(sem)。

在文件 ur_api.h 第 1028 行定义.

#define uCreateSem | ( | sem,
 |  | init,
 |  | max
 | ) | sCSV_CreateSem(sem, init, max)

创建计数信号量

参数
[in] | sem | 计数信号量名称
[in] | init | 计数信号量初始值
[in] | max | 计数信号量最大值
返回
无

在文件 ur_api.h 第 994 行定义.

#define uExternSem ( sem ) sCSV_ExternSem(sem)

声明计数信号量

参数
[in] sem 计数信号量名称
返回
无

在文件 ur_api.h 第 985 行定义.

#define uGiveSem ( sem ) sUSV_GiveSem(sem)

给予计数信号量

参数
[in] sem 计数信号量名称
返回
无
注解
同型服务：
tGiveSem(sem)。
iGiveSem(sem)。

在文件 ur_api.h 第 1004 行定义.

#define uTakeSem | ( | sem,
 |  | tc
 | ) | sUSV_TakeSem(sem, tc)

获取计数信号量

参数
[in] sem 计数信号量名称
[in] tc 滴答周期（超时时间）
+0：立即返回
~0：无限等待
返回
结果（bool）
返回值
false | 失败
true | 成功
注解
同型服务：
tTakeSem(sem)。
警告
任务中获取，不支持在临界区中，包括任务临界区、服务层临界区、全局临界区，或关闭总中断时调用。

在文件 ur_api.h 第 1019 行定义.


CosyOS-III API用户参考手册: 事件标志组

宏定义
事件标志组
CosyOS_用户API

适用于对一类事件的事件同步。 更多...

事件标志组 的协作图:

宏定义

#define | uExternFlagGroup(group, bits) sCSV_ExternFlagGroup(group, bits)
声明标志组 更多...
#define | uDefFlagBit(bit) sDefBitField(bit)
定义标志位 更多...
#define | uDefVoidBits(nvb) sDefVoidBits(nvb)
定义空位 更多...
#define | uCreateFlagGroup(group) sCSV_CreateFlagGroup(group)
创建标志组 更多...
#define | uWaitFlagGroup(group, tc) sUSV_WaitFlagGroup(group, tc)
等待标志组 更多...
#define | uQueryFlagGroup(group) sUSV_QueryFlagGroup(group)
查询标志组 更多...
#define | uClearFlagGroup(group) sUSV_ClearFlagGroup(group)
清除标志组 更多...
#define | uSetFlagBit(group, bit) uSetFlagBits(group, 1) bit)
设置标志位 更多...
#define | uClearFlagBit(group, bit) uClearFlagBits(group, 1) bit)
清除标志位 更多...
#define | uSetFlagBits(group, nbit) sUSV_WriteFlagBits(group, true, nbit)
设置多标志位 更多...
#define | uClearFlagBits(group, nbit) sUSV_WriteFlagBits(group, false, nbit)
清除多标志位 更多...

详细描述

适用于对一类事件的事件同步。

某一类事件，它的发生线程可能会有多个，均同步至同一个事件处理线程中统一处理该类事件。

注解
名词解释
组名：标志组的名称
位名：标志位的名称
空位：空标志位
查询标志位：任务、滴答、中断中，均直接查询。

宏定义说明

#define uClearFlagBit | ( | group,
 |  | bit
 | ) | uClearFlagBits(group, 1) bit)

清除标志位

参数
[in] | group | 组名
[in] | bit | 位名
返回
无
注解
同型服务：
tClearFlagBit(group, bit)。
iClearFlagBit(group, bit)。

在文件 ur_api.h 第 1131 行定义.

#define uClearFlagBits | ( | group,
 |  | nbit
 | ) | sUSV_WriteFlagBits(group, false, nbit)

清除多标志位

参数
[in] | group | 组名
[in] | nbit | 标志位的数量
[in] | add...) | 各位名，逗号间隔
返回
无
注解
同型服务：
tClearFlagBits(group, nbit)。
iClearFlagBits(group, nbit)。

在文件 ur_api.h 第 1155 行定义.

#define uClearFlagGroup ( group ) sUSV_ClearFlagGroup(group)

清除标志组

参数
[in] group 组名
返回
无
注解
同型服务：
tClearFlagGroup(group)。
iClearFlagGroup(group)。

在文件 ur_api.h 第 1109 行定义.

#define uCreateFlagGroup ( group ) sCSV_CreateFlagGroup(group)

创建标志组

参数
[in] | group | 组名
[in] | add={...} | 附加代码（赋初值）
返回
无

在文件 ur_api.h 第 1073 行定义.

#define uDefFlagBit ( bit ) sDefBitField(bit)

定义标志位

参数
[in] bit 位名
返回
无

在文件 ur_api.h 第 1058 行定义.

#define uDefVoidBits ( nvb ) sDefVoidBits(nvb)

定义空位

参数
[in] nvb 空位的数量
返回
无

在文件 ur_api.h 第 1065 行定义.

#define uExternFlagGroup | ( | group,
 |  | bits
 | ) | sCSV_ExternFlagGroup(group, bits)

声明标志组

参数
[in] | group | 组名
[in] | bits | 定义各标志位，分号间隔
返回
无

在文件 ur_api.h 第 1051 行定义.

#define uQueryFlagGroup ( group ) sUSV_QueryFlagGroup(group)

查询标志组

参数
[in] group 组名
返回
结果（bool）
返回值
false | 失败
true | 成功
注解
同型服务：
tQueryFlagGroup(group)。
iQueryFlagGroup(group)。

在文件 ur_api.h 第 1099 行定义.

#define uSetFlagBit | ( | group,
 |  | bit
 | ) | uSetFlagBits(group, 1) bit)

设置标志位

参数
[in] | group | 组名
[in] | bit | 位名
返回
无
注解
同型服务：
tSetFlagBit(group, bit)。
iSetFlagBit(group, bit)。

在文件 ur_api.h 第 1120 行定义.

#define uSetFlagBits | ( | group,
 |  | nbit
 | ) | sUSV_WriteFlagBits(group, true, nbit)

设置多标志位

参数
[in] | group | 组名
[in] | nbit | 标志位的数量
[in] | add...) | 各位名，逗号间隔
返回
无
注解
同型服务：
tSetFlagBits(group, nbit)。
iSetFlagBits(group, nbit)。

在文件 ur_api.h 第 1143 行定义.

#define uWaitFlagGroup | ( | group,
 |  | tc
 | ) | sUSV_WaitFlagGroup(group, tc)

等待标志组

参数
[in] group 组名
[in] tc 滴答周期（超时时间）
+0：立即返回
~0：无限等待
返回
结果（bool）
返回值
false | 失败
true | 成功
警告
不支持在临界区中，包括任务临界区、服务层临界区、全局临界区，或关闭总中断时调用。
事件的各个发生线程中设置标志位后，应调用 uClearBlock(task) 来手动完成事件同步。

在文件 ur_api.h 第 1087 行定义.


CosyOS-III API用户参考手册: 飞信

宏定义
飞信
CosyOS_用户API

原子类型、传输数据。 更多...

飞信 的协作图:

宏定义

#define | uExternTionbox(tbox) sCSV_ExternTionbox(tbox)
声明信箱 更多...
#define | uCreateTionbox(tbox) sCSV_CreateTionbox(tbox)
创建信箱 更多...
#define | uRecvFetion(tbox, tc) sUSV_RecvFetion(tbox, tc)
接收飞信

别名
uRecvFet 更多...
#define | uSendFetion(tbox, tion) sUSV_SendFetion(tbox, tion)
发送飞信

别名
uSendFet 更多...

详细描述

原子类型、传输数据。

仅使用一个变量，同时即是消息，又是新消息标志。
飞信为0时，表示无消息；飞信非0时，表示有消息；
因此：

警告
用户传输的有效消息必须为真值。
注解
架构 数据类型
8051 uint8_t
80251 uint16_t
Arm32 uint32_t
通用别名 m_fetion_t

宏定义说明

#define uCreateTionbox ( tbox ) sCSV_CreateTionbox(tbox)

创建信箱

参数
[in] tbox 信箱名称
返回
无

在文件 ur_api.h 第 1187 行定义.

#define uExternTionbox ( tbox ) sCSV_ExternTionbox(tbox)

声明信箱

参数
[in] tbox 信箱名称
返回
无

在文件 ur_api.h 第 1180 行定义.

#define uRecvFetion | ( | tbox,
 |  | tc
 | ) | sUSV_RecvFetion(tbox, tc)

接收飞信

别名
uRecvFet

参数
[in] tbox 信箱名称
[in] tc 滴答周期（超时时间）
+0：立即返回
~0：无限等待
返回
飞信（m_fetion_t）
返回值
false 无飞信
注解
同型服务：
tRecvFetion(tbox) / tRecvFet。
iRecvFetion(tbox) / iRecvFet。
警告
任务中接收，不支持在临界区中，包括任务临界区、服务层临界区、全局临界区，或关闭总中断时调用。

在文件 ur_api.h 第 1206 行定义.

#define uSendFetion | ( | tbox,
 |  | tion
 | ) | sUSV_SendFetion(tbox, tion)

发送飞信

别名
uSendFet

参数
[in] | tbox | 信箱名称
[in] | tion | 飞信
返回
无
注解
同型服务：
tSendFetion(tbox, tion) / tSendFet。
iSendFetion(tbox, tion) / iSendFet。

在文件 ur_api.h 第 1221 行定义.


CosyOS-III API用户参考手册: 消息邮箱

宏定义
消息邮箱
CosyOS_用户API

任意类型、传输指针。 更多...

消息邮箱 的协作图:

宏定义

#define | uExternMailbox(mbox) sCSV_ExternMailbox(mbox)
声明邮箱 更多...
#define | uCreateMailbox(mbox) sCSV_CreateMailbox(mbox)
创建邮箱 更多...
#define | uRecvMail(mbox, tc) sUSV_RecvMail(mbox, tc)
接收邮件 更多...
#define | uSendMail(mbox, mail) sUSV_SendMail(mbox, mail)
发送邮件 更多...

详细描述

任意类型、传输指针。

宏定义说明

#define uCreateMailbox ( mbox ) sCSV_CreateMailbox(mbox)

创建邮箱

参数
[in] mbox 邮箱名称
返回
无

在文件 ur_api.h 第 1244 行定义.

#define uExternMailbox ( mbox ) sCSV_ExternMailbox(mbox)

声明邮箱

参数
[in] mbox 邮箱名称
返回
无

在文件 ur_api.h 第 1237 行定义.

#define uRecvMail | ( | mbox,
 |  | tc
 | ) | sUSV_RecvMail(mbox, tc)

接收邮件

参数
[in] mbox 邮箱名称
[in] tc 滴答周期（超时时间）
+0：立即返回
~0：无限等待
返回
邮件指针（void *）
返回值
NULL 无邮件
注解
同型服务：
tRecvMail(mbox)。
iRecvMail(mbox)。
警告
任务中接收，不支持在临界区中，包括任务临界区、服务层临界区、全局临界区，或关闭总中断时调用。

在文件 ur_api.h 第 1259 行定义.

#define uSendMail | ( | mbox,
 |  | mail
 | ) | sUSV_SendMail(mbox, mail)

发送邮件

参数
[in] | mbox | 邮箱名称
[in] | mail | 邮件指针
返回
无
注解
同型服务：
tSendMail(mbox, mail)。
iSendMail(mbox, mail)。

在文件 ur_api.h 第 1270 行定义.


CosyOS-III API用户参考手册: 消息队列

宏定义
消息队列
CosyOS_用户API

任意类型、传输指针，是唯一能够实现并发消息同步的手段。 更多...

消息队列 的协作图:

宏定义

#define | uExternQueue_Static(que) sCSV_ExternQueue_Static(que)
声明静态队列 更多...
#define | uExternQueue_Dynamic(que) sCSV_ExternQueue_Dynamic(que)
声明动态队列 更多...
#define | uCreateQueue_Static(que, mode, len) sCSV_CreateQueue_Static(que, mode, len)
创建静态队列 更多...
#define | uCreateQueue_Dynamic(que, mode, len) sCSV_CreateQueue_Dynamic(que, mode, len)
创建动态队列 更多...
#define | uRecvMsg(que, tc) sUSV_RecvMsg(que, tc)
接收消息 更多...
#define | uSendMsg(que, msg) sUSV_SendMsg(que, msg)
发送消息 更多...

详细描述

任意类型、传输指针，是唯一能够实现并发消息同步的手段。

消息队列包括静态队列和动态队列。
静态队列：收发消息的效率高，队列占用固定的内存；
动态队列：收发消息的效率低，接收消息后，队列内存可被回收。

注解
每个队列，用户应当自己明确消息的类型和size，此事与OS无关。

宏定义说明

#define uCreateQueue_Dynamic | ( | que,
 |  | mode,
 |  | len
 | ) | sCSV_CreateQueue_Dynamic(que, mode, len)

创建动态队列

参数
[in] | que | 队列名称
[in] mode 传输模式
0：FIFO（先入先出）
1：LIFO（后入先出）
[in] | len | 队列长度
返回
无

在文件 ur_api.h 第 1319 行定义.

#define uCreateQueue_Static | ( | que,
 |  | mode,
 |  | len
 | ) | sCSV_CreateQueue_Static(que, mode, len)

创建静态队列

参数
[in] | que | 队列名称
[in] mode 传输模式
0：FIFO（先入先出）
1：LIFO（后入先出）
[in] | len | 队列长度
返回
无

在文件 ur_api.h 第 1308 行定义.

#define uExternQueue_Dynamic ( que ) sCSV_ExternQueue_Dynamic(que)

声明动态队列

参数
[in] que 队列名称
返回
无

在文件 ur_api.h 第 1297 行定义.

#define uExternQueue_Static ( que ) sCSV_ExternQueue_Static(que)

声明静态队列

参数
[in] que 队列名称
返回
无

在文件 ur_api.h 第 1290 行定义.

#define uRecvMsg | ( | que,
 |  | tc
 | ) | sUSV_RecvMsg(que, tc)

接收消息

参数
[in] que 队列名称
[in] tc 滴答周期（超时时间）
+0：立即返回
~0：无限等待
返回
消息指针（void *）
返回值
NULL 无消息
注解
同型服务：
tRecvMsg(que)。
iRecvMsg(que)。
警告
任务中接收，不支持在临界区中，包括任务临界区、服务层临界区、全局临界区，或关闭总中断时调用。
中断中接收，队列只能是静态队列，消息缓存只能是静态缓存。

在文件 ur_api.h 第 1335 行定义.

#define uSendMsg | ( | que,
 |  | msg
 | ) | sUSV_SendMsg(que, msg)

发送消息

参数
[in] | que | 队列名称
[in] | msg | 消息指针
返回
错误码（s_ecode_t）
返回值
OS_ECODE_NOERROR | 无错误
ECODE_OVERFLOW_MSGQUEUE | 消息队列溢出
ECODE_MALLOCFAIL_MSGNODE | 消息节点内存分配失败
注解
同型服务：
tSendMsg(que, msg)，同返回。
iSendMsg(que, msg)，无返回。
警告
中断中发送，消息缓存只能是静态缓存。

在文件 ur_api.h 第 1350 行定义.


CosyOS-III API用户参考手册: 全局变量访问

宏定义
全局变量访问
CosyOS_用户API

由CosyOS内核提供服务支持，可实现在任务、滴答、中断中，对非原子 全局变量的安全访问，同时不会破坏零中断延迟。 更多...

全局变量访问 的协作图:

宏定义

#define | xUpdateCopy(code) sUpdateCopy(code)
更新全局变量副本 更多...
#define | iWhichGVar_Read() s_sign_updatecopy
读哪一个全局变量？ 更多...
#define | iWriteGVar(gv, lv) sPSV_WriteGVar((void *)&gv, (void *)&lv, sizeof(gv))
写全局变量 更多...
#define | iWriteGAry(gp, lp, size) sPSV_WriteGVar(gp, lp, size)
写全局数组 更多...
#define | iWriteGStr(gs, ls) sPSV_WriteGVar(gs, ls, 0)
写全局字符串 更多...
#define | iPendSVC(fp) sPSV_PendSVC(fp)
挂起服务调用 更多...
#define | iSendSign(sign) sPSV_SendSign(sign)
发送信号 更多...

详细描述

由CosyOS内核提供服务支持，可实现在任务、滴答、中断中，对非原子 全局变量的安全访问，同时不会破坏零中断延迟。

宏定义说明

#define iPendSVC ( fp ) sPSV_PendSVC(fp)

挂起服务调用

参数
[in] fp 函数指针
返回
无

在文件 ur_api.h 第 1408 行定义.

#define iSendSign ( sign ) sPSV_SendSign(sign)

发送信号

参数
[in] sign 信号名称
返回
无

在文件 ur_api.h 第 1415 行定义.

#define iWhichGVar_Read ( ) s_sign_updatecopy

读哪一个全局变量？

参数
无
返回
结果（bool）
返回值
true | 读正本
false | 读副本

在文件 ur_api.h 第 1376 行定义.

#define iWriteGAry | ( | gp,
 |  | lp,
 |  | size
 | ) | sPSV_WriteGVar(gp, lp, size)

写全局数组

参数
[in] | gp | 全局数组指针
[in] | lp | 局部数组指针
[in] | size | 拷贝的大小（字节数）
返回
无

在文件 ur_api.h 第 1393 行定义.

#define iWriteGStr | ( | gs,
 |  | ls
 | ) | sPSV_WriteGVar(gs, ls, 0)

写全局字符串

参数
[in] | gs | 全局字符串指针
[in] | ls | 局部字符串指针
返回
无

在文件 ur_api.h 第 1401 行定义.

#define iWriteGVar | ( | gv,
 |  | lv
 | ) | sPSV_WriteGVar((void *)&gv, (void *)&lv, sizeof(gv))

写全局变量

参数
[in] | gv | 全局变量名称
[in] | lv | 局部变量名称
返回
无

在文件 ur_api.h 第 1384 行定义.

#define xUpdateCopy ( code ) sUpdateCopy(code)

更新全局变量副本

参数
[in] code 更新副本的代码
返回
无

在文件 ur_api.h 第 1367 行定义.


CosyOS-III API用户参考手册: 软件RTC

宏定义
软件RTC
CosyOS_用户API

适用于没有硬件RTC的物联网终端设备。 更多...

软件RTC 的协作图:

宏定义

#define | uGetTime(t) sUSV_GetTime(t)
获取时间 更多...
#define | uSetTime(t) sUSV_SetTime(t)
设置时间 更多...

详细描述

适用于没有硬件RTC的物联网终端设备。

注解
实际应用中，可每间隔一段时间（如一小时）同步一次网络时间，以校正误差。

宏定义说明

#define uGetTime ( t ) sUSV_GetTime(t)

获取时间

参数
[in] t 本地时间的指针（s_rtc_ts）
返回
本地时间的指针
注解
同型服务：
tGetTime(t)。
iGetTime(t)。

在文件 ur_api.h 第 1435 行定义.

#define uSetTime ( t ) sUSV_SetTime(t)

设置时间

参数
[in] t 本地时间的指针（s_rtc_ts）
返回
无
注解
同型服务：
tSetTime(t)。
iSetTime(t)。

在文件 ur_api.h 第 1445 行定义.


CosyOS-III API用户参考手册: 动态内存

模块
动态内存
CosyOS_用户API
动态内存 的协作图:

模块

进程内存
以进程为单位初始化内存池，各进程独享自己的内存池。
线程内存
以线程为单位初始化内存池，各线程独享自己的内存池。

详细描述

制作者 doxygen 1.8.10


CosyOS-III API用户参考手册: 进程内存

宏定义
进程内存
CosyOS_用户API » 动态内存

以进程为单位初始化内存池，各进程独享自己的内存池。 更多...

进程内存 的协作图:

宏定义

#define | uMalloc(size) sUSV_Malloc(size)
malloc 更多...
#define | uCalloc(nmemb, size) sUSV_Calloc(nmemb, size)
calloc 更多...
#define | uRealloc(p, size) sUSV_Realloc(p, size)
realloc 更多...
#define | uFree(p) sUSV_Free(p)
free 更多...

详细描述

以进程为单位初始化内存池，各进程独享自己的内存池。

宏定义说明

#define uCalloc | ( | nmemb,
 |  | size
 | ) | sUSV_Calloc(nmemb, size)

calloc

在进程内存池或堆中连续分配多块内存。

参数
[in] | nmemb | 内存块的数量
[in] | size | 内存块的大小（字节数）
返回
分配的指针（void MALLOC_MEM *）
返回值
NULL 内存分配失败

在文件 ur_api.h 第 1479 行定义.

#define uFree ( p ) sUSV_Free(p)

free

参数
[in] p 释放的指针
返回
无

在文件 ur_api.h 第 1496 行定义.

#define uMalloc ( size ) sUSV_Malloc(size)

malloc

在进程内存池或堆中分配一块内存。

参数
[in] size 内存块的大小（字节数）
返回
分配的指针（void MALLOC_MEM *）
返回值
NULL 内存分配失败

在文件 ur_api.h 第 1469 行定义.

#define uRealloc | ( | p,
 |  | size
 | ) | sUSV_Realloc(p, size)

realloc

重新分配内存。

参数
[in] | p | 预重分配的指针
[in] | size | 预重分配的大小（字节数）
返回
分配的指针（void MALLOC_MEM *）
返回值
NULL 内存分配失败

在文件 ur_api.h 第 1489 行定义.


CosyOS-III API用户参考手册: 线程内存

宏定义
线程内存
CosyOS_用户API » 动态内存

以线程为单位初始化内存池，各线程独享自己的内存池。 更多...

线程内存 的协作图:

宏定义

#define | uCreateMempool() sCSV_CreateMempool()
创建线程内存池 更多...
#define | uInitMempool(size) sUSV_InitMempool(size)
初始化线程内存池 更多...
#define | uTalloc(size) sUSV_Talloc(size)
线程内存分配 更多...
#define | uFreeMempool() sUSV_FreeMempool()
释放线程内存池 更多...

详细描述

以线程为单位初始化内存池，各线程独享自己的内存池。

注解
线程内存的分配效率远高于进程内存，因为每一次调用uTalloc都是在自己的线程内存池中直接按序分配内存。
在某线程中，如果需要多次动态内存分配，可考虑采用线程内存以提高性能。
线程内存的应用法则：当所有uTalloc的内存都可以释放时，再一次性释放所有内存（线程内存池）。

宏定义说明

#define uCreateMempool ( ) sCSV_CreateMempool()

创建线程内存池

实为定义变量（线程内存控制块），C89模式时可考虑在线程的开始处创建。

参数
无
返回
无

在文件 ur_api.h 第 1516 行定义.

#define uFreeMempool ( ) sUSV_FreeMempool()

释放线程内存池

参数
无
返回
无

在文件 ur_api.h 第 1542 行定义.

#define uInitMempool ( size ) sUSV_InitMempool(size)

初始化线程内存池

实质上是通过调用malloc，从进程内存池或堆中分配一块内存来做为线程内存池。

参数
[in] size 线程内存池的大小（字节数）
返回
结果（bool）
返回值
false | 失败
true | 成功

在文件 ur_api.h 第 1526 行定义.

#define uTalloc ( size ) sUSV_Talloc(size)

线程内存分配

在线程内存池中分配一块内存。

参数
[in] size 内存块的大小（字节数）
返回
分配的指针（void MALLOC_MEM *）
返回值
NULL 内存分配失败

在文件 ur_api.h 第 1535 行定义.


CosyOS-III API用户参考手册: 临界区

模块
临界区
CosyOS_用户API
临界区 的协作图:

模块

调度锁（任务临界区）
通过上锁任务调度器的方式，实现任务级的临界区保护，仅支持在任务中调用。
内核锁（服务层临界区）
OS内核级的临界区保护，会关闭系统中断（SysTick、PendSV），仅支持在任务中调用。
中断锁（全局临界区）
全局的临界区保护，通常会关闭总中断，支持在任意处调用。

详细描述

注解
CosyOS的临界区包括任务临界区、服务层临界区、全局临界区，均支持嵌套使用。
各临界区之间也可随意互相嵌套，但通常推荐在任务临界区中嵌套服务层临界区，
在服务层临界区中嵌套全局临界区，以逐步扩大保护范围。


CosyOS-III API用户参考手册: 调度锁（任务临界区）

宏定义
调度锁（任务临界区）
CosyOS_用户API » 临界区

通过上锁任务调度器的方式，实现任务级的临界区保护，仅支持在任务中调用。 更多...

调度锁（任务临界区） 的协作图:

宏定义

#define | uScheduleLock() su_schedule_locks()
调度上锁（进入任务临界区） 更多...
#define | uScheduleUnlock() su_schedule_unlocks()
调度解锁（退出任务临界区） 更多...

详细描述

通过上锁任务调度器的方式，实现任务级的临界区保护，仅支持在任务中调用。

注解
仅是上锁任务调度器，不关闭系统中断（SysTick、PendSV），所以即使是长时间的、
对大段的任务级公共资源的独占访问，也不会影响系统节拍的精度和内核服务的执行。
调度锁支持嵌套使用，最大嵌套深度255，调度上锁与调度解锁必须配对使用。
调度锁不会破坏零中断延迟，当需要任务级的临界区保护时，可以考虑。

宏定义说明

#define uScheduleLock ( ) su_schedule_locks()

调度上锁（进入任务临界区）

参数
无
返回
无

在文件 ur_api.h 第 1571 行定义.

#define uScheduleUnlock ( ) su_schedule_unlocks()

调度解锁（退出任务临界区）

参数
无
返回
无

在文件 ur_api.h 第 1578 行定义.


CosyOS-III API用户参考手册: 内核锁（服务层临界区）

宏定义
内核锁（服务层临界区）
CosyOS_用户API » 临界区

OS内核级的临界区保护，会关闭系统中断（SysTick、PendSV），仅支持在任务中调用。 更多...

内核锁（服务层临界区） 的协作图:

宏定义

#define | uKernelLock() su_kernel_locks()
内核上锁（进入服务层临界区） 更多...
#define | uKernelUnlock() su_kernel_unlocks()
内核解锁（退出服务层临界区） 更多...

详细描述

OS内核级的临界区保护，会关闭系统中断（SysTick、PendSV），仅支持在任务中调用。

注解
由 系统滴答、PendSV、内核锁，共同组成大的服务层临界区，当处理得当时，可实现全局的临界区保护。
实现过程：
任务中：对内核上锁后访问。
滴答中：直接访问即可。
中断中：采用中断挂起服务。
内核锁支持嵌套使用，最大嵌套深度255，内核上锁与内核解锁必须配对使用。
内核锁不会破坏零中断延迟，当需要全局的临界区保护时，应首先予以考虑。
内核锁应遵循快进快出的原则，临界段代码的执行时间应远小于系统滴答周期，否则可能会导致
丢失系统节拍、延误中断挂起服务和滴答服务的执行，对系统实时性造成不利影响。
当在任务中对事件标志组进行 设置位、清除位 等操作时，需采用内核锁。
当在任务中访问非原子全局变量时（包括读访问、写访问、自运算），
可采用内核锁实现全局的临界区保护（参见 全局变量访问示例）。

宏定义说明

#define uKernelLock ( ) su_kernel_locks()

内核上锁（进入服务层临界区）

参数
无
返回
无

在文件 ur_api.h 第 1606 行定义.

#define uKernelUnlock ( ) su_kernel_unlocks()

内核解锁（退出服务层临界区）

参数
无
返回
无

在文件 ur_api.h 第 1613 行定义.


CosyOS-III API用户参考手册: 中断锁（全局临界区）

模块
中断锁（全局临界区）
CosyOS_用户API » 临界区

全局的临界区保护，通常会关闭总中断，支持在任意处调用。 更多...

中断锁（全局临界区） 的协作图:

模块

操作-PRIMASK
操作-BASEPRI

详细描述

全局的临界区保护，通常会关闭总中断，支持在任意处调用。

注解
CosyOS内核中从来不会关闭总中断，提供此项服务只是为了便于用户
对全局公共资源和程序过程的保护。
全局临界区会破坏零中断延迟，应做为最后的选项，慎重使用。


CosyOS-III API用户参考手册: 操作-PRIMASK

宏定义
操作-PRIMASK
CosyOS_用户API » 临界区 » 中断锁（全局临界区）
操作-PRIMASK 的协作图:

宏定义

#define | xDisableIRQ() mxDisableIRQ()
进入全局临界区 更多...
#define | xResumeIRQ(oirq) mxResumeIRQ(oirq)
退出全局临界区 更多...

详细描述

注解
支持嵌套使用，进入临界区与退出临界区必须配对使用。

宏定义说明

#define xDisableIRQ ( ) mxDisableIRQ()

进入全局临界区

参数
无
返回
oirq PRIMASK上一次的值（uint32_t类型）

在文件 ur_api.h 第 1662 行定义.

#define xResumeIRQ ( oirq ) mxResumeIRQ(oirq)

退出全局临界区

参数
[in] oirq PRIMASK上一次的值（uint32_t类型）
返回
无

在文件 ur_api.h 第 1669 行定义.


CosyOS-III API用户参考手册: 操作-BASEPRI

宏定义
操作-BASEPRI
CosyOS_用户API » 临界区 » 中断锁（全局临界区）
操作-BASEPRI 的协作图:

宏定义

#define | xMaskingPRI(npri) mxMaskingPRI(npri)
进入全局临界区 更多...
#define | xResumePRI(opri) mxResumePRI(opri)
退出全局临界区 更多...

详细描述

注解
使用条件：
1、MCU必须有 BASEPRI 寄存器；
2、MCU配置中，系统中断配置必须选择 TIMn_IRQHandler + XXX_IRQHandler。
使用说明：
1、关于npri，例如中断优先级分组选择 NVIC_PriorityGoup_4，那么中断优先级从高到低为 0~15。
如果需要掩蔽（3~15）的中断，npri应输入3。
2、支持嵌套使用，进入临界区与退出临界区必须配对使用。
3、嵌套使用时，仅能逐步扩大掩蔽范围（npri越来越小），否则新的掩蔽范围不会生效（将维持上一次的掩蔽范围）。

宏定义说明

#define xMaskingPRI ( npri ) mxMaskingPRI(npri)

进入全局临界区

参数
[in] npri 掩蔽范围的最高优先级的优先级号（uint32_t类型）
返回
opri BASEPRI的原值（uint32_t类型）

在文件 ur_api.h 第 1692 行定义.

#define xResumePRI ( opri ) mxResumePRI(opri)

退出全局临界区

参数
[in] opri BASEPRI的原值（uint32_t类型）
返回
无

在文件 ur_api.h 第 1699 行定义.


CosyOS-III API用户参考手册: 杂项

模块 | 宏定义
杂项
CosyOS_用户API
杂项 的协作图:

模块

DEBUG
DEBUG接口，串口发送与接收的实现。
时间单位转换
把其它单位的时间转换为滴答周期。

宏定义

#define iPendSV_Set() mPendSV_Set()
触发PendSV 更多...

详细描述

宏定义说明

#define iPendSV_Set ( ) mPendSV_Set()

触发PendSV

在用户中断中，当采用中断挂起服务FLAG队列执行服务时，用户在设置标志位后，
需手动触发PendSV，而后在 pendsv_hook() 中执行服务。

参数
无
返回
无

在文件 ur_api.h 第 1783 行定义.


CosyOS-III API用户参考手册: DEBUG

宏定义
DEBUG
CosyOS_用户API » 杂项

DEBUG接口，串口发送与接收的实现。 更多...

DEBUG 的协作图:

宏定义

#define | xDebugSend_Complete() s_sign_debugsend = true
DEBUG发送完成 更多...
#define | xDebugRecv_Handler(p, len)
DEBUG接收解析 更多...

详细描述

DEBUG接口，串口发送与接收的实现。

宏定义说明

#define xDebugRecv_Handler | ( | p,
 |  | len
 | ) |
值:
do{ \
s_debug_recvptr = p; \
s_debug_recvlen = len; \
}while(false)

DEBUG接收解析

参数
[in] | p | 接收缓存的开始指针
[in] | len | 接收数据包的长度
返回
无

在文件 ur_api.h 第 1731 行定义.

#define xDebugSend_Complete ( ) s_sign_debugsend = true

DEBUG发送完成

参数
无
返回
无

在文件 ur_api.h 第 1723 行定义.


CosyOS-III API用户参考手册: 时间单位转换

宏定义
时间单位转换
CosyOS_用户API » 杂项

把其它单位的时间转换为滴答周期。 更多...

时间单位转换 的协作图:

宏定义

#define | xTick_ms(ms) ((1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
毫秒转换为滴答周期 更多...
#define | xTick_s(s) xTick_ms(1000UL * (s))
秒钟转换为滴答周期 更多...
#define | xTick_m(m) xTick_s(60UL * (m))
分钟转换为滴答周期 更多...
#define | xTick_h(h) xTick_m(60UL * (h))
小时转换为滴答周期 更多...

详细描述

把其它单位的时间转换为滴答周期。

宏定义说明

#define xTick_h ( h ) xTick_m(60UL * (h))

小时转换为滴答周期

参数
[in] h 小时
返回
滴答周期

在文件 ur_api.h 第 1772 行定义.

#define xTick_m ( m ) xTick_s(60UL * (m))

分钟转换为滴答周期

参数
[in] m 分钟
返回
滴答周期

在文件 ur_api.h 第 1765 行定义.

#define xTick_ms ( ms ) ((1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)

毫秒转换为滴答周期

参数
[in] ms 毫秒
返回
滴答周期

在文件 ur_api.h 第 1751 行定义.

#define xTick_s ( s ) xTick_ms(1000UL * (s))

秒钟转换为滴答周期

参数
[in] s 秒钟
返回
滴答周期

在文件 ur_api.h 第 1758 行定义.


CosyOS-III API用户参考手册: 文件列表

  • 文件列表
  • 全局定义
文件列表
这里列出了所有文件，并附带简要说明:
[详情级别 1234]
▼ E: |
▼ Keil Projects |
▼ book |
ur_api.h | 用户API
ur_eapi.h | 用户API扩展


CosyOS-III API用户参考手册: E: 目录参考

  • E:
E: 目录参考
E: 的目录依赖关系图

目录

目录 Keil Projects


CosyOS-III API用户参考手册: E:/Keil Projects 目录参考

  • E:
  • Keil Projects
Keil Projects 目录参考
Keil Projects 的目录依赖关系图

目录

目录 book


CosyOS-III API用户参考手册: E:/Keil Projects/book 目录参考

  • E:
  • Keil Projects
  • book
book 目录参考
book 的目录依赖关系图

文件

文件 | ur_api.h [代码]
用户API
文件 | ur_eapi.h [代码]
用户API扩展


CosyOS-III API用户参考手册: E:/Keil Projects/book/ur_api.h 文件参考

  • 文件列表
  • 全局定义
  • E:
  • Keil Projects
  • book
宏定义 | 函数
ur_api.h 文件参考

用户API 更多...

浏览源代码.

宏定义

#define | uExtTask(task) sCSV_ExtTask(task)
简化声明静态任务 更多...
#define | dExtTask(task) dCSV_ExtTask(task)
简化声明动态任务 更多...
#define | uExternTask(task) sCSV_ExternTask(task)
完整声明静态任务 更多...
#define | dExternTask(task) dCSV_ExternTask(task)
完整声明动态任务 更多...
#define | uCreateTask(task, pri, tss, srt, res) sCSV_CreateTask(task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
静态创建一般任务 更多...
#define | dCreateTask(task, pri, tss, srt, res) dCSV_CreateTask(task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
动态创建一般任务 更多...
#define | uCreateTask_TimInt(tmid, arl, task, pri, tss, srt, res) sCSV_CreateTask_TimInt(tmid, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
静态创建定时中断任务 更多...
#define | dCreateTask_TimInt(tmid, arl, task, pri, tss, srt, res) dCSV_CreateTask_TimInt(tmid, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
动态创建定时中断任务 更多...
#define | uCreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, res) sCSV_CreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
静态创建定时查询任务 更多...
#define | dCreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, res) dCSV_CreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
动态创建定时查询任务 更多...
#define | uStartTask(task, status) sUSV_StartTask(&u_taskhand_##task, status)
启动任务 更多...
#define | uStartTask_Ready(task) uStartTask(task, OS_STATUS_READY)
启动任务并就绪 更多...
#define | uStartTask_Block(task) uStartTask(task, OS_STATUS_BLOCKED)
启动任务并阻塞 更多...
#define | uStartTask_Suspend(task) uStartTask(task, OS_STATUS_SUSPENDED)
启动任务并挂起 更多...
#define | tClearDelay() sTSV_ClearDelay()
清除就绪延时 更多...
#define | uResumeTask(task) sUSV_ResumeTask(u_taskhandle_##task)
恢复任务 更多...
#define | uSuspendTask(task) sUSV_SuspendTask(u_taskhandle_##task)
挂起任务 更多...
#define | uDeleteTask(task) sUSV_DeleteTask(u_taskhandle_##task)
删除任务 更多...
#define | uSetTaskPri(task, npri) sUSV_SetTaskPri(u_taskhandle_##task, npri)
设置任务优先级 更多...
#define | uClearBlock(task) sUSV_ClearBlock(u_taskhandle_##task)
清除阻塞（状态） 更多...
#define | uSetBlock_tc(task, tc) sUSV_SetBlock(u_taskhandle_##task, tc)
设置阻塞-滴答周期 更多...
#define | uSetBlock_ms(task, ms) uSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
设置阻塞-毫秒 更多...
#define | uSetBlock_s(task, s) uSetBlock_ms(task, 1000UL * (s))
设置阻塞-秒钟 更多...
#define | uSetBlock_m(task, m) uSetBlock_s(task, 60UL * (m))
设置阻塞-分钟 更多...
#define | uSetBlock_h(task, h) uSetBlock_m(task, 60UL * (h))
设置阻塞-小时 更多...
#define | uYieldTasking() su_yield_tasking()
禅让任务 更多...
#define | uSetTaskingPri(npri) sUSV_SetTaskPri(s_task_current, npri)
设置自身任务优先级 更多...
#define | uSuspendTasking() sUSV_SuspendTask(s_task_current)
挂起自身任务 更多...
#define | uDeleteTasking() sUSV_DeleteTask(s_task_current)
删除自身任务 更多...
#define | uResumeSuspend(task) sUSV_ResumeSuspend(u_taskhandle_##task)
恢复指定任务并挂起自身任务 更多...
#define | uDelay_tc(tc) sUSV_Delay(tc)
延时-滴答周期 更多...
#define | uDelay_ms(ms) uDelay_tc((1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
延时-毫秒 更多...
#define | uDelay_s(s) uDelay_ms(1000UL * (s))
延时-秒钟 更多...
#define | uDelay_m(m) uDelay_s(60UL * (m))
延时-分钟 更多...
#define | uDelay_h(h) uDelay_m(60UL * (h))
延时-小时 更多...
#define | uCreateHook_TimInt(tmid, arl, hook) sCSV_CreateHook_TimInt(tmid, arl, hook)
创建定时中断钩子 更多...
#define | uTimInt_tc(tmid, tc) sUSV_TimInt(tmid, tc)
定时中断-滴答周期 更多...
#define | uTimInt_ms(tmid, ms) uTimInt_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
定时中断-毫秒 更多...
#define | uTimInt_s(tmid, s) uTimInt_ms(tmid, 1000UL * (s))
定时中断-秒钟 更多...
#define | uTimInt_m(tmid, m) uTimInt_s(tmid, 60UL * (m))
定时中断-分钟 更多...
#define | uTimInt_h(tmid, h) uTimInt_m(tmid, 60UL * (h))
定时中断-小时 更多...
#define | uTimInt_Cancel(tmid) uTimInt_tc(tmid, 0)
终止定时中断 更多...
#define | xTimInt_AutoReload(tmid, arl) s_timint_autoreload[tmid] = arl
定时中断定时器自动重装载 更多...
#define | uCreateHook_TimQry(tmid, event, arl, hook) sCSV_CreateHook_TimQry(tmid, event, arl, hook)
创建定时查询钩子 更多...
#define | uTimQry_tc(tmid, tc) sUSV_TimQry(tmid, tc)
定时查询-滴答周期 更多...
#define | uTimQry_ms(tmid, ms) uTimQry_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
定时查询-毫秒 更多...
#define | uTimQry_s(tmid, s) uTimQry_ms(tmid, 1000UL * (s))
定时查询-秒钟 更多...
#define | uTimQry_m(tmid, m) uTimQry_s(tmid, 60UL * (m))
定时查询-分钟 更多...
#define | uTimQry_h(tmid, h) uTimQry_m(tmid, 60UL * (h))
定时查询-小时 更多...
#define | uTimQry_Cancel(tmid) uTimQry_tc(tmid, ~0)
终止定时查询 更多...
#define | xTimQry_AutoReload(tmid, arl) s_timqry_autoreload[tmid] = arl
定时查询定时器自动重装载 更多...
#define | uExternMut(mut) sCSV_ExternMut(mut)
声明互斥信号量 更多...
#define | uCreateMut(mut) sCSV_CreateMut(mut)
创建互斥信号量 更多...
#define | uTakeMut(mut, tc) sUSV_TakeMut(mut, tc)
获取互斥信号量 更多...
#define | uBackMut(mut) sUSV_BackMut(mut)
归还互斥信号量 更多...
#define | uExternBin(bin) sCSV_ExternBin(bin)
声明二值信号量 更多...
#define | uCreateBin(bin, init) sCSV_CreateBin(bin, init)
创建二值信号量 更多...
#define | uLockBin(bin) bin.binary = false
上锁二值信号量 更多...
#define | uWaitBin(bin, tc) sUSV_WaitBin(bin, tc)
等待二值信号量 更多...
#define | uGiveBin(bin) sUSV_GiveBin(bin)
给予二值信号量 更多...
#define | uTakeBin(bin, tc) sUSV_TakeBin(bin, tc)
获取二值信号量 更多...
#define | uBackBin(bin) uGiveBin(bin)
归还二值信号量 更多...
#define | uExternSem(sem) sCSV_ExternSem(sem)
声明计数信号量 更多...
#define | uCreateSem(sem, init, max) sCSV_CreateSem(sem, init, max)
创建计数信号量 更多...
#define | uGiveSem(sem) sUSV_GiveSem(sem)
给予计数信号量 更多...
#define | uTakeSem(sem, tc) sUSV_TakeSem(sem, tc)
获取计数信号量 更多...
#define | uBackSem(sem) uGiveSem(sem)
归还计数信号量 更多...
#define | uExternFlagGroup(group, bits) sCSV_ExternFlagGroup(group, bits)
声明标志组 更多...
#define | uDefFlagBit(bit) sDefBitField(bit)
定义标志位 更多...
#define | uDefVoidBits(nvb) sDefVoidBits(nvb)
定义空位 更多...
#define | uCreateFlagGroup(group) sCSV_CreateFlagGroup(group)
创建标志组 更多...
#define | uWaitFlagGroup(group, tc) sUSV_WaitFlagGroup(group, tc)
等待标志组 更多...
#define | uQueryFlagGroup(group) sUSV_QueryFlagGroup(group)
查询标志组 更多...
#define | uClearFlagGroup(group) sUSV_ClearFlagGroup(group)
清除标志组 更多...
#define | uSetFlagBit(group, bit) uSetFlagBits(group, 1) bit)
设置标志位 更多...
#define | uClearFlagBit(group, bit) uClearFlagBits(group, 1) bit)
清除标志位 更多...
#define | uSetFlagBits(group, nbit) sUSV_WriteFlagBits(group, true, nbit)
设置多标志位 更多...
#define | uClearFlagBits(group, nbit) sUSV_WriteFlagBits(group, false, nbit)
清除多标志位 更多...
#define | uExternTionbox(tbox) sCSV_ExternTionbox(tbox)
声明信箱 更多...
#define | uCreateTionbox(tbox) sCSV_CreateTionbox(tbox)
创建信箱 更多...
#define | uRecvFetion(tbox, tc) sUSV_RecvFetion(tbox, tc)
接收飞信

别名
uRecvFet 更多...
#define | uSendFetion(tbox, tion) sUSV_SendFetion(tbox, tion)
发送飞信

别名
uSendFet 更多...
#define | uExternMailbox(mbox) sCSV_ExternMailbox(mbox)
声明邮箱 更多...
#define | uCreateMailbox(mbox) sCSV_CreateMailbox(mbox)
创建邮箱 更多...
#define | uRecvMail(mbox, tc) sUSV_RecvMail(mbox, tc)
接收邮件 更多...
#define | uSendMail(mbox, mail) sUSV_SendMail(mbox, mail)
发送邮件 更多...
#define | uExternQueue_Static(que) sCSV_ExternQueue_Static(que)
声明静态队列 更多...
#define | uExternQueue_Dynamic(que) sCSV_ExternQueue_Dynamic(que)
声明动态队列 更多...
#define | uCreateQueue_Static(que, mode, len) sCSV_CreateQueue_Static(que, mode, len)
创建静态队列 更多...
#define | uCreateQueue_Dynamic(que, mode, len) sCSV_CreateQueue_Dynamic(que, mode, len)
创建动态队列 更多...
#define | uRecvMsg(que, tc) sUSV_RecvMsg(que, tc)
接收消息 更多...
#define | uSendMsg(que, msg) sUSV_SendMsg(que, msg)
发送消息 更多...
#define | xUpdateCopy(code) sUpdateCopy(code)
更新全局变量副本 更多...
#define | iWhichGVar_Read() s_sign_updatecopy
读哪一个全局变量？ 更多...
#define | iWriteGVar(gv, lv) sPSV_WriteGVar((void *)&gv, (void *)&lv, sizeof(gv))
写全局变量 更多...
#define | iWriteGAry(gp, lp, size) sPSV_WriteGVar(gp, lp, size)
写全局数组 更多...
#define | iWriteGStr(gs, ls) sPSV_WriteGVar(gs, ls, 0)
写全局字符串 更多...
#define | iPendSVC(fp) sPSV_PendSVC(fp)
挂起服务调用 更多...
#define | iSendSign(sign) sPSV_SendSign(sign)
发送信号 更多...
#define | uGetTime(t) sUSV_GetTime(t)
获取时间 更多...
#define | uSetTime(t) sUSV_SetTime(t)
设置时间 更多...
#define | uMalloc(size) sUSV_Malloc(size)
malloc 更多...
#define | uCalloc(nmemb, size) sUSV_Calloc(nmemb, size)
calloc 更多...
#define | uRealloc(p, size) sUSV_Realloc(p, size)
realloc 更多...
#define | uFree(p) sUSV_Free(p)
free 更多...
#define | uCreateMempool() sCSV_CreateMempool()
创建线程内存池 更多...
#define | uInitMempool(size) sUSV_InitMempool(size)
初始化线程内存池 更多...
#define | uTalloc(size) sUSV_Talloc(size)
线程内存分配 更多...
#define | uFreeMempool() sUSV_FreeMempool()
释放线程内存池 更多...
#define | uScheduleLock() su_schedule_locks()
调度上锁（进入任务临界区） 更多...
#define | uScheduleUnlock() su_schedule_unlocks()
调度解锁（退出任务临界区） 更多...
#define | uKernelLock() su_kernel_locks()
内核上锁（进入服务层临界区） 更多...
#define | uKernelUnlock() su_kernel_unlocks()
内核解锁（退出服务层临界区） 更多...
#define | xDisableIRQ() mxDisableIRQ()
进入全局临界区 更多...
#define | xResumeIRQ(oirq) mxResumeIRQ(oirq)
退出全局临界区 更多...
#define | xMaskingPRI(npri) mxMaskingPRI(npri)
进入全局临界区 更多...
#define | xResumePRI(opri) mxResumePRI(opri)
退出全局临界区 更多...
#define | xDebugSend_Complete() s_sign_debugsend = true
DEBUG发送完成 更多...
#define | xDebugRecv_Handler(p, len)
DEBUG接收解析 更多...
#define | xTick_ms(ms) ((1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
毫秒转换为滴答周期 更多...
#define | xTick_s(s) xTick_ms(1000UL * (s))
秒钟转换为滴答周期 更多...
#define | xTick_m(m) xTick_s(60UL * (m))
分钟转换为滴答周期 更多...
#define | xTick_h(h) xTick_m(60UL * (h))
小时转换为滴答周期 更多...
#define | iPendSV_Set() mPendSV_Set()
触发PendSV 更多...

函数

s_ecode_t | uStartCosyOS (void)
启动-CosyOS 更多...
void | tCosyTick_Handler (void)
CosyOS-滴答 更多...

详细描述

用户API

CosyOS-III Kernel

用户API定义，含注释说明，所有内核服务的API说明均在此文件中，并支持doxygen。

作者
迟凯峰
版本
V1.2.8
日期
2025.06.24

在文件 ur_api.h 中定义.


CosyOS-III API用户参考手册: E:/Keil Projects/book/ur_eapi.h 文件参考

  • 文件列表
  • 全局定义
  • E:
  • Keil Projects
  • book
宏定义
ur_eapi.h 文件参考

用户API扩展 更多...

浏览源代码.

宏定义

#define | iClearDelay() sPSV_ClearDelay()
#define | pClearDelay() sPS2_ClearDelay()
#define | tResumeTask(task) sTSV_ResumeTask(u_taskhandle_##task)
#define | iResumeTask(task) sPSV_ResumeTask(u_taskhandle_##task)
#define | pResumeTask(task) sPS2_ResumeTask(u_taskhandle_##task)
#define | tSuspendTask(task) sTSV_SuspendTask(u_taskhandle_##task)
#define | iSuspendTask(task) sPSV_SuspendTask(u_taskhandle_##task)
#define | pSuspendTask(task) sPS2_SuspendTask(u_taskhandle_##task)
#define | tDeleteTask(task) sTSV_DeleteTask(u_taskhandle_##task)
#define | iDeleteTask(task) sPSV_DeleteTask(u_taskhandle_##task)
#define | pDeleteTask(task) sPS2_DeleteTask(u_taskhandle_##task)
#define | tSetTaskPri(task, npri) sTSV_SetTaskPri(u_taskhandle_##task, npri)
#define | iSetTaskPri(task, npri) sPSV_SetTaskPri(u_taskhandle_##task, npri)
#define | pSetTaskPri(task, npri) sPS2_SetTaskPri(u_taskhandle_##task, npri)
#define | tClearBlock(task) sTSV_ClearBlock(u_taskhandle_##task)
#define | iClearBlock(task) sPSV_ClearBlock(u_taskhandle_##task)
#define | pClearBlock(task) sPS2_ClearBlock(u_taskhandle_##task)
#define | tSetBlock_tc(task, tc) sTSV_SetBlock(u_taskhandle_##task, tc)
#define | iSetBlock_tc(task, tc) sPSV_SetBlock(u_taskhandle_##task, tc)
#define | pSetBlock_tc(task, tc) sPS2_SetBlock(u_taskhandle_##task, tc)
#define | tSetBlock_ms(task, ms) tSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
#define | iSetBlock_ms(task, ms) iSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
#define | pSetBlock_ms(task, ms) pSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
#define | tSetBlock_s(task, s) tSetBlock_ms(task, 1000UL * (s))
#define | iSetBlock_s(task, s) iSetBlock_ms(task, 1000UL * (s))
#define | pSetBlock_s(task, s) pSetBlock_ms(task, 1000UL * (s))
#define | tSetBlock_m(task, m) tSetBlock_s(task, 60UL * (m))
#define | iSetBlock_m(task, m) iSetBlock_s(task, 60UL * (m))
#define | pSetBlock_m(task, m) pSetBlock_s(task, 60UL * (m))
#define | tSetBlock_h(task, h) tSetBlock_m(task, 60UL * (h))
#define | iSetBlock_h(task, h) iSetBlock_m(task, 60UL * (h))
#define | pSetBlock_h(task, h) pSetBlock_m(task, 60UL * (h))
#define | tTimInt_tc(tmid, tc) sTSV_TimInt(tmid, tc)
#define | iTimInt_tc(tmid, tc) sPSV_TimInt(tmid, tc)
#define | tTimInt_ms(tmid, ms) tTimInt_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
#define | iTimInt_ms(tmid, ms) iTimInt_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
#define | tTimInt_s(tmid, s) tTimInt_ms(tmid, 1000UL * (s))
#define | iTimInt_s(tmid, s) iTimInt_ms(tmid, 1000UL * (s))
#define | tTimInt_m(tmid, m) tTimInt_s(tmid, 60UL * (m))
#define | iTimInt_m(tmid, m) iTimInt_s(tmid, 60UL * (m))
#define | tTimInt_h(tmid, h) tTimInt_m(tmid, 60UL * (h))
#define | iTimInt_h(tmid, h) iTimInt_m(tmid, 60UL * (h))
#define | tTimInt_Cancel(tmid) tTimInt_tc(tmid, 0)
#define | iTimInt_Cancel(tmid) iTimInt_tc(tmid, 0)
#define | tTimQry_tc(tmid, tc) sTSV_TimQry(tmid, tc)
#define | iTimQry_tc(tmid, tc) sPSV_TimQry(tmid, tc)
#define | tTimQry_ms(tmid, ms) tTimQry_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
#define | iTimQry_ms(tmid, ms) iTimQry_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
#define | tTimQry_s(tmid, s) tTimQry_ms(tmid, 1000UL * (s))
#define | iTimQry_s(tmid, s) iTimQry_ms(tmid, 1000UL * (s))
#define | tTimQry_m(tmid, m) tTimQry_s(tmid, 60UL * (m))
#define | iTimQry_m(tmid, m) iTimQry_s(tmid, 60UL * (m))
#define | tTimQry_h(tmid, h) tTimQry_m(tmid, 60UL * (h))
#define | iTimQry_h(tmid, h) iTimQry_m(tmid, 60UL * (h))
#define | tTimQry_Cancel(tmid) tTimQry_tc(tmid, ~0)
#define | iTimQry_Cancel(tmid) iTimQry_tc(tmid, ~0)
#define | tLockBin(bin) bin.binary = false
#define | iLockBin(bin) sPSV_WriteBin(bin, false)
#define | pLockBin(bin) sPS2_WriteBin(bin, false)
#define | tGiveBin(bin) sTSV_GiveBin(bin)
#define | iGiveBin(bin) sPSV_WriteBin(bin, true)
#define | pGiveBin(bin) sPS2_WriteBin(bin, true)
#define | tTakeBin(bin) sTSV_TakeBin(bin)
#define | iTakeBin(bin) sISV_TakeBin(bin)
#define | tBackBin(bin) bin.binary = true
#define | iBackBin(bin) bin.binary = true
#define | tGiveSem(sem) sTSV_GiveSem(sem)
#define | iGiveSem(sem) sPSV_GiveSem(sem)
#define | tTakeSem(sem) sTSV_TakeSem(sem)
#define | tBackSem(sem) tGiveSem(sem)
#define | tRecvFetion(tbox) sTSV_RecvFetion(tbox)
#define | iRecvFetion(tbox) sISV_RecvFetion(tbox)
#define | tSendFetion(tbox, tion) sTSV_SendFetion(tbox, tion)
#define | iSendFetion(tbox, tion) sPSV_SendFetion(tbox, tion)
#define | tRecvMail(mbox) sTSV_RecvMail(mbox)
#define | iRecvMail(mbox) sISV_RecvMail(mbox)
#define | tSendMail(mbox, mail) sTSV_SendMail(mbox, mail)
#define | iSendMail(mbox, mail) sPSV_SendMail(mbox, mail)
#define | tRecvMsg(que) sTSV_RecvMsg(que)
#define | iRecvMsg(que) sISV_RecvMsg(que)
#define | tSendMsg(que, msg) sTSV_SendMsg(que, msg)
#define | iSendMsg(que, msg) sPSV_SendMsg(que, msg)
#define | tQueryFlagGroup(group) sTSV_QueryFlagGroup(group)
#define | iQueryFlagGroup(group) sISV_QueryFlagGroup(group)
#define | tClearFlagGroup(group) sTSV_ClearFlagGroup(group)
#define | iClearFlagGroup(group) sPSV_ClearFlagGroup(group)
#define | tSetFlagBit(group, bit) tSetFlagBits(group, 1) bit)
#define | iSetFlagBit(group, bit) iSetFlagBits(group, 1) bit)
#define | tClearFlagBit(group, bit) tClearFlagBits(group, 1) bit)
#define | iClearFlagBit(group, bit) iClearFlagBits(group, 1) bit)
#define | tSetFlagBits(group, nbit) sTSV_WriteFlagBits(group, true, nbit)
#define | iSetFlagBits(group, nbit) sPSV_WriteFlagBits(group, +, nbit)
#define | tClearFlagBits(group, nbit) sTSV_WriteFlagBits(group, false, nbit)
#define | iClearFlagBits(group, nbit) sPSV_WriteFlagBits(group, -, nbit)
#define | tGetTime(t) sTSV_GetTime(t)
#define | iGetTime(t) sISV_GetTime(t)
#define | tSetTime(t) sTSV_SetTime(t)
#define | iSetTime(t) sPSV_SetTime(t)
#define | uRecvFet uRecvFetion
#define | tRecvFet tRecvFetion
#define | iRecvFet iRecvFetion
#define | uSendFet uSendFetion
#define | tSendFet tSendFetion
#define | iSendFet iSendFetion

详细描述

用户API扩展

CosyOS-III Kernel

用户API的补充扩展定义，仅是定义无注释说明，所有内核服务的API说明 均在 ur_api.h 中，并支持 doxygen。

作者
迟凯峰
版本
V1.2.0
日期
2025.03.30

在文件 ur_eapi.h 中定义.

宏定义说明

#define iBackBin ( bin ) bin.binary = true

在文件 ur_eapi.h 第 135 行定义.

#define iClearBlock ( task ) sPSV_ClearBlock(u_taskhandle_##task)

在文件 ur_eapi.h 第 43 行定义.

#define iClearDelay ( ) sPSV_ClearDelay()

在文件 ur_eapi.h 第 18 行定义.

#define iClearFlagBit | ( | group,
 |  | bit
 | ) | iClearFlagBits(group, 1) bit)

在文件 ur_eapi.h 第 185 行定义.

#define iClearFlagBits | ( | group,
 |  | nbit
 | ) | sPSV_WriteFlagBits(group, -, nbit)

在文件 ur_eapi.h 第 193 行定义.

#define iClearFlagGroup ( group ) sPSV_ClearFlagGroup(group)

在文件 ur_eapi.h 第 177 行定义.

#define iDeleteTask ( task ) sPSV_DeleteTask(u_taskhandle_##task)

在文件 ur_eapi.h 第 33 行定义.

#define iGetTime ( t ) sISV_GetTime(t)

在文件 ur_eapi.h 第 197 行定义.

#define iGiveBin ( bin ) sPSV_WriteBin(bin, true)

在文件 ur_eapi.h 第 126 行定义.

#define iGiveSem ( sem ) sPSV_GiveSem(sem)

在文件 ur_eapi.h 第 139 行定义.

#define iLockBin ( bin ) sPSV_WriteBin(bin, false)

在文件 ur_eapi.h 第 121 行定义.

#define iQueryFlagGroup ( group ) sISV_QueryFlagGroup(group)

在文件 ur_eapi.h 第 173 行定义.

#define iRecvFet iRecvFetion

在文件 ur_eapi.h 第 206 行定义.

#define iRecvFetion ( tbox ) sISV_RecvFetion(tbox)

在文件 ur_eapi.h 第 149 行定义.

#define iRecvMail ( mbox ) sISV_RecvMail(mbox)

在文件 ur_eapi.h 第 157 行定义.

#define iRecvMsg ( que ) sISV_RecvMsg(que)

在文件 ur_eapi.h 第 165 行定义.

#define iResumeTask ( task ) sPSV_ResumeTask(u_taskhandle_##task)

在文件 ur_eapi.h 第 23 行定义.

#define iSendFet iSendFetion

在文件 ur_eapi.h 第 209 行定义.

#define iSendFetion | ( | tbox,
 |  | tion
 | ) | sPSV_SendFetion(tbox, tion)

在文件 ur_eapi.h 第 153 行定义.

#define iSendMail | ( | mbox,
 |  | mail
 | ) | sPSV_SendMail(mbox, mail)

在文件 ur_eapi.h 第 161 行定义.

#define iSendMsg | ( | que,
 |  | msg
 | ) | sPSV_SendMsg(que, msg)

在文件 ur_eapi.h 第 169 行定义.

#define iSetBlock_h | ( | task,
 |  | h
 | ) | iSetBlock_m(task, 60UL * (h))

在文件 ur_eapi.h 第 68 行定义.

#define iSetBlock_m | ( | task,
 |  | m
 | ) | iSetBlock_s(task, 60UL * (m))

在文件 ur_eapi.h 第 63 行定义.

#define iSetBlock_ms | ( | task,
 |  | ms
 | ) | iSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)

在文件 ur_eapi.h 第 53 行定义.

#define iSetBlock_s | ( | task,
 |  | s
 | ) | iSetBlock_ms(task, 1000UL * (s))

在文件 ur_eapi.h 第 58 行定义.

#define iSetBlock_tc | ( | task,
 |  | tc
 | ) | sPSV_SetBlock(u_taskhandle_##task, tc)

在文件 ur_eapi.h 第 48 行定义.

#define iSetFlagBit | ( | group,
 |  | bit
 | ) | iSetFlagBits(group, 1) bit)

在文件 ur_eapi.h 第 181 行定义.

#define iSetFlagBits | ( | group,
 |  | nbit
 | ) | sPSV_WriteFlagBits(group, +, nbit)

在文件 ur_eapi.h 第 189 行定义.

#define iSetTaskPri | ( | task,
 |  | npri
 | ) | sPSV_SetTaskPri(u_taskhandle_##task, npri)

在文件 ur_eapi.h 第 38 行定义.

#define iSetTime ( t ) sPSV_SetTime(t)

在文件 ur_eapi.h 第 201 行定义.

#define iSuspendTask ( task ) sPSV_SuspendTask(u_taskhandle_##task)

在文件 ur_eapi.h 第 28 行定义.

#define iTakeBin ( bin ) sISV_TakeBin(bin)

在文件 ur_eapi.h 第 131 行定义.

#define iTimInt_Cancel ( tmid ) iTimInt_tc(tmid, 0)

在文件 ur_eapi.h 第 93 行定义.

#define iTimInt_h | ( | tmid,
 |  | h
 | ) | iTimInt_m(tmid, 60UL * (h))

在文件 ur_eapi.h 第 89 行定义.

#define iTimInt_m | ( | tmid,
 |  | m
 | ) | iTimInt_s(tmid, 60UL * (m))

在文件 ur_eapi.h 第 85 行定义.

#define iTimInt_ms | ( | tmid,
 |  | ms
 | ) | iTimInt_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)

在文件 ur_eapi.h 第 77 行定义.

#define iTimInt_s | ( | tmid,
 |  | s
 | ) | iTimInt_ms(tmid, 1000UL * (s))

在文件 ur_eapi.h 第 81 行定义.

#define iTimInt_tc | ( | tmid,
 |  | tc
 | ) | sPSV_TimInt(tmid, tc)

在文件 ur_eapi.h 第 73 行定义.

#define iTimQry_Cancel ( tmid ) iTimQry_tc(tmid, ~0)

在文件 ur_eapi.h 第 117 行定义.

#define iTimQry_h | ( | tmid,
 |  | h
 | ) | iTimQry_m(tmid, 60UL * (h))

在文件 ur_eapi.h 第 113 行定义.

#define iTimQry_m | ( | tmid,
 |  | m
 | ) | iTimQry_s(tmid, 60UL * (m))

在文件 ur_eapi.h 第 109 行定义.

#define iTimQry_ms | ( | tmid,
 |  | ms
 | ) | iTimQry_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)

在文件 ur_eapi.h 第 101 行定义.

#define iTimQry_s | ( | tmid,
 |  | s
 | ) | iTimQry_ms(tmid, 1000UL * (s))

在文件 ur_eapi.h 第 105 行定义.

#define iTimQry_tc | ( | tmid,
 |  | tc
 | ) | sPSV_TimQry(tmid, tc)

在文件 ur_eapi.h 第 97 行定义.

#define pClearBlock ( task ) sPS2_ClearBlock(u_taskhandle_##task)

在文件 ur_eapi.h 第 44 行定义.

#define pClearDelay ( ) sPS2_ClearDelay()

在文件 ur_eapi.h 第 19 行定义.

#define pDeleteTask ( task ) sPS2_DeleteTask(u_taskhandle_##task)

在文件 ur_eapi.h 第 34 行定义.

#define pGiveBin ( bin ) sPS2_WriteBin(bin, true)

在文件 ur_eapi.h 第 127 行定义.

#define pLockBin ( bin ) sPS2_WriteBin(bin, false)

在文件 ur_eapi.h 第 122 行定义.

#define pResumeTask ( task ) sPS2_ResumeTask(u_taskhandle_##task)

在文件 ur_eapi.h 第 24 行定义.

#define pSetBlock_h | ( | task,
 |  | h
 | ) | pSetBlock_m(task, 60UL * (h))

在文件 ur_eapi.h 第 69 行定义.

#define pSetBlock_m | ( | task,
 |  | m
 | ) | pSetBlock_s(task, 60UL * (m))

在文件 ur_eapi.h 第 64 行定义.

#define pSetBlock_ms | ( | task,
 |  | ms
 | ) | pSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)

在文件 ur_eapi.h 第 54 行定义.

#define pSetBlock_s | ( | task,
 |  | s
 | ) | pSetBlock_ms(task, 1000UL * (s))

在文件 ur_eapi.h 第 59 行定义.

#define pSetBlock_tc | ( | task,
 |  | tc
 | ) | sPS2_SetBlock(u_taskhandle_##task, tc)

在文件 ur_eapi.h 第 49 行定义.

#define pSetTaskPri | ( | task,
 |  | npri
 | ) | sPS2_SetTaskPri(u_taskhandle_##task, npri)

在文件 ur_eapi.h 第 39 行定义.

#define pSuspendTask ( task ) sPS2_SuspendTask(u_taskhandle_##task)

在文件 ur_eapi.h 第 29 行定义.

#define tBackBin ( bin ) bin.binary = true

在文件 ur_eapi.h 第 134 行定义.

#define tBackSem ( sem ) tGiveSem(sem)

在文件 ur_eapi.h 第 145 行定义.

#define tClearBlock ( task ) sTSV_ClearBlock(u_taskhandle_##task)

在文件 ur_eapi.h 第 42 行定义.

#define tClearFlagBit | ( | group,
 |  | bit
 | ) | tClearFlagBits(group, 1) bit)

在文件 ur_eapi.h 第 184 行定义.

#define tClearFlagBits | ( | group,
 |  | nbit
 | ) | sTSV_WriteFlagBits(group, false, nbit)

在文件 ur_eapi.h 第 192 行定义.

#define tClearFlagGroup ( group ) sTSV_ClearFlagGroup(group)

在文件 ur_eapi.h 第 176 行定义.

#define tDeleteTask ( task ) sTSV_DeleteTask(u_taskhandle_##task)

在文件 ur_eapi.h 第 32 行定义.

#define tGetTime ( t ) sTSV_GetTime(t)

在文件 ur_eapi.h 第 196 行定义.

#define tGiveBin ( bin ) sTSV_GiveBin(bin)

在文件 ur_eapi.h 第 125 行定义.

#define tGiveSem ( sem ) sTSV_GiveSem(sem)

在文件 ur_eapi.h 第 138 行定义.

#define tLockBin ( bin ) bin.binary = false

在文件 ur_eapi.h 第 120 行定义.

#define tQueryFlagGroup ( group ) sTSV_QueryFlagGroup(group)

在文件 ur_eapi.h 第 172 行定义.

#define tRecvFet tRecvFetion

在文件 ur_eapi.h 第 205 行定义.

#define tRecvFetion ( tbox ) sTSV_RecvFetion(tbox)

在文件 ur_eapi.h 第 148 行定义.

#define tRecvMail ( mbox ) sTSV_RecvMail(mbox)

在文件 ur_eapi.h 第 156 行定义.

#define tRecvMsg ( que ) sTSV_RecvMsg(que)

在文件 ur_eapi.h 第 164 行定义.

#define tResumeTask ( task ) sTSV_ResumeTask(u_taskhandle_##task)

在文件 ur_eapi.h 第 22 行定义.

#define tSendFet tSendFetion

在文件 ur_eapi.h 第 208 行定义.

#define tSendFetion | ( | tbox,
 |  | tion
 | ) | sTSV_SendFetion(tbox, tion)

在文件 ur_eapi.h 第 152 行定义.

#define tSendMail | ( | mbox,
 |  | mail
 | ) | sTSV_SendMail(mbox, mail)

在文件 ur_eapi.h 第 160 行定义.

#define tSendMsg | ( | que,
 |  | msg
 | ) | sTSV_SendMsg(que, msg)

在文件 ur_eapi.h 第 168 行定义.

#define tSetBlock_h | ( | task,
 |  | h
 | ) | tSetBlock_m(task, 60UL * (h))

在文件 ur_eapi.h 第 67 行定义.

#define tSetBlock_m | ( | task,
 |  | m
 | ) | tSetBlock_s(task, 60UL * (m))

在文件 ur_eapi.h 第 62 行定义.

#define tSetBlock_ms | ( | task,
 |  | ms
 | ) | tSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)

在文件 ur_eapi.h 第 52 行定义.

#define tSetBlock_s | ( | task,
 |  | s
 | ) | tSetBlock_ms(task, 1000UL * (s))

在文件 ur_eapi.h 第 57 行定义.

#define tSetBlock_tc | ( | task,
 |  | tc
 | ) | sTSV_SetBlock(u_taskhandle_##task, tc)

在文件 ur_eapi.h 第 47 行定义.

#define tSetFlagBit | ( | group,
 |  | bit
 | ) | tSetFlagBits(group, 1) bit)

在文件 ur_eapi.h 第 180 行定义.

#define tSetFlagBits | ( | group,
 |  | nbit
 | ) | sTSV_WriteFlagBits(group, true, nbit)

在文件 ur_eapi.h 第 188 行定义.

#define tSetTaskPri | ( | task,
 |  | npri
 | ) | sTSV_SetTaskPri(u_taskhandle_##task, npri)

在文件 ur_eapi.h 第 37 行定义.

#define tSetTime ( t ) sTSV_SetTime(t)

在文件 ur_eapi.h 第 200 行定义.

#define tSuspendTask ( task ) sTSV_SuspendTask(u_taskhandle_##task)

在文件 ur_eapi.h 第 27 行定义.

#define tTakeBin ( bin ) sTSV_TakeBin(bin)

在文件 ur_eapi.h 第 130 行定义.

#define tTakeSem ( sem ) sTSV_TakeSem(sem)

在文件 ur_eapi.h 第 142 行定义.

#define tTimInt_Cancel ( tmid ) tTimInt_tc(tmid, 0)

在文件 ur_eapi.h 第 92 行定义.

#define tTimInt_h | ( | tmid,
 |  | h
 | ) | tTimInt_m(tmid, 60UL * (h))

在文件 ur_eapi.h 第 88 行定义.

#define tTimInt_m | ( | tmid,
 |  | m
 | ) | tTimInt_s(tmid, 60UL * (m))

在文件 ur_eapi.h 第 84 行定义.

#define tTimInt_ms | ( | tmid,
 |  | ms
 | ) | tTimInt_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)

在文件 ur_eapi.h 第 76 行定义.

#define tTimInt_s | ( | tmid,
 |  | s
 | ) | tTimInt_ms(tmid, 1000UL * (s))

在文件 ur_eapi.h 第 80 行定义.

#define tTimInt_tc | ( | tmid,
 |  | tc
 | ) | sTSV_TimInt(tmid, tc)

在文件 ur_eapi.h 第 72 行定义.

#define tTimQry_Cancel ( tmid ) tTimQry_tc(tmid, ~0)

在文件 ur_eapi.h 第 116 行定义.

#define tTimQry_h | ( | tmid,
 |  | h
 | ) | tTimQry_m(tmid, 60UL * (h))

在文件 ur_eapi.h 第 112 行定义.

#define tTimQry_m | ( | tmid,
 |  | m
 | ) | tTimQry_s(tmid, 60UL * (m))

在文件 ur_eapi.h 第 108 行定义.

#define tTimQry_ms | ( | tmid,
 |  | ms
 | ) | tTimQry_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)

在文件 ur_eapi.h 第 100 行定义.

#define tTimQry_s | ( | tmid,
 |  | s
 | ) | tTimQry_ms(tmid, 1000UL * (s))

在文件 ur_eapi.h 第 104 行定义.

#define tTimQry_tc | ( | tmid,
 |  | tc
 | ) | sTSV_TimQry(tmid, tc)

在文件 ur_eapi.h 第 96 行定义.

#define uRecvFet uRecvFetion

在文件 ur_eapi.h 第 204 行定义.

#define uSendFet uSendFetion

在文件 ur_eapi.h 第 207 行定义.


CosyOS-III API用户参考手册: 全局定义

  • 文件列表
  • 全局定义
  • 全部
  • 函数
  • 宏定义
  • d
  • i
  • p
  • t
  • u
  • x
这里列出了所有函数,变量,宏,枚举和类型定义等,并附带其所属的文件:

- d -

  • dCreateTask : ur_api.h
  • dCreateTask_TimInt : ur_api.h
  • dCreateTask_TimQry : ur_api.h
  • dExternTask : ur_api.h
  • dExtTask : ur_api.h


CosyOS-III API用户参考手册: 全局定义

  • 文件列表
  • 全局定义
  • 全部
  • 函数
  • 宏定义
  • d
  • i
  • p
  • t
  • u
  • x
这里列出了所有函数,变量,宏,枚举和类型定义等,并附带其所属的文件:

- i -

  • iBackBin : ur_eapi.h
  • iClearBlock : ur_eapi.h
  • iClearDelay : ur_eapi.h
  • iClearFlagBit : ur_eapi.h
  • iClearFlagBits : ur_eapi.h
  • iClearFlagGroup : ur_eapi.h
  • iDeleteTask : ur_eapi.h
  • iGetTime : ur_eapi.h
  • iGiveBin : ur_eapi.h
  • iGiveSem : ur_eapi.h
  • iLockBin : ur_eapi.h
  • iPendSV_Set : ur_api.h
  • iPendSVC : ur_api.h
  • iQueryFlagGroup : ur_eapi.h
  • iRecvFet : ur_eapi.h
  • iRecvFetion : ur_eapi.h
  • iRecvMail : ur_eapi.h
  • iRecvMsg : ur_eapi.h
  • iResumeTask : ur_eapi.h
  • iSendFet : ur_eapi.h
  • iSendFetion : ur_eapi.h
  • iSendMail : ur_eapi.h
  • iSendMsg : ur_eapi.h
  • iSendSign : ur_api.h
  • iSetBlock_h : ur_eapi.h
  • iSetBlock_m : ur_eapi.h
  • iSetBlock_ms : ur_eapi.h
  • iSetBlock_s : ur_eapi.h
  • iSetBlock_tc : ur_eapi.h
  • iSetFlagBit : ur_eapi.h
  • iSetFlagBits : ur_eapi.h
  • iSetTaskPri : ur_eapi.h
  • iSetTime : ur_eapi.h
  • iSuspendTask : ur_eapi.h
  • iTakeBin : ur_eapi.h
  • iTimInt_Cancel : ur_eapi.h
  • iTimInt_h : ur_eapi.h
  • iTimInt_m : ur_eapi.h
  • iTimInt_ms : ur_eapi.h
  • iTimInt_s : ur_eapi.h
  • iTimInt_tc : ur_eapi.h
  • iTimQry_Cancel : ur_eapi.h
  • iTimQry_h : ur_eapi.h
  • iTimQry_m : ur_eapi.h
  • iTimQry_ms : ur_eapi.h
  • iTimQry_s : ur_eapi.h
  • iTimQry_tc : ur_eapi.h
  • iWhichGVar_Read : ur_api.h
  • iWriteGAry : ur_api.h
  • iWriteGStr : ur_api.h
  • iWriteGVar : ur_api.h


CosyOS-III API用户参考手册: 全局定义

  • 文件列表
  • 全局定义
  • 全部
  • 函数
  • 宏定义
  • d
  • i
  • p
  • t
  • u
  • x
这里列出了所有函数,变量,宏,枚举和类型定义等,并附带其所属的文件:

- p -

  • pClearBlock : ur_eapi.h
  • pClearDelay : ur_eapi.h
  • pDeleteTask : ur_eapi.h
  • pGiveBin : ur_eapi.h
  • pLockBin : ur_eapi.h
  • pResumeTask : ur_eapi.h
  • pSetBlock_h : ur_eapi.h
  • pSetBlock_m : ur_eapi.h
  • pSetBlock_ms : ur_eapi.h
  • pSetBlock_s : ur_eapi.h
  • pSetBlock_tc : ur_eapi.h
  • pSetTaskPri : ur_eapi.h
  • pSuspendTask : ur_eapi.h


CosyOS-III API用户参考手册: 全局定义

  • 文件列表
  • 全局定义
  • 全部
  • 函数
  • 宏定义
  • d
  • i
  • p
  • t
  • u
  • x
这里列出了所有函数,变量,宏,枚举和类型定义等,并附带其所属的文件:

- t -

  • tBackBin : ur_eapi.h
  • tBackSem : ur_eapi.h
  • tClearBlock : ur_eapi.h
  • tClearDelay : ur_api.h
  • tClearFlagBit : ur_eapi.h
  • tClearFlagBits : ur_eapi.h
  • tClearFlagGroup : ur_eapi.h
  • tCosyTick_Handler() : ur_api.h
  • tDeleteTask : ur_eapi.h
  • tGetTime : ur_eapi.h
  • tGiveBin : ur_eapi.h
  • tGiveSem : ur_eapi.h
  • tLockBin : ur_eapi.h
  • tQueryFlagGroup : ur_eapi.h
  • tRecvFet : ur_eapi.h
  • tRecvFetion : ur_eapi.h
  • tRecvMail : ur_eapi.h
  • tRecvMsg : ur_eapi.h
  • tResumeTask : ur_eapi.h
  • tSendFet : ur_eapi.h
  • tSendFetion : ur_eapi.h
  • tSendMail : ur_eapi.h
  • tSendMsg : ur_eapi.h
  • tSetBlock_h : ur_eapi.h
  • tSetBlock_m : ur_eapi.h
  • tSetBlock_ms : ur_eapi.h
  • tSetBlock_s : ur_eapi.h
  • tSetBlock_tc : ur_eapi.h
  • tSetFlagBit : ur_eapi.h
  • tSetFlagBits : ur_eapi.h
  • tSetTaskPri : ur_eapi.h
  • tSetTime : ur_eapi.h
  • tSuspendTask : ur_eapi.h
  • tTakeBin : ur_eapi.h
  • tTakeSem : ur_eapi.h
  • tTimInt_Cancel : ur_eapi.h
  • tTimInt_h : ur_eapi.h
  • tTimInt_m : ur_eapi.h
  • tTimInt_ms : ur_eapi.h
  • tTimInt_s : ur_eapi.h
  • tTimInt_tc : ur_eapi.h
  • tTimQry_Cancel : ur_eapi.h
  • tTimQry_h : ur_eapi.h
  • tTimQry_m : ur_eapi.h
  • tTimQry_ms : ur_eapi.h
  • tTimQry_s : ur_eapi.h
  • tTimQry_tc : ur_eapi.h


CosyOS-III API用户参考手册: 全局定义

  • 文件列表
  • 全局定义
  • 全部
  • 函数
  • 宏定义
  • d
  • i
  • p
  • t
  • u
  • x
这里列出了所有函数,变量,宏,枚举和类型定义等,并附带其所属的文件:

- u -

  • uBackBin : ur_api.h
  • uBackMut : ur_api.h
  • uBackSem : ur_api.h
  • uCalloc : ur_api.h
  • uClearBlock : ur_api.h
  • uClearFlagBit : ur_api.h
  • uClearFlagBits : ur_api.h
  • uClearFlagGroup : ur_api.h
  • uCreateBin : ur_api.h
  • uCreateFlagGroup : ur_api.h
  • uCreateHook_TimInt : ur_api.h
  • uCreateHook_TimQry : ur_api.h
  • uCreateMailbox : ur_api.h
  • uCreateMempool : ur_api.h
  • uCreateMut : ur_api.h
  • uCreateQueue_Dynamic : ur_api.h
  • uCreateQueue_Static : ur_api.h
  • uCreateSem : ur_api.h
  • uCreateTask : ur_api.h
  • uCreateTask_TimInt : ur_api.h
  • uCreateTask_TimQry : ur_api.h
  • uCreateTionbox : ur_api.h
  • uDefFlagBit : ur_api.h
  • uDefVoidBits : ur_api.h
  • uDelay_h : ur_api.h
  • uDelay_m : ur_api.h
  • uDelay_ms : ur_api.h
  • uDelay_s : ur_api.h
  • uDelay_tc : ur_api.h
  • uDeleteTask : ur_api.h
  • uDeleteTasking : ur_api.h
  • uExternBin : ur_api.h
  • uExternFlagGroup : ur_api.h
  • uExternMailbox : ur_api.h
  • uExternMut : ur_api.h
  • uExternQueue_Dynamic : ur_api.h
  • uExternQueue_Static : ur_api.h
  • uExternSem : ur_api.h
  • uExternTask : ur_api.h
  • uExternTionbox : ur_api.h
  • uExtTask : ur_api.h
  • uFree : ur_api.h
  • uFreeMempool : ur_api.h
  • uGetTime : ur_api.h
  • uGiveBin : ur_api.h
  • uGiveSem : ur_api.h
  • uInitMempool : ur_api.h
  • uKernelLock : ur_api.h
  • uKernelUnlock : ur_api.h
  • uLockBin : ur_api.h
  • uMalloc : ur_api.h
  • uQueryFlagGroup : ur_api.h
  • uRealloc : ur_api.h
  • uRecvFet : ur_eapi.h
  • uRecvFetion : ur_api.h
  • uRecvMail : ur_api.h
  • uRecvMsg : ur_api.h
  • uResumeSuspend : ur_api.h
  • uResumeTask : ur_api.h
  • uScheduleLock : ur_api.h
  • uScheduleUnlock : ur_api.h
  • uSendFet : ur_eapi.h
  • uSendFetion : ur_api.h
  • uSendMail : ur_api.h
  • uSendMsg : ur_api.h
  • uSetBlock_h : ur_api.h
  • uSetBlock_m : ur_api.h
  • uSetBlock_ms : ur_api.h
  • uSetBlock_s : ur_api.h
  • uSetBlock_tc : ur_api.h
  • uSetFlagBit : ur_api.h
  • uSetFlagBits : ur_api.h
  • uSetTaskingPri : ur_api.h
  • uSetTaskPri : ur_api.h
  • uSetTime : ur_api.h
  • uStartCosyOS() : ur_api.h
  • uStartTask : ur_api.h
  • uStartTask_Block : ur_api.h
  • uStartTask_Ready : ur_api.h
  • uStartTask_Suspend : ur_api.h
  • uSuspendTask : ur_api.h
  • uSuspendTasking : ur_api.h
  • uTakeBin : ur_api.h
  • uTakeMut : ur_api.h
  • uTakeSem : ur_api.h
  • uTalloc : ur_api.h
  • uTimInt_Cancel : ur_api.h
  • uTimInt_h : ur_api.h
  • uTimInt_m : ur_api.h
  • uTimInt_ms : ur_api.h
  • uTimInt_s : ur_api.h
  • uTimInt_tc : ur_api.h
  • uTimQry_Cancel : ur_api.h
  • uTimQry_h : ur_api.h
  • uTimQry_m : ur_api.h
  • uTimQry_ms : ur_api.h
  • uTimQry_s : ur_api.h
  • uTimQry_tc : ur_api.h
  • uWaitBin : ur_api.h
  • uWaitFlagGroup : ur_api.h
  • uYieldTasking : ur_api.h


CosyOS-III API用户参考手册: 全局定义

  • 文件列表
  • 全局定义
  • 全部
  • 函数
  • 宏定义
  • d
  • i
  • p
  • t
  • u
  • x
这里列出了所有函数,变量,宏,枚举和类型定义等,并附带其所属的文件:

- x -

  • xDebugRecv_Handler : ur_api.h
  • xDebugSend_Complete : ur_api.h
  • xDisableIRQ : ur_api.h
  • xMaskingPRI : ur_api.h
  • xResumeIRQ : ur_api.h
  • xResumePRI : ur_api.h
  • xTick_h : ur_api.h
  • xTick_m : ur_api.h
  • xTick_ms : ur_api.h
  • xTick_s : ur_api.h
  • xTimInt_AutoReload : ur_api.h
  • xTimQry_AutoReload : ur_api.h
  • xUpdateCopy : ur_api.h


CosyOS-III API用户参考手册: 全局定义

  • 文件列表
  • 全局定义
  • 全部
  • 函数
  • 宏定义
  • tCosyTick_Handler() : ur_api.h
  • uStartCosyOS() : ur_api.h


CosyOS-III API用户参考手册: 全局定义

  • 文件列表
  • 全局定义
  • 全部
  • 函数
  • 宏定义
  • d
  • i
  • p
  • t
  • u
  • x

- d -

  • dCreateTask : ur_api.h
  • dCreateTask_TimInt : ur_api.h
  • dCreateTask_TimQry : ur_api.h
  • dExternTask : ur_api.h
  • dExtTask : ur_api.h


CosyOS-III API用户参考手册: 全局定义

  • 文件列表
  • 全局定义
  • 全部
  • 函数
  • 宏定义
  • d
  • i
  • p
  • t
  • u
  • x

- i -

  • iBackBin : ur_eapi.h
  • iClearBlock : ur_eapi.h
  • iClearDelay : ur_eapi.h
  • iClearFlagBit : ur_eapi.h
  • iClearFlagBits : ur_eapi.h
  • iClearFlagGroup : ur_eapi.h
  • iDeleteTask : ur_eapi.h
  • iGetTime : ur_eapi.h
  • iGiveBin : ur_eapi.h
  • iGiveSem : ur_eapi.h
  • iLockBin : ur_eapi.h
  • iPendSV_Set : ur_api.h
  • iPendSVC : ur_api.h
  • iQueryFlagGroup : ur_eapi.h
  • iRecvFet : ur_eapi.h
  • iRecvFetion : ur_eapi.h
  • iRecvMail : ur_eapi.h
  • iRecvMsg : ur_eapi.h
  • iResumeTask : ur_eapi.h
  • iSendFet : ur_eapi.h
  • iSendFetion : ur_eapi.h
  • iSendMail : ur_eapi.h
  • iSendMsg : ur_eapi.h
  • iSendSign : ur_api.h
  • iSetBlock_h : ur_eapi.h
  • iSetBlock_m : ur_eapi.h
  • iSetBlock_ms : ur_eapi.h
  • iSetBlock_s : ur_eapi.h
  • iSetBlock_tc : ur_eapi.h
  • iSetFlagBit : ur_eapi.h
  • iSetFlagBits : ur_eapi.h
  • iSetTaskPri : ur_eapi.h
  • iSetTime : ur_eapi.h
  • iSuspendTask : ur_eapi.h
  • iTakeBin : ur_eapi.h
  • iTimInt_Cancel : ur_eapi.h
  • iTimInt_h : ur_eapi.h
  • iTimInt_m : ur_eapi.h
  • iTimInt_ms : ur_eapi.h
  • iTimInt_s : ur_eapi.h
  • iTimInt_tc : ur_eapi.h
  • iTimQry_Cancel : ur_eapi.h
  • iTimQry_h : ur_eapi.h
  • iTimQry_m : ur_eapi.h
  • iTimQry_ms : ur_eapi.h
  • iTimQry_s : ur_eapi.h
  • iTimQry_tc : ur_eapi.h
  • iWhichGVar_Read : ur_api.h
  • iWriteGAry : ur_api.h
  • iWriteGStr : ur_api.h
  • iWriteGVar : ur_api.h


CosyOS-III API用户参考手册: 全局定义

  • 文件列表
  • 全局定义
  • 全部
  • 函数
  • 宏定义
  • d
  • i
  • p
  • t
  • u
  • x

- p -

  • pClearBlock : ur_eapi.h
  • pClearDelay : ur_eapi.h
  • pDeleteTask : ur_eapi.h
  • pGiveBin : ur_eapi.h
  • pLockBin : ur_eapi.h
  • pResumeTask : ur_eapi.h
  • pSetBlock_h : ur_eapi.h
  • pSetBlock_m : ur_eapi.h
  • pSetBlock_ms : ur_eapi.h
  • pSetBlock_s : ur_eapi.h
  • pSetBlock_tc : ur_eapi.h
  • pSetTaskPri : ur_eapi.h
  • pSuspendTask : ur_eapi.h


CosyOS-III API用户参考手册: 全局定义

  • 文件列表
  • 全局定义
  • 全部
  • 函数
  • 宏定义
  • d
  • i
  • p
  • t
  • u
  • x

- t -

  • tBackBin : ur_eapi.h
  • tBackSem : ur_eapi.h
  • tClearBlock : ur_eapi.h
  • tClearDelay : ur_api.h
  • tClearFlagBit : ur_eapi.h
  • tClearFlagBits : ur_eapi.h
  • tClearFlagGroup : ur_eapi.h
  • tDeleteTask : ur_eapi.h
  • tGetTime : ur_eapi.h
  • tGiveBin : ur_eapi.h
  • tGiveSem : ur_eapi.h
  • tLockBin : ur_eapi.h
  • tQueryFlagGroup : ur_eapi.h
  • tRecvFet : ur_eapi.h
  • tRecvFetion : ur_eapi.h
  • tRecvMail : ur_eapi.h
  • tRecvMsg : ur_eapi.h
  • tResumeTask : ur_eapi.h
  • tSendFet : ur_eapi.h
  • tSendFetion : ur_eapi.h
  • tSendMail : ur_eapi.h
  • tSendMsg : ur_eapi.h
  • tSetBlock_h : ur_eapi.h
  • tSetBlock_m : ur_eapi.h
  • tSetBlock_ms : ur_eapi.h
  • tSetBlock_s : ur_eapi.h
  • tSetBlock_tc : ur_eapi.h
  • tSetFlagBit : ur_eapi.h
  • tSetFlagBits : ur_eapi.h
  • tSetTaskPri : ur_eapi.h
  • tSetTime : ur_eapi.h
  • tSuspendTask : ur_eapi.h
  • tTakeBin : ur_eapi.h
  • tTakeSem : ur_eapi.h
  • tTimInt_Cancel : ur_eapi.h
  • tTimInt_h : ur_eapi.h
  • tTimInt_m : ur_eapi.h
  • tTimInt_ms : ur_eapi.h
  • tTimInt_s : ur_eapi.h
  • tTimInt_tc : ur_eapi.h
  • tTimQry_Cancel : ur_eapi.h
  • tTimQry_h : ur_eapi.h
  • tTimQry_m : ur_eapi.h
  • tTimQry_ms : ur_eapi.h
  • tTimQry_s : ur_eapi.h
  • tTimQry_tc : ur_eapi.h


CosyOS-III API用户参考手册: 全局定义

  • 文件列表
  • 全局定义
  • 全部
  • 函数
  • 宏定义
  • d
  • i
  • p
  • t
  • u
  • x

- u -

  • uBackBin : ur_api.h
  • uBackMut : ur_api.h
  • uBackSem : ur_api.h
  • uCalloc : ur_api.h
  • uClearBlock : ur_api.h
  • uClearFlagBit : ur_api.h
  • uClearFlagBits : ur_api.h
  • uClearFlagGroup : ur_api.h
  • uCreateBin : ur_api.h
  • uCreateFlagGroup : ur_api.h
  • uCreateHook_TimInt : ur_api.h
  • uCreateHook_TimQry : ur_api.h
  • uCreateMailbox : ur_api.h
  • uCreateMempool : ur_api.h
  • uCreateMut : ur_api.h
  • uCreateQueue_Dynamic : ur_api.h
  • uCreateQueue_Static : ur_api.h
  • uCreateSem : ur_api.h
  • uCreateTask : ur_api.h
  • uCreateTask_TimInt : ur_api.h
  • uCreateTask_TimQry : ur_api.h
  • uCreateTionbox : ur_api.h
  • uDefFlagBit : ur_api.h
  • uDefVoidBits : ur_api.h
  • uDelay_h : ur_api.h
  • uDelay_m : ur_api.h
  • uDelay_ms : ur_api.h
  • uDelay_s : ur_api.h
  • uDelay_tc : ur_api.h
  • uDeleteTask : ur_api.h
  • uDeleteTasking : ur_api.h
  • uExternBin : ur_api.h
  • uExternFlagGroup : ur_api.h
  • uExternMailbox : ur_api.h
  • uExternMut : ur_api.h
  • uExternQueue_Dynamic : ur_api.h
  • uExternQueue_Static : ur_api.h
  • uExternSem : ur_api.h
  • uExternTask : ur_api.h
  • uExternTionbox : ur_api.h
  • uExtTask : ur_api.h
  • uFree : ur_api.h
  • uFreeMempool : ur_api.h
  • uGetTime : ur_api.h
  • uGiveBin : ur_api.h
  • uGiveSem : ur_api.h
  • uInitMempool : ur_api.h
  • uKernelLock : ur_api.h
  • uKernelUnlock : ur_api.h
  • uLockBin : ur_api.h
  • uMalloc : ur_api.h
  • uQueryFlagGroup : ur_api.h
  • uRealloc : ur_api.h
  • uRecvFet : ur_eapi.h
  • uRecvFetion : ur_api.h
  • uRecvMail : ur_api.h
  • uRecvMsg : ur_api.h
  • uResumeSuspend : ur_api.h
  • uResumeTask : ur_api.h
  • uScheduleLock : ur_api.h
  • uScheduleUnlock : ur_api.h
  • uSendFet : ur_eapi.h
  • uSendFetion : ur_api.h
  • uSendMail : ur_api.h
  • uSendMsg : ur_api.h
  • uSetBlock_h : ur_api.h
  • uSetBlock_m : ur_api.h
  • uSetBlock_ms : ur_api.h
  • uSetBlock_s : ur_api.h
  • uSetBlock_tc : ur_api.h
  • uSetFlagBit : ur_api.h
  • uSetFlagBits : ur_api.h
  • uSetTaskingPri : ur_api.h
  • uSetTaskPri : ur_api.h
  • uSetTime : ur_api.h
  • uStartTask : ur_api.h
  • uStartTask_Block : ur_api.h
  • uStartTask_Ready : ur_api.h
  • uStartTask_Suspend : ur_api.h
  • uSuspendTask : ur_api.h
  • uSuspendTasking : ur_api.h
  • uTakeBin : ur_api.h
  • uTakeMut : ur_api.h
  • uTakeSem : ur_api.h
  • uTalloc : ur_api.h
  • uTimInt_Cancel : ur_api.h
  • uTimInt_h : ur_api.h
  • uTimInt_m : ur_api.h
  • uTimInt_ms : ur_api.h
  • uTimInt_s : ur_api.h
  • uTimInt_tc : ur_api.h
  • uTimQry_Cancel : ur_api.h
  • uTimQry_h : ur_api.h
  • uTimQry_m : ur_api.h
  • uTimQry_ms : ur_api.h
  • uTimQry_s : ur_api.h
  • uTimQry_tc : ur_api.h
  • uWaitBin : ur_api.h
  • uWaitFlagGroup : ur_api.h
  • uYieldTasking : ur_api.h


CosyOS-III API用户参考手册: 全局定义

  • 文件列表
  • 全局定义
  • 全部
  • 函数
  • 宏定义
  • d
  • i
  • p
  • t
  • u
  • x

- x -

  • xDebugRecv_Handler : ur_api.h
  • xDebugSend_Complete : ur_api.h
  • xDisableIRQ : ur_api.h
  • xMaskingPRI : ur_api.h
  • xResumeIRQ : ur_api.h
  • xResumePRI : ur_api.h
  • xTick_h : ur_api.h
  • xTick_m : ur_api.h
  • xTick_ms : ur_api.h
  • xTick_s : ur_api.h
  • xTimInt_AutoReload : ur_api.h
  • xTimQry_AutoReload : ur_api.h
  • xUpdateCopy : ur_api.h


CosyOS-III API用户参考手册: 图例

图例

本页将向您解释如何理解由 doxygen 生成的图.

考虑如下例子:

1 /*! 由于截断而使 Invisible 不可见 */
2 class Invisible { };
3
4 /*! Truncated 的继承关系将被隐藏 */
5 class Truncated : public Invisible { };
6
7 /* 没有被doxygen文档化的类 */
8 class Undocumented { };
9
10 /*! public 继承关系的类 */
11 class PublicBase : public Truncated { };
12
13 /*! 一个模板类 */
14 template<class T> class Templ { };
15
16 /*! protected 继承关系的类 */
17 class ProtectedBase { };
18
19 /*! private 继承关系的类 */
20 class PrivateBase { };
21
22 /*! 被 Inherited 使用的类 */
23 class Used { };
24
25 /*! 继承自其它若干类的超级类 */
26 class Inherited : public PublicBase,
27 protected ProtectedBase,
28 private PrivateBase,
29 public Undocumented,
30 public Templ<int>
31 {
32 private:
33 Used *m_usedClass;
34 };

结果将会生成以下图:

上图中的矩形有如下意义:

  • 灰色填充的矩形 表示上图是由该结构体或类生成.
  • 黑色边框的矩形 表示已经被文档化的结构体或类.
  • 灰色边框的矩形 表示未被文档化的结构体或类.
  • 红色边框的矩形 表示该结构体或类的关系没有被完全显示.如果生成的图不能调整到制定的尺寸，有一些关系就会被截断而不显示出来.

箭头有如下意义:

  • 深蓝色的箭头被用于展示 public 的继承关系.
  • 深绿色的箭头表示 protected 的继承关系.
  • 深红色的箭头说明了是 privated 的继承关系.
  • 紫色虚线箭头用来表示两个类之间的聚合关系. 被箭头指向的类的类型的变量,可以通过箭头旁标明的变量去访问.
  • 黄色虚线箭头表示模板类实例和模板类之间的关系. 箭头旁边标明了模板类实例化的参数.


CosyOS-III API用户参考手册: 首页

CosyOS-III API用户参考手册 文档


CosyOS-III API用户参考手册: 相关页面

相关页面
这里列出了所有相关页面:
概述：API说明


CosyOS-III API用户参考手册: E:/Keil Projects/book/ur_api.h 源文件

  • 文件列表
  • 全局定义
  • E:
  • Keil Projects
  • book
ur_api.h
浏览该文件的文档.
1 /**************************************************************************/
11 #ifndef __UR_API_H
12 #define __UR_API_H
13
91 /**************************************************************************/
106 s_ecode_t uStartCosyOS(void);
107
116 void tCosyTick_Handler(void);
117
120 /**************************************************************************/
143 #define uExtTask(task) \
144 sCSV_ExtTask(task)
145
151 #define dExtTask(task) \
152 dCSV_ExtTask(task)
153
159 #define uExternTask(task) \
160 sCSV_ExternTask(task)
161
167 #define dExternTask(task) \
168 dCSV_ExternTask(task)
169
189 #define uCreateTask(task, pri, tss, srt, res) \
190 sCSV_CreateTask(task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
191
202 #define dCreateTask(task, pri, tss, srt, res) \
203 dCSV_CreateTask(task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
204
217 #define uCreateTask_TimInt(tmid, arl, task, pri, tss, srt, res) \
218 sCSV_CreateTask_TimInt(tmid, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
219
232 #define dCreateTask_TimInt(tmid, arl, task, pri, tss, srt, res) \
233 dCSV_CreateTask_TimInt(tmid, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
234
248 #define uCreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, res) \
249 sCSV_CreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
250
264 #define dCreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, res) \
265 dCSV_CreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
266
292 #define uStartTask(task, status) \
293 sUSV_StartTask(&u_taskhand_##task, status)
294
305 #define uStartTask_Ready(task) \
306 uStartTask(task, OS_STATUS_READY)
307
318 #define uStartTask_Block(task) \
319 uStartTask(task, OS_STATUS_BLOCKED)
320
331 #define uStartTask_Suspend(task) \
332 uStartTask(task, OS_STATUS_SUSPENDED)
333
352 #define tClearDelay() sTSV_ClearDelay()
353
367 #define uResumeTask(task) \
368 sUSV_ResumeTask(u_taskhandle_##task)
369
383 #define uSuspendTask(task) \
384 sUSV_SuspendTask(u_taskhandle_##task)
385
397 #define uDeleteTask(task) \
398 sUSV_DeleteTask(u_taskhandle_##task)
399
414 #define uSetTaskPri(task, npri) \
415 sUSV_SetTaskPri(u_taskhandle_##task, npri)
416
430 #define uClearBlock(task) \
431 sUSV_ClearBlock(u_taskhandle_##task)
432
458 #define uSetBlock_tc(task, tc) sUSV_SetBlock(u_taskhandle_##task, tc)
459
474 #define uSetBlock_ms(task, ms) uSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
475
490 #define uSetBlock_s(task, s) uSetBlock_ms(task, 1000UL * (s))
491
506 #define uSetBlock_m(task, m) uSetBlock_s(task, 60UL * (m))
507
522 #define uSetBlock_h(task, h) uSetBlock_m(task, 60UL * (h))
523
542 #define uYieldTasking() su_yield_tasking()
543
551 #define uSetTaskingPri(npri) sUSV_SetTaskPri(s_task_current, npri)
552
559 #define uSuspendTasking() sUSV_SuspendTask(s_task_current)
560
567 #define uDeleteTasking() sUSV_DeleteTask(s_task_current)
568
579 #define uResumeSuspend(task) sUSV_ResumeSuspend(u_taskhandle_##task)
580
601 #define uDelay_tc(tc) sUSV_Delay(tc)
602
608 #define uDelay_ms(ms) uDelay_tc((1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
609
615 #define uDelay_s(s) uDelay_ms(1000UL * (s))
616
622 #define uDelay_m(m) uDelay_s(60UL * (m))
623
629 #define uDelay_h(h) uDelay_m(60UL * (h))
630
633 /**************************************************************************/
652 #define uCreateHook_TimInt(tmid, arl, hook) \
653 sCSV_CreateHook_TimInt(tmid, arl, hook)
654
664 #define uTimInt_tc(tmid, tc) sUSV_TimInt(tmid, tc)
665
675 #define uTimInt_ms(tmid, ms) uTimInt_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
676
686 #define uTimInt_s(tmid, s) uTimInt_ms(tmid, 1000UL * (s))
687
697 #define uTimInt_m(tmid, m) uTimInt_s(tmid, 60UL * (m))
698
708 #define uTimInt_h(tmid, h) uTimInt_m(tmid, 60UL * (h))
709
718 #define uTimInt_Cancel(tmid) uTimInt_tc(tmid, 0)
719
728 #define xTimInt_AutoReload(tmid, arl) s_timint_autoreload[tmid] = arl
729
732 /**************************************************************************/
753 #define uCreateHook_TimQry(tmid, event, arl, hook) \
754 sCSV_CreateHook_TimQry(tmid, event, arl, hook)
755
765 #define uTimQry_tc(tmid, tc) sUSV_TimQry(tmid, tc)
766
776 #define uTimQry_ms(tmid, ms) uTimQry_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
777
787 #define uTimQry_s(tmid, s) uTimQry_ms(tmid, 1000UL * (s))
788
798 #define uTimQry_m(tmid, m) uTimQry_s(tmid, 60UL * (m))
799
809 #define uTimQry_h(tmid, h) uTimQry_m(tmid, 60UL * (h))
810
819 #define uTimQry_Cancel(tmid) uTimQry_tc(tmid, ~0)
820
829 #define xTimQry_AutoReload(tmid, arl) s_timqry_autoreload[tmid] = arl
830
833 /**************************************************************************/
848 #define uExternMut(mut) sCSV_ExternMut(mut)
849
856 #define uCreateMut(mut) sCSV_CreateMut(mut)
857
869 #define uTakeMut(mut, tc) sUSV_TakeMut(mut, tc)
870
876 #define uBackMut(mut) sUSV_BackMut(mut)
877
880 /**************************************************************************/
892 #define uExternBin(bin) sCSV_ExternBin(bin)
893
903 #define uCreateBin(bin, init) sCSV_CreateBin(bin, init)
904
915 #define uLockBin(bin) bin.binary = false
916
929 #define uWaitBin(bin, tc) sUSV_WaitBin(bin, tc)
930
941 #define uGiveBin(bin) sUSV_GiveBin(bin)
942
958 #define uTakeBin(bin, tc) sUSV_TakeBin(bin, tc)
959
969 #define uBackBin(bin) uGiveBin(bin)
970
973 /**************************************************************************/
985 #define uExternSem(sem) sCSV_ExternSem(sem)
986
994 #define uCreateSem(sem, init, max) sCSV_CreateSem(sem, init, max)
995
1004 #define uGiveSem(sem) sUSV_GiveSem(sem)
1005
1019 #define uTakeSem(sem, tc) sUSV_TakeSem(sem, tc)
1020
1028 #define uBackSem(sem) uGiveSem(sem)
1029
1032 /**************************************************************************/
1051 #define uExternFlagGroup(group, bits) sCSV_ExternFlagGroup(group, bits)
1052
1058 #define uDefFlagBit(bit) sDefBitField(bit)
1059
1065 #define uDefVoidBits(nvb) sDefVoidBits(nvb)
1066
1073 #define uCreateFlagGroup(group) sCSV_CreateFlagGroup(group)
1074
1087 #define uWaitFlagGroup(group, tc) sUSV_WaitFlagGroup(group, tc)
1088
1099 #define uQueryFlagGroup(group) sUSV_QueryFlagGroup(group)
1100
1109 #define uClearFlagGroup(group) sUSV_ClearFlagGroup(group)
1110
1120 #define uSetFlagBit(group, bit) uSetFlagBits(group, 1) bit)
1121
1131 #define uClearFlagBit(group, bit) uClearFlagBits(group, 1) bit)
1132
1143 #define uSetFlagBits(group, nbit) sUSV_WriteFlagBits(group, true, nbit)
1144
1155 #define uClearFlagBits(group, nbit) sUSV_WriteFlagBits(group, false, nbit)
1156
1159 /**************************************************************************/
1180 #define uExternTionbox(tbox) sCSV_ExternTionbox(tbox)
1181
1187 #define uCreateTionbox(tbox) sCSV_CreateTionbox(tbox)
1188
1206 #define uRecvFetion(tbox, tc) sUSV_RecvFetion(tbox, tc)
1207
1221 #define uSendFetion(tbox, tion) sUSV_SendFetion(tbox, tion)
1222
1225 /**************************************************************************/
1237 #define uExternMailbox(mbox) sCSV_ExternMailbox(mbox)
1238
1244 #define uCreateMailbox(mbox) sCSV_CreateMailbox(mbox)
1245
1259 #define uRecvMail(mbox, tc) sUSV_RecvMail(mbox, tc)
1260
1270 #define uSendMail(mbox, mail) sUSV_SendMail(mbox, mail)
1271
1274 /**************************************************************************/
1290 #define uExternQueue_Static(que) sCSV_ExternQueue_Static(que)
1291
1297 #define uExternQueue_Dynamic(que) sCSV_ExternQueue_Dynamic(que)
1298
1308 #define uCreateQueue_Static(que, mode, len) sCSV_CreateQueue_Static(que, mode, len)
1309
1319 #define uCreateQueue_Dynamic(que, mode, len) sCSV_CreateQueue_Dynamic(que, mode, len)
1320
1335 #define uRecvMsg(que, tc) sUSV_RecvMsg(que, tc)
1336
1350 #define uSendMsg(que, msg) sUSV_SendMsg(que, msg)
1351
1354 /**************************************************************************/
1367 #define xUpdateCopy(code) sUpdateCopy(code)
1368
1376 #define iWhichGVar_Read() s_sign_updatecopy
1377
1384 #define iWriteGVar(gv, lv) sPSV_WriteGVar((void *)&gv, (void *)&lv, sizeof(gv))
1385
1393 #define iWriteGAry(gp, lp, size) sPSV_WriteGVar(gp, lp, size)
1394
1401 #define iWriteGStr(gs, ls) sPSV_WriteGVar(gs, ls, 0)
1402
1408 #define iPendSVC(fp) sPSV_PendSVC(fp)
1409
1415 #define iSendSign(sign) sPSV_SendSign(sign)
1416
1419 /**************************************************************************/
1435 #define uGetTime(t) sUSV_GetTime(t)
1436
1445 #define uSetTime(t) sUSV_SetTime(t)
1446
1449 /**************************************************************************/
1469 #define uMalloc(size) sUSV_Malloc(size)
1470
1479 #define uCalloc(nmemb, size) sUSV_Calloc(nmemb, size)
1480
1489 #define uRealloc(p, size) sUSV_Realloc(p, size)
1490
1496 #define uFree(p) sUSV_Free(p)
1497
1516 #define uCreateMempool() sCSV_CreateMempool()
1517
1526 #define uInitMempool(size) sUSV_InitMempool(size)
1527
1535 #define uTalloc(size) sUSV_Talloc(size)
1536
1542 #define uFreeMempool() sUSV_FreeMempool()
1543
1546 /**************************************************************************/
1571 #define uScheduleLock() su_schedule_locks()
1572
1578 #define uScheduleUnlock() su_schedule_unlocks()
1579
1606 #define uKernelLock() su_kernel_locks()
1607
1613 #define uKernelUnlock() su_kernel_unlocks()
1614
1626 #if MCUCFG_ISA != __ARM__
1627
1639 #define xDisableIRQ() mxDisableIRQ()
1640
1646 #define xResumeIRQ() mxResumeIRQ()
1647
1649 #else
1650
1662 #define xDisableIRQ() mxDisableIRQ()
1663
1669 #define xResumeIRQ(oirq) mxResumeIRQ(oirq)
1670
1692 #define xMaskingPRI(npri) mxMaskingPRI(npri)
1693
1699 #define xResumePRI(opri) mxResumePRI(opri)
1700
1702 #endif
1703
1705 /**************************************************************************/
1723 #define xDebugSend_Complete() s_sign_debugsend = true
1724
1731 #define xDebugRecv_Handler(p, len) \
1732 do{ \
1733 s_debug_recvptr = p; \
1734 s_debug_recvlen = len; \
1735 }while(false)
1736
1751 #define xTick_ms(ms) ((1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
1752
1758 #define xTick_s(s) xTick_ms(1000UL * (s))
1759
1765 #define xTick_m(m) xTick_s(60UL * (m))
1766
1772 #define xTick_h(h) xTick_m(60UL * (h))
1773
1783 #define iPendSV_Set() mPendSV_Set()
1784
1789 #endif
tCosyTick_Handler
void tCosyTick_Handler(void)
CosyOS-滴答
uStartCosyOS
s_ecode_t uStartCosyOS(void)
启动-CosyOS


CosyOS-III API用户参考手册: E:/Keil Projects/book/ur_eapi.h 源文件

  • 文件列表
  • 全局定义
  • E:
  • Keil Projects
  • book
ur_eapi.h
浏览该文件的文档.
1 /**************************************************************************/
12 #ifndef __UR_EAPI_H
13 #define __UR_EAPI_H
14
15
16
17 /* 清除就绪延时 */
18 #define iClearDelay() sPSV_ClearDelay()
19 #define pClearDelay() sPS2_ClearDelay()
20
21 /* 恢复任务 */
22 #define tResumeTask(task) sTSV_ResumeTask(u_taskhandle_##task)
23 #define iResumeTask(task) sPSV_ResumeTask(u_taskhandle_##task)
24 #define pResumeTask(task) sPS2_ResumeTask(u_taskhandle_##task)
25
26 /* 挂起任务 */
27 #define tSuspendTask(task) sTSV_SuspendTask(u_taskhandle_##task)
28 #define iSuspendTask(task) sPSV_SuspendTask(u_taskhandle_##task)
29 #define pSuspendTask(task) sPS2_SuspendTask(u_taskhandle_##task)
30
31 /* 删除任务 */
32 #define tDeleteTask(task) sTSV_DeleteTask(u_taskhandle_##task)
33 #define iDeleteTask(task) sPSV_DeleteTask(u_taskhandle_##task)
34 #define pDeleteTask(task) sPS2_DeleteTask(u_taskhandle_##task)
35
36 /* 设置任务优先级 */
37 #define tSetTaskPri(task, npri) sTSV_SetTaskPri(u_taskhandle_##task, npri)
38 #define iSetTaskPri(task, npri) sPSV_SetTaskPri(u_taskhandle_##task, npri)
39 #define pSetTaskPri(task, npri) sPS2_SetTaskPri(u_taskhandle_##task, npri)
40
41 /* 清除阻塞（状态）*/
42 #define tClearBlock(task) sTSV_ClearBlock(u_taskhandle_##task)
43 #define iClearBlock(task) sPSV_ClearBlock(u_taskhandle_##task)
44 #define pClearBlock(task) sPS2_ClearBlock(u_taskhandle_##task)
45
46 /* 设置阻塞-滴答周期 */
47 #define tSetBlock_tc(task, tc) sTSV_SetBlock(u_taskhandle_##task, tc)
48 #define iSetBlock_tc(task, tc) sPSV_SetBlock(u_taskhandle_##task, tc)
49 #define pSetBlock_tc(task, tc) sPS2_SetBlock(u_taskhandle_##task, tc)
50
51 /* 设置阻塞-毫秒 */
52 #define tSetBlock_ms(task, ms) tSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
53 #define iSetBlock_ms(task, ms) iSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
54 #define pSetBlock_ms(task, ms) pSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
55
56 /* 设置阻塞-秒钟 */
57 #define tSetBlock_s(task, s) tSetBlock_ms(task, 1000UL * (s))
58 #define iSetBlock_s(task, s) iSetBlock_ms(task, 1000UL * (s))
59 #define pSetBlock_s(task, s) pSetBlock_ms(task, 1000UL * (s))
60
61 /* 设置阻塞-分钟 */
62 #define tSetBlock_m(task, m) tSetBlock_s(task, 60UL * (m))
63 #define iSetBlock_m(task, m) iSetBlock_s(task, 60UL * (m))
64 #define pSetBlock_m(task, m) pSetBlock_s(task, 60UL * (m))
65
66 /* 设置阻塞-小时 */
67 #define tSetBlock_h(task, h) tSetBlock_m(task, 60UL * (h))
68 #define iSetBlock_h(task, h) iSetBlock_m(task, 60UL * (h))
69 #define pSetBlock_h(task, h) pSetBlock_m(task, 60UL * (h))
70
71 /* 定时中断-滴答周期 */
72 #define tTimInt_tc(tmid, tc) sTSV_TimInt(tmid, tc)
73 #define iTimInt_tc(tmid, tc) sPSV_TimInt(tmid, tc)
74
75 /* 定时中断-毫秒 */
76 #define tTimInt_ms(tmid, ms) tTimInt_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
77 #define iTimInt_ms(tmid, ms) iTimInt_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
78
79 /* 定时中断-秒钟 */
80 #define tTimInt_s(tmid, s) tTimInt_ms(tmid, 1000UL * (s))
81 #define iTimInt_s(tmid, s) iTimInt_ms(tmid, 1000UL * (s))
82
83 /* 定时中断-分钟 */
84 #define tTimInt_m(tmid, m) tTimInt_s(tmid, 60UL * (m))
85 #define iTimInt_m(tmid, m) iTimInt_s(tmid, 60UL * (m))
86
87 /* 定时中断-小时 */
88 #define tTimInt_h(tmid, h) tTimInt_m(tmid, 60UL * (h))
89 #define iTimInt_h(tmid, h) iTimInt_m(tmid, 60UL * (h))
90
91 /* 终止定时中断 */
92 #define tTimInt_Cancel(tmid) tTimInt_tc(tmid, 0)
93 #define iTimInt_Cancel(tmid) iTimInt_tc(tmid, 0)
94
95 /* 定时查询-滴答周期 */
96 #define tTimQry_tc(tmid, tc) sTSV_TimQry(tmid, tc)
97 #define iTimQry_tc(tmid, tc) sPSV_TimQry(tmid, tc)
98
99 /* 定时查询-毫秒 */
100 #define tTimQry_ms(tmid, ms) tTimQry_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
101 #define iTimQry_ms(tmid, ms) iTimQry_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
102
103 /* 定时查询-秒钟 */
104 #define tTimQry_s(tmid, s) tTimQry_ms(tmid, 1000UL * (s))
105 #define iTimQry_s(tmid, s) iTimQry_ms(tmid, 1000UL * (s))
106
107 /* 定时查询-分钟 */
108 #define tTimQry_m(tmid, m) tTimQry_s(tmid, 60UL * (m))
109 #define iTimQry_m(tmid, m) iTimQry_s(tmid, 60UL * (m))
110
111 /* 定时查询-小时 */
112 #define tTimQry_h(tmid, h) tTimQry_m(tmid, 60UL * (h))
113 #define iTimQry_h(tmid, h) iTimQry_m(tmid, 60UL * (h))
114
115 /* 终止定时查询 */
116 #define tTimQry_Cancel(tmid) tTimQry_tc(tmid, ~0)
117 #define iTimQry_Cancel(tmid) iTimQry_tc(tmid, ~0)
118
119 /* 上锁二值信号量 */
120 #define tLockBin(bin) bin.binary = false
121 #define iLockBin(bin) sPSV_WriteBin(bin, false)
122 #define pLockBin(bin) sPS2_WriteBin(bin, false)
123
124 /* 给予二值信号量 */
125 #define tGiveBin(bin) sTSV_GiveBin(bin)
126 #define iGiveBin(bin) sPSV_WriteBin(bin, true)
127 #define pGiveBin(bin) sPS2_WriteBin(bin, true)
128
129 /* 获取二值信号量 */
130 #define tTakeBin(bin) sTSV_TakeBin(bin)
131 #define iTakeBin(bin) sISV_TakeBin(bin)
132
133 /* 归还二值信号量 */
134 #define tBackBin(bin) bin.binary = true
135 #define iBackBin(bin) bin.binary = true
136
137 /* 给予计数信号量 */
138 #define tGiveSem(sem) sTSV_GiveSem(sem)
139 #define iGiveSem(sem) sPSV_GiveSem(sem)
140
141 /* 获取计数信号量 */
142 #define tTakeSem(sem) sTSV_TakeSem(sem)
143
144 /* 归还计数信号量 */
145 #define tBackSem(sem) tGiveSem(sem)
146
147 /* 接收飞信 */
148 #define tRecvFetion(tbox) sTSV_RecvFetion(tbox)
149 #define iRecvFetion(tbox) sISV_RecvFetion(tbox)
150
151 /* 发送飞信 */
152 #define tSendFetion(tbox, tion) sTSV_SendFetion(tbox, tion)
153 #define iSendFetion(tbox, tion) sPSV_SendFetion(tbox, tion)
154
155 /* 接收邮件 */
156 #define tRecvMail(mbox) sTSV_RecvMail(mbox)
157 #define iRecvMail(mbox) sISV_RecvMail(mbox)
158
159 /* 发送邮件 */
160 #define tSendMail(mbox, mail) sTSV_SendMail(mbox, mail)
161 #define iSendMail(mbox, mail) sPSV_SendMail(mbox, mail)
162
163 /* 接收消息 */
164 #define tRecvMsg(que) sTSV_RecvMsg(que)
165 #define iRecvMsg(que) sISV_RecvMsg(que)
166
167 /* 发送消息 */
168 #define tSendMsg(que, msg) sTSV_SendMsg(que, msg)
169 #define iSendMsg(que, msg) sPSV_SendMsg(que, msg)
170
171 /* 查询标志组 */
172 #define tQueryFlagGroup(group) sTSV_QueryFlagGroup(group)
173 #define iQueryFlagGroup(group) sISV_QueryFlagGroup(group)
174
175 /* 清除标志组 */
176 #define tClearFlagGroup(group) sTSV_ClearFlagGroup(group)
177 #define iClearFlagGroup(group) sPSV_ClearFlagGroup(group)
178
179 /* 设置标志位 */
180 #define tSetFlagBit(group, bit) tSetFlagBits(group, 1) bit)
181 #define iSetFlagBit(group, bit) iSetFlagBits(group, 1) bit)
182
183 /* 清除标志位 */
184 #define tClearFlagBit(group, bit) tClearFlagBits(group, 1) bit)
185 #define iClearFlagBit(group, bit) iClearFlagBits(group, 1) bit)
186
187 /* 设置多标志位 */
188 #define tSetFlagBits(group, nbit) sTSV_WriteFlagBits(group, true, nbit)
189 #define iSetFlagBits(group, nbit) sPSV_WriteFlagBits(group, +, nbit)
190
191 /* 清除多标志位 */
192 #define tClearFlagBits(group, nbit) sTSV_WriteFlagBits(group, false, nbit)
193 #define iClearFlagBits(group, nbit) sPSV_WriteFlagBits(group, -, nbit)
194
195 /* 获取时间 */
196 #define tGetTime(t) sTSV_GetTime(t)
197 #define iGetTime(t) sISV_GetTime(t)
198
199 /* 设置时间 */
200 #define tSetTime(t) sTSV_SetTime(t)
201 #define iSetTime(t) sPSV_SetTime(t)
202
203 /* 别名定义（API简化）*/
204 #define uRecvFet uRecvFetion
205 #define tRecvFet tRecvFetion
206 #define iRecvFet iRecvFetion
207 #define uSendFet uSendFetion
208 #define tSendFet tSendFetion
209 #define iSendFet iSendFetion
210
211
212
213 #endif