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

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

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

  • API分类
  • 创建API
    静态创建：前缀为“u”，分为 声明对象（uExtern）、创建对象（uCreate）、定义对象（uDef）。
    动态创建：前缀为“d”，分为 声明对象（dExtern）、创建对象（dCreate）。
  • 任务API
    前缀为“u”，指仅在 任务 中调用。
  • 滴答API
    前缀为“t”，指仅在 SysTick中断 中调用，包括在 滴答钩子（tick_hook）、
    定时中断钩子（u_timint_##tmid）、定时查询钩子（u_timqry_##tmid）、
    定时查询事件（u_timqryevent_##tmid）中调用。
  • PSVAPI
    前缀为“p”，指仅在 PendSV中断 中调用，包括通过挂起服务调用（iPendSVC）间接调用、
    在挂起服务钩子（pendsv_hook）中调用。
  • 中断API
    前缀为“i”，指仅在 用户中断 中调用，包括 中断本地服务、中断挂起服务_FIFO。
  • 公共API
    前缀为“x”，指可在 任意处 调用。

  • API返回
  • 无返回
    （1）服务的执行结果一定是成功的，所以不需要返回。
    （2）所有中断挂起服务_FIFO均无法直接返回，但其中的部分服务允许支持错误调用返回。
  • 返回错误码
    服务的执行结果可能会失败，导致失败的原因可能有多个。
    （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 |
▼ 杂项 |
中断挂起服务_FIFO-错误调用返回 |
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 | uExtTaskmsg(task) sCSV_ExtTaskmsg(task)
简化声明静态私信任务 更多...
#define | dExtTaskmsg(task) dCSV_ExtTaskmsg(task)
简化声明动态私信任务 更多...
#define | uExternTask(task) sCSV_ExternTask(task)
完整声明静态一般任务 更多...
#define | dExternTask(task) dCSV_ExternTask(task)
完整声明动态一般任务 更多...
#define | uExternTaskmsg(task) sCSV_ExternTaskmsg(task)
完整声明静态私信任务 更多...
#define | dExternTaskmsg(task) dCSV_ExternTaskmsg(task)
完整声明动态私信任务 更多...

详细描述

任务线程的声明

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

宏定义说明

#define dExternTask ( task ) dCSV_ExternTask(task)

完整声明动态一般任务

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

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

#define dExternTaskmsg ( task ) dCSV_ExternTaskmsg(task)

完整声明动态私信任务

参数
[in] | task | 任务名称
[in] | add(...) | 附加私信形参
返回
无

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

#define dExtTask ( task ) dCSV_ExtTask(task)

简化声明动态一般任务

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

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

#define dExtTaskmsg ( task ) dCSV_ExtTaskmsg(task)

简化声明动态私信任务

参数
[in] | task | 任务名称
[in] | add(...) | 附加私信形参
返回
无

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

#define uExternTask ( task ) sCSV_ExternTask(task)

完整声明静态一般任务

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

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

#define uExternTaskmsg ( task ) sCSV_ExternTaskmsg(task)

完整声明静态私信任务

参数
[in] | task | 任务名称
[in] | add(...) | 附加私信形参
返回
无

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

#define uExtTask ( task ) sCSV_ExtTask(task)

简化声明静态一般任务

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

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

#define uExtTaskmsg ( task ) sCSV_ExtTaskmsg(task)

简化声明静态私信任务

参数
[in] | task | 任务名称
[in] | add(...) | 附加私信形参
返回
无

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


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 | uCreateTaskmsg(task, pri, tss, srt, res, ntm) sCSV_CreateTaskmsg(task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res), ntm)
静态创建私信任务 更多...
#define | dCreateTaskmsg(task, pri, tss, srt, res, ntm) dCSV_CreateTaskmsg(task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res), ntm)
动态创建私信任务 更多...
#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 第 242 行定义.

#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 第 308 行定义.

#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 第 340 行定义.

#define dCreateTaskmsg | ( | task,
 |  | pri,
 |  | tss,
 |  | srt,
 |  | res,
 |  | ntm
 | ) | dCSV_CreateTaskmsg(task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res), ntm)

动态创建私信任务

参数
[in] | task | 任务名称
[in] | pri | 任务优先级
[in] | tss | 任务栈大小（单位为字节）
[in] | srt | 安全运行时（单位为滴答周期，0为无限长）
[in] | res | 任务名称文本
[in] | ntm | 私信参数数量（1~8 个）
[in] add(...) 附加私信形参
形参类型：任意数据类型
形参名称：必须依次为 tm1、tm2...
示 例：(int tm1, float tm2, char *tm3)
[in] | add{...} | 附加任务代码
返回
无

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

#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 第 229 行定义.

#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 第 293 行定义.

#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 第 324 行定义.

#define uCreateTaskmsg | ( | task,
 |  | pri,
 |  | tss,
 |  | srt,
 |  | res,
 |  | ntm
 | ) | sCSV_CreateTaskmsg(task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res), ntm)

静态创建私信任务

参数
[in] | task | 任务名称
[in] | pri | 任务优先级
[in] | tss | 任务栈大小（单位为字节）
[in] | srt | 安全运行时（单位为滴答周期，0为无限长）
[in] | res | 任务名称文本
[in] | ntm | 私信参数数量（1~8 个）
[in] add(...) 附加私信形参
形参类型：任意数据类型
形参名称：必须依次为 tm1、tm2...
示 例：(int tm1, float tm2, char *tm3)
[in] | add{...} | 附加任务代码
返回
无

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


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

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

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

启动任务 的协作图:

宏定义

#define | uStartTask(task, status) sUSV_StartTask_1(&sCat2Str(u_taskhand_, task), status, sCat2Str(u_task_, task))
启动任务 更多...
#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_1(&sCat2Str(u_taskhand_, task), status, sCat2Str(u_task_, task))

启动任务

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

参数
[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 第 369 行定义.

#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 第 399 行定义.

#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 第 386 行定义.

#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 第 412 行定义.


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

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

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

操作任务 的协作图:

模块

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

宏定义

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

详细描述

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

宏定义说明

#define tClearDelay ( ) sTSV_ClearDelay()

清除就绪延时

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

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

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

#define uClearBlock ( task ) sUSV_ClearBlock(task)

清除阻塞（状态）

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

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

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

#define uDeleteTask ( task ) sUSV_DeleteTask(task)

删除任务

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

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

#define uResumeTask ( task ) sUSV_ResumeTask(task)

恢复任务

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

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

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

设置任务优先级

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

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

#define uSuspendTask ( task ) sUSV_SuspendTask(task)

挂起任务

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

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


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

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

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

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

宏定义

#define | uSetBlock_tc(task, tc) sUSV_SetBlock(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)，同返回。
pSetBlock_h(task, h)，同返回。
iSetBlock_h(task, h)，无返回/错误调用返回。

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

#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)，同返回。
pSetBlock_m(task, m)，同返回。
iSetBlock_m(task, m)，无返回/错误调用返回。

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

#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)，同返回。
pSetBlock_ms(task, ms)，同返回。
iSetBlock_ms(task, ms)，无返回/错误调用返回。

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

#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)，同返回。
pSetBlock_s(task, s)，同返回。
iSetBlock_s(task, s)，无返回/错误调用返回。

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

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

设置阻塞-滴答周期

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

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


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(task)
恢复指定任务并挂起自身任务 更多...

详细描述

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

宏定义说明

#define uDeleteTasking ( ) sUSV_DeleteTask(s_task_current)

删除自身任务

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

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

#define uResumeSuspend ( task ) sUSV_ResumeSuspend(task)

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

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

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

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

设置自身任务优先级

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

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

#define uSuspendTasking ( ) sUSV_SuspendTask(s_task_current)

挂起自身任务

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

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

#define uYieldTasking ( ) su_yield_tasking()

禅让任务

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

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

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


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 第 705 行定义.

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

延时-分钟

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

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

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

延时-毫秒

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

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

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

延时-秒钟

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

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

#define uDelay_tc ( tc ) sUSV_Delay(tc)

延时-滴答周期

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

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


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

宏定义
定时中断
CosyOS_用户API

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

定时中断 的协作图:

宏定义

#define | uCreateHook_TimInt(tmid, arl) sCSV_CreateHook_TimInt(tmid, arl)
创建定时中断钩子 更多...
#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
 | ) | sCSV_CreateHook_TimInt(tmid, arl)

创建定时中断钩子

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

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

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

终止定时中断

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

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

#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 第 783 行定义.

#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 第 772 行定义.

#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 第 750 行定义.

#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 第 761 行定义.

#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 第 739 行定义.

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

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

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

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


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

宏定义
定时查询
CosyOS_用户API

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

定时查询 的协作图:

宏定义

#define | uCreateHook_TimQry(tmid, event, arl) sCSV_CreateHook_TimQry(tmid, event, arl)
创建定时查询钩子 更多...
#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
 | ) | sCSV_CreateHook_TimQry(tmid, event, arl)

创建定时查询钩子

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

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

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

终止定时查询

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

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

#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 第 883 行定义.

#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 第 872 行定义.

#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 第 850 行定义.

#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 第 861 行定义.

#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 第 839 行定义.

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

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

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

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


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 第 950 行定义.

#define uCreateMut ( mut ) sCSV_CreateMut(mut)

创建互斥信号量

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

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

#define uExternMut ( mut ) sCSV_ExternMut(mut)

声明互斥信号量

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

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

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

获取互斥信号量

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

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


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 第 1043 行定义.

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

创建二值信号量

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

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

#define uExternBin ( bin ) sCSV_ExternBin(bin)

声明二值信号量

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

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

#define uGiveBin ( bin ) sUSV_GiveBin(bin)

给予二值信号量

专用于事件同步。

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

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

#define uLockBin ( bin ) bin.binary = false

上锁二值信号量

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

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

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

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

获取二值信号量

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

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

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

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

等待二值信号量

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

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

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


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 第 1102 行定义.

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

创建计数信号量

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

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

#define uExternSem ( sem ) sCSV_ExternSem(sem)

声明计数信号量

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

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

#define uGiveSem ( sem ) sUSV_GiveSem(sem)

给予计数信号量

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

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

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

获取计数信号量

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

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


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 第 1205 行定义.

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

清除多标志位

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

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

#define uClearFlagGroup ( group ) sUSV_ClearFlagGroup(group)

清除标志组

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

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

#define uCreateFlagGroup ( group ) sCSV_CreateFlagGroup(group)

创建标志组

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

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

#define uDefFlagBit ( bit ) sDefBitField(bit)

定义标志位

参数
[in] bit 位名
返回
无

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

#define uDefVoidBits ( nvb ) sDefVoidBits(nvb)

定义空位

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

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

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

声明标志组

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

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

#define uQueryFlagGroup ( group ) sUSV_QueryFlagGroup(group)

查询标志组

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

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

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

设置标志位

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

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

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

设置多标志位

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

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

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

等待标志组

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

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


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

宏定义
私信
CosyOS_用户API

随意定义、灵活多变。 更多...

私信 的协作图:

宏定义

#define | uRecvTaskmsg(tc) sUSV_RecvTaskmsg(tc)
接收私信

别名
uRecvTM 更多...
#define | uSendTaskmsg(task) sUSV_SendTaskmsg(task)
发送私信

别名
uSendTM 更多...
#define | uEndTaskmsg() }while(true)
结束私信任务 更多...

详细描述

随意定义、灵活多变。

私信是CosyOS独创的一种任务间通信方式，其实质就是任务函数形参。

注解
私信参数说明：
1、私信参数的数量支持：1~8 个；
2、各个参数的数据类型可为任意类型，只要编译器支持即可；
3、各个参数的名称必须依次为：tm1、tm2...，用户可自行宏定义别名提高易用性。

宏定义说明

#define uEndTaskmsg ( ) }while(true)

结束私信任务

私信任务的最后一句代码。

返回
无

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

#define uRecvTaskmsg ( tc ) sUSV_RecvTaskmsg(tc)

接收私信

别名
uRecvTM

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

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

#define uSendTaskmsg ( task ) sUSV_SendTaskmsg(task)

发送私信

别名
uSendTM

参数
[in] | task | 任务名称
[in] | add(...) | 附加私信实参
返回
无
注解
同型服务：
tSendTaskmsg(task) / tSendTM。
警告
如果在条件分支内调用，分支语句的{}不可省略。

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


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 第 1313 行定义.

#define uExternTionbox ( tbox ) sCSV_ExternTionbox(tbox)

声明信箱

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

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

#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 第 1332 行定义.

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

发送飞信

别名
uSendFet

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

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


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 第 1370 行定义.

#define uExternMailbox ( mbox ) sCSV_ExternMailbox(mbox)

声明邮箱

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

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

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

接收邮件

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

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

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

发送邮件

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

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


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 第 1445 行定义.

#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 第 1434 行定义.

#define uExternQueue_Dynamic ( que ) sCSV_ExternQueue_Dynamic(que)

声明动态队列

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

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

#define uExternQueue_Static ( que ) sCSV_ExternQueue_Static(que)

声明静态队列

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

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

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

接收消息

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

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

#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 第 1476 行定义.


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

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

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

全局变量访问 的协作图:

宏定义

#define | iWriteGVar(gv, lv) sIPS_WriteGVar((void *)&gv, (void *)&lv, sizeof(gv))
写全局变量 更多...
#define | iWriteGAry(gp, lp, size) sIPS_WriteGVar(gp, lp, size)
写全局数组 更多...
#define | iWriteGStr(gs, ls) sIPS_WriteGVar(gs, ls, 0)
写全局字符串 更多...
#define | iPendSVC(fp) sIPS_PendSVC(fp)
挂起服务调用 更多...

详细描述

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

注解
全局的结构体、数组、字符串等，都可视为非原子型全局变量。
原子型访问：
滴答中：直接->读访问、写访问、自运算。
任务中：直接->读访问、写访问，内核上锁后->自运算。
中断中：直接->读访问，调用服务->写访问、自运算。
非原子型访问：
滴答中：直接->读访问、写访问、自运算。
任务中：内核上锁后->读访问、写访问、自运算。
中断中：不可以读访问，调用服务->写访问、自运算。
不可以读访问：
建议挂起到PendSV中，或同步至某任务中处理事件。
挂起到PendSV中：iPendSVC(fp) 或 pendsv_hook()，均可直接->读访问；
同步至某任务中：内核上锁后->读访问。

宏定义说明

#define iPendSVC ( fp ) sIPS_PendSVC(fp)

挂起服务调用

参数
[in] fp 函数指针
返回
无
注解
适用于全局变量自运算、事件处理等。

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

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

写全局数组

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

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

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

写全局字符串

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

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

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

写全局变量

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

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


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 *）
返回
t（void *）
注解
同型服务：
tGetTime(t)。

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

#define uSetTime ( t ) sUSV_SetTime(t)

设置时间

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

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


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 第 1595 行定义.

#define uFree ( p ) sUSV_Free(p)

free

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

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

#define uMalloc ( size ) sUSV_Malloc(size)

malloc

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

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

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

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

realloc

重新分配内存。

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

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


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 第 1632 行定义.

#define uFreeMempool ( ) sUSV_FreeMempool()

释放线程内存池

参数
无
返回
无

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

#define uInitMempool ( size ) sUSV_InitMempool(size)

初始化线程内存池

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

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

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

#define uTalloc ( size ) sUSV_Talloc(size)

线程内存分配

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

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

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


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 第 1687 行定义.

#define uScheduleUnlock ( ) su_schedule_unlocks()

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

参数
无
返回
无

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


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

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

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

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

宏定义

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

详细描述

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

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

宏定义说明

#define uKernelLock ( ) su_kernel_locks()

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

参数
无
返回
无

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

#define uKernelUnlock ( ) su_kernel_unlocks()

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

参数
无
返回
无

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


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 第 1776 行定义.

#define xResumeIRQ ( oirq ) mxResumeIRQ(oirq)

退出全局临界区

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

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


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 第 1806 行定义.

#define xResumePRI ( opri ) mxResumePRI(opri)

退出全局临界区

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

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


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

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

模块

中断挂起服务_FIFO-错误调用返回
DEBUG
DEBUG接口，串口发送与接收的实现。
时间单位转换
把其它单位的时间转换为滴答周期。

宏定义

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

详细描述

宏定义说明

#define iPendSV_Set ( ) mPendSV_Set()

触发PendSV

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

参数
无
返回
无

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


CosyOS-III API用户参考手册: 中断挂起服务_FIFO-错误调用返回

宏定义 | 函数
中断挂起服务_FIFO-错误调用返回
CosyOS_用户API » 杂项
中断挂起服务_FIFO-错误调用返回 的协作图:

宏定义

#define pECode_ErrorCallback() s_psvfifo_ecode
error code of error callback 更多...

函数

void | pResumeTask_ErrorCallback (s_tasknode_tsp htask)
iResumeTask(task) error callback 更多...
void | pSuspendTask_ErrorCallback (s_tasknode_tsp htask)
iSuspendTask(task) error callback 更多...
void | pDeleteTask_ErrorCallback (s_tasknode_tsp htask)
iDeleteTask(task) error callback 更多...
void | pClearBlock_ErrorCallback (s_tasknode_tsp htask)
iClearBlock(task) error callback 更多...
void | pSetBlock_ErrorCallback (s_tasknode_tsp htask, s_delay_t tick)
iSetBlock_x(task, x) error callback 更多...
void | pSetTaskPri_ErrorCallback (s_tasknode_tsp htask, s_u8_t npri)
iSetTaskPri(task, npri) error callback 更多...
void | pSendMsg_ErrorCallback (s_msgque_tsp hque, void *msg)
iSendMsg(que, msg) error callback 更多...

详细描述

注解
当需要回调时，下列的回调函数可以在用户文件中实现。
对于8051来说，如果系统中断被配置为使用独立的REGBANK（与任务使用不同的REGBANK），
下列的回调函数需要添加using属性、或声明为相对寄存器访问。参见 tick_hook.c 中示例。

宏定义说明

#define pECode_ErrorCallback ( ) s_psvfifo_ecode

error code of error callback

参数
无
返回
错误码（s_ecode_t）

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

函数说明

void pClearBlock_ErrorCallback ( s_tasknode_tsp htask )

iClearBlock(task) error callback

参数
[in] htask 任务句柄
返回
无
void pDeleteTask_ErrorCallback ( s_tasknode_tsp htask )

iDeleteTask(task) error callback

参数
[in] htask 任务句柄
返回
无
void pResumeTask_ErrorCallback ( s_tasknode_tsp htask )

iResumeTask(task) error callback

参数
[in] htask 任务句柄
返回
无
void pSendMsg_ErrorCallback | ( | s_msgque_tsp | hque,
 |  | void * | msg
 | ) |  |

iSendMsg(que, msg) error callback

参数
[in] | hque | 队列句柄
[in] | msg | 消息指针
返回
无
void pSetBlock_ErrorCallback | ( | s_tasknode_tsp | htask,
 |  | s_delay_t | tick
 | ) |  |

iSetBlock_x(task, x) error callback

iSetBlock_tc(task, tc)、iSetBlock_ms(task, ms)、iSetBlock_s(task, s)、 iSetBlock_m(task, m)、iSetBlock_h(task, h)，都通过该函数实现错误调用返回。

参数
[in] | htask | 任务句柄
[in] | tick | 滴答周期（阻塞时间）
返回
无
void pSetTaskPri_ErrorCallback | ( | s_tasknode_tsp | htask,
 |  | s_u8_t | npri
 | ) |  |

iSetTaskPri(task, npri) error callback

参数
[in] | htask | 任务句柄
[in] | npri | 新优先级
返回
无
void pSuspendTask_ErrorCallback ( s_tasknode_tsp htask )

iSuspendTask(task) error callback

参数
[in] htask 任务句柄
返回
无


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

宏定义
DEBUG
CosyOS_用户API » 杂项

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

DEBUG 的协作图:

宏定义

#define | xDebugSend_Complete() s_debug_sendsign = 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 第 1917 行定义.

#define xDebugSend_Complete ( ) s_debug_sendsign = true

DEBUG发送完成

参数
无
返回
无

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


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 第 1958 行定义.

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

分钟转换为滴答周期

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

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

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

毫秒转换为滴答周期

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

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

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

秒钟转换为滴答周期

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

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


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 更多...

#include "os_redef.h"
ur_api.h 的引用(Include)关系图:

浏览源代码.

宏定义

#define | uExtTask(task) sCSV_ExtTask(task)
简化声明静态一般任务 更多...
#define | dExtTask(task) dCSV_ExtTask(task)
简化声明动态一般任务 更多...
#define | uExtTaskmsg(task) sCSV_ExtTaskmsg(task)
简化声明静态私信任务 更多...
#define | dExtTaskmsg(task) dCSV_ExtTaskmsg(task)
简化声明动态私信任务 更多...
#define | uExternTask(task) sCSV_ExternTask(task)
完整声明静态一般任务 更多...
#define | dExternTask(task) dCSV_ExternTask(task)
完整声明动态一般任务 更多...
#define | uExternTaskmsg(task) sCSV_ExternTaskmsg(task)
完整声明静态私信任务 更多...
#define | dExternTaskmsg(task) dCSV_ExternTaskmsg(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 | uCreateTaskmsg(task, pri, tss, srt, res, ntm) sCSV_CreateTaskmsg(task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res), ntm)
静态创建私信任务 更多...
#define | dCreateTaskmsg(task, pri, tss, srt, res, ntm) dCSV_CreateTaskmsg(task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res), ntm)
动态创建私信任务 更多...
#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_1(&sCat2Str(u_taskhand_, task), status, sCat2Str(u_task_, task))
启动任务 更多...
#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(task)
恢复任务 更多...
#define | uSuspendTask(task) sUSV_SuspendTask(task)
挂起任务 更多...
#define | uDeleteTask(task) sUSV_DeleteTask(task)
删除任务 更多...
#define | uSetTaskPri(task, npri) sUSV_SetTaskPri(task, npri)
设置任务优先级 更多...
#define | uClearBlock(task) sUSV_ClearBlock(task)
清除阻塞（状态） 更多...
#define | uSetBlock_tc(task, tc) sUSV_SetBlock(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(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) sCSV_CreateHook_TimInt(tmid, arl)
创建定时中断钩子 更多...
#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) sCSV_CreateHook_TimQry(tmid, event, arl)
创建定时查询钩子 更多...
#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 | uRecvTaskmsg(tc) sUSV_RecvTaskmsg(tc)
接收私信

别名
uRecvTM 更多...
#define | uSendTaskmsg(task) sUSV_SendTaskmsg(task)
发送私信

别名
uSendTM 更多...
#define | uEndTaskmsg() }while(true)
结束私信任务 更多...
#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 | iWriteGVar(gv, lv) sIPS_WriteGVar((void *)&gv, (void *)&lv, sizeof(gv))
写全局变量 更多...
#define | iWriteGAry(gp, lp, size) sIPS_WriteGVar(gp, lp, size)
写全局数组 更多...
#define | iWriteGStr(gs, ls) sIPS_WriteGVar(gs, ls, 0)
写全局字符串 更多...
#define | iPendSVC(fp) sIPS_PendSVC(fp)
挂起服务调用 更多...
#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 | pECode_ErrorCallback() s_psvfifo_ecode
error code of error callback 更多...
#define | xDebugSend_Complete() s_debug_sendsign = 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-滴答 更多...
void | pResumeTask_ErrorCallback (s_tasknode_tsp htask)
iResumeTask(task) error callback 更多...
void | pSuspendTask_ErrorCallback (s_tasknode_tsp htask)
iSuspendTask(task) error callback 更多...
void | pDeleteTask_ErrorCallback (s_tasknode_tsp htask)
iDeleteTask(task) error callback 更多...
void | pClearBlock_ErrorCallback (s_tasknode_tsp htask)
iClearBlock(task) error callback 更多...
void | pSetBlock_ErrorCallback (s_tasknode_tsp htask, s_delay_t tick)
iSetBlock_x(task, x) error callback 更多...
void | pSetTaskPri_ErrorCallback (s_tasknode_tsp htask, s_u8_t npri)
iSetTaskPri(task, npri) error callback 更多...
void | pSendMsg_ErrorCallback (s_msgque_tsp hque, void *msg)
iSendMsg(que, msg) error callback 更多...

详细描述

用户API

CosyOS-III Kernel

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

作者
迟凯峰
版本
V2.3.0
日期
2026.02.01

在文件 ur_api.h 中定义.


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

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

用户API扩展 更多...

浏览源代码.

宏定义

#define | pClearDelay() sPSV_ClearDelay()
#define | iClearDelay() sIPS_ClearDelay()
#define | tResumeTask(task) sTSV_ResumeTask(task)
#define | pResumeTask(task) sPSV_ResumeTask(task)
#define | iResumeTask(task) sIPS_ResumeTask(task)
#define | tSuspendTask(task) sTSV_SuspendTask(task)
#define | pSuspendTask(task) sPSV_SuspendTask(task)
#define | iSuspendTask(task) sIPS_SuspendTask(task)
#define | tDeleteTask(task) sTSV_DeleteTask(task)
#define | pDeleteTask(task) sPSV_DeleteTask(task)
#define | iDeleteTask(task) sIPS_DeleteTask(task)
#define | tSetTaskPri(task, npri) sTSV_SetTaskPri(task, npri)
#define | pSetTaskPri(task, npri) sPSV_SetTaskPri(task, npri)
#define | iSetTaskPri(task, npri) sIPS_SetTaskPri(task, npri)
#define | tClearBlock(task) sTSV_ClearBlock(task)
#define | pClearBlock(task) sPSV_ClearBlock(task)
#define | iClearBlock(task) sIPS_ClearBlock(task)
#define | tSetBlock_tc(task, tc) sTSV_SetBlock(task, tc)
#define | pSetBlock_tc(task, tc) sPSV_SetBlock(task, tc)
#define | iSetBlock_tc(task, tc) sIPS_SetBlock(task, tc)
#define | tSetBlock_ms(task, ms) tSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
#define | pSetBlock_ms(task, ms) pSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
#define | iSetBlock_ms(task, ms) iSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
#define | tSetBlock_s(task, s) tSetBlock_ms(task, 1000UL * (s))
#define | pSetBlock_s(task, s) pSetBlock_ms(task, 1000UL * (s))
#define | iSetBlock_s(task, s) iSetBlock_ms(task, 1000UL * (s))
#define | tSetBlock_m(task, m) tSetBlock_s(task, 60UL * (m))
#define | pSetBlock_m(task, m) pSetBlock_s(task, 60UL * (m))
#define | iSetBlock_m(task, m) iSetBlock_s(task, 60UL * (m))
#define | tSetBlock_h(task, h) tSetBlock_m(task, 60UL * (h))
#define | pSetBlock_h(task, h) pSetBlock_m(task, 60UL * (h))
#define | iSetBlock_h(task, h) iSetBlock_m(task, 60UL * (h))
#define | tGiveBin(bin) sTSV_GiveBin(bin)
#define | pGiveBin(bin) sPSV_GiveBin(bin)
#define | iGiveBin(bin) sIPS_WriteBin(bin, true)
#define | tLockBin(bin) bin.binary = false
#define | pLockBin(bin) bin.binary = false
#define | iLockBin(bin) sIPS_WriteBin(bin, false)
#define | tGiveSem(sem) sTSV_GiveSem(sem)
#define | iGiveSem(sem) sIPS_GiveSem(sem)
#define | tSendFetion(tbox, tion) sTSV_SendFetion(tbox, tion)
#define | iSendFetion(tbox, tion) sIPS_SendFetion(tbox, tion)
#define | tSendMail(mbox, mail) sTSV_SendMail(mbox, mail)
#define | iSendMail(mbox, mail) sIPS_SendMail(mbox, mail)
#define | tSendMsg(que, msg) sTSV_SendMsg(que, msg)
#define | iSendMsg(que, msg) sIPS_SendMsg(que, msg)
#define | tClearFlagGroup(group) sTSV_ClearFlagGroup(group)
#define | iClearFlagGroup(group) sIPS_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) sIPS_WriteFlagBits(group, +, nbit)
#define | tClearFlagBits(group, nbit) sTSV_WriteFlagBits(group, false, nbit)
#define | iClearFlagBits(group, nbit) sIPS_WriteFlagBits(group, -, nbit)
#define | tTimInt_tc(tmid, tc) sTSV_TimInt(tmid, tc)
#define | iTimInt_tc(tmid, tc) sIPS_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) sIPS_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 | tSetTime(t) sTSV_SetTime(t)
#define | iSetTime(t) sIPS_SetTime(t)
#define | tBackBin(bin) bin.binary = true
#define | iBackBin(bin) bin.binary = true
#define | tTakeBin(bin) sTSV_TakeBin(bin)
#define | iTakeBin(bin) sISV_TakeBin(bin)
#define | tRecvFetion(tbox) sTSV_RecvFetion(tbox)
#define | iRecvFetion(tbox) sISV_RecvFetion(tbox)
#define | tRecvMail(mbox) sTSV_RecvMail(mbox)
#define | iRecvMail(mbox) sISV_RecvMail(mbox)
#define | tRecvMsg(que) sTSV_RecvMsg(que)
#define | iRecvMsg(que) sISV_RecvMsg(que)
#define | tQueryFlagGroup(group) sTSV_QueryFlagGroup(group)
#define | iQueryFlagGroup(group) sISV_QueryFlagGroup(group)
#define | tGetTime(t) sTSV_GetTime(t)
#define | tTakeSem(sem) sTSV_TakeSem(sem)
#define | tBackSem(sem) tGiveSem(sem)
#define | tSendTaskmsg(task) sTSV_SendTaskmsg(task)
#define | uRecvTM uRecvTaskmsg
#define | uSendTM uSendTaskmsg
#define | tSendTM tSendTaskmsg
#define | uEndTM uEndTaskmsg
#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。

作者
迟凯峰
版本
V2.3.0
日期
2026.02.01

在文件 ur_eapi.h 中定义.

宏定义说明

#define iBackBin ( bin ) bin.binary = true

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

#define iClearBlock ( task ) sIPS_ClearBlock(task)

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

#define iClearDelay ( ) sIPS_ClearDelay()

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

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

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

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

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

#define iClearFlagGroup ( group ) sIPS_ClearFlagGroup(group)

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

#define iDeleteTask ( task ) sIPS_DeleteTask(task)

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

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

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

#define iGiveSem ( sem ) sIPS_GiveSem(sem)

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

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

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

#define iQueryFlagGroup ( group ) sISV_QueryFlagGroup(group)

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

#define iRecvFet iRecvFetion

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

#define iRecvFetion ( tbox ) sISV_RecvFetion(tbox)

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

#define iRecvMail ( mbox ) sISV_RecvMail(mbox)

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

#define iRecvMsg ( que ) sISV_RecvMsg(que)

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

#define iResumeTask ( task ) sIPS_ResumeTask(task)

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

#define iSendFet iSendFetion

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#define iSetBlock_tc | ( | task,
 |  | tc
 | ) | sIPS_SetBlock(task, tc)

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

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

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

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

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

#define iSetTaskPri | ( | task,
 |  | npri
 | ) | sIPS_SetTaskPri(task, npri)

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

#define iSetTime ( t ) sIPS_SetTime(t)

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

#define iSuspendTask ( task ) sIPS_SuspendTask(task)

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

#define iTakeBin ( bin ) sISV_TakeBin(bin)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#define pClearBlock ( task ) sPSV_ClearBlock(task)

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

#define pClearDelay ( ) sPSV_ClearDelay()

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

#define pDeleteTask ( task ) sPSV_DeleteTask(task)

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

#define pGiveBin ( bin ) sPSV_GiveBin(bin)

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

#define pLockBin ( bin ) bin.binary = false

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

#define pResumeTask ( task ) sPSV_ResumeTask(task)

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

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

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

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

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

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

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

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

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

#define pSetBlock_tc | ( | task,
 |  | tc
 | ) | sPSV_SetBlock(task, tc)

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

#define pSetTaskPri | ( | task,
 |  | npri
 | ) | sPSV_SetTaskPri(task, npri)

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

#define pSuspendTask ( task ) sPSV_SuspendTask(task)

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

#define tBackBin ( bin ) bin.binary = true

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

#define tBackSem ( sem ) tGiveSem(sem)

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

#define tClearBlock ( task ) sTSV_ClearBlock(task)

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

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

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

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

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

#define tClearFlagGroup ( group ) sTSV_ClearFlagGroup(group)

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

#define tDeleteTask ( task ) sTSV_DeleteTask(task)

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

#define tGetTime ( t ) sTSV_GetTime(t)

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

#define tGiveBin ( bin ) sTSV_GiveBin(bin)

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

#define tGiveSem ( sem ) sTSV_GiveSem(sem)

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

#define tLockBin ( bin ) bin.binary = false

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

#define tQueryFlagGroup ( group ) sTSV_QueryFlagGroup(group)

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

#define tRecvFet tRecvFetion

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

#define tRecvFetion ( tbox ) sTSV_RecvFetion(tbox)

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

#define tRecvMail ( mbox ) sTSV_RecvMail(mbox)

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

#define tRecvMsg ( que ) sTSV_RecvMsg(que)

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

#define tResumeTask ( task ) sTSV_ResumeTask(task)

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

#define tSendFet tSendFetion

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

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

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

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

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

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

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

#define tSendTaskmsg ( task ) sTSV_SendTaskmsg(task)

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

#define tSendTM tSendTaskmsg

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#define tSetTime ( t ) sTSV_SetTime(t)

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

#define tSuspendTask ( task ) sTSV_SuspendTask(task)

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

#define tTakeBin ( bin ) sTSV_TakeBin(bin)

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

#define tTakeSem ( sem ) sTSV_TakeSem(sem)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#define uEndTM uEndTaskmsg

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

#define uRecvFet uRecvFetion

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

#define uRecvTM uRecvTaskmsg

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

#define uSendFet uSendFetion

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

#define uSendTM uSendTaskmsg

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


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

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

- d -

  • dCreateTask : ur_api.h
  • dCreateTask_TimInt : ur_api.h
  • dCreateTask_TimQry : ur_api.h
  • dCreateTaskmsg : ur_api.h
  • dExternTask : ur_api.h
  • dExternTaskmsg : ur_api.h
  • dExtTask : ur_api.h
  • dExtTaskmsg : 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
  • 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
  • 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
  • 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
  • pClearBlock_ErrorCallback() : ur_api.h
  • pClearDelay : ur_eapi.h
  • pDeleteTask : ur_eapi.h
  • pDeleteTask_ErrorCallback() : ur_api.h
  • pECode_ErrorCallback : ur_api.h
  • pGiveBin : ur_eapi.h
  • pLockBin : ur_eapi.h
  • pResumeTask : ur_eapi.h
  • pResumeTask_ErrorCallback() : ur_api.h
  • pSendMsg_ErrorCallback() : ur_api.h
  • pSetBlock_ErrorCallback() : ur_api.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
  • pSetTaskPri_ErrorCallback() : ur_api.h
  • pSuspendTask : ur_eapi.h
  • pSuspendTask_ErrorCallback() : ur_api.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
  • tSendTaskmsg : ur_eapi.h
  • tSendTM : 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
  • uCreateTaskmsg : 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
  • uEndTaskmsg : ur_api.h
  • uEndTM : ur_eapi.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
  • uExternTaskmsg : ur_api.h
  • uExternTionbox : ur_api.h
  • uExtTask : ur_api.h
  • uExtTaskmsg : 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
  • uRecvTaskmsg : ur_api.h
  • uRecvTM : ur_eapi.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
  • uSendTaskmsg : ur_api.h
  • uSendTM : ur_eapi.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


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

  • 文件列表
  • 全局定义
  • 全部
  • 函数
  • 宏定义
  • pClearBlock_ErrorCallback() : ur_api.h
  • pDeleteTask_ErrorCallback() : ur_api.h
  • pResumeTask_ErrorCallback() : ur_api.h
  • pSendMsg_ErrorCallback() : ur_api.h
  • pSetBlock_ErrorCallback() : ur_api.h
  • pSetTaskPri_ErrorCallback() : ur_api.h
  • pSuspendTask_ErrorCallback() : ur_api.h
  • 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
  • dCreateTaskmsg : ur_api.h
  • dExternTask : ur_api.h
  • dExternTaskmsg : ur_api.h
  • dExtTask : ur_api.h
  • dExtTaskmsg : 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
  • 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
  • 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
  • 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
  • pECode_ErrorCallback : ur_api.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
  • tSendTaskmsg : ur_eapi.h
  • tSendTM : 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
  • uCreateTaskmsg : 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
  • uEndTaskmsg : ur_api.h
  • uEndTM : ur_eapi.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
  • uExternTaskmsg : ur_api.h
  • uExternTionbox : ur_api.h
  • uExtTask : ur_api.h
  • uExtTaskmsg : 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
  • uRecvTaskmsg : ur_api.h
  • uRecvTM : ur_eapi.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
  • uSendTaskmsg : ur_api.h
  • uSendTM : ur_eapi.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


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
14 #include "os_redef.h"
15
95 /**************************************************************************/
110 s_ecode_t uStartCosyOS(void);
111
120 void tCosyTick_Handler(void);
121
124 /**************************************************************************/
147 #define uExtTask(task) \
148 sCSV_ExtTask(task)
149
155 #define dExtTask(task) \
156 dCSV_ExtTask(task)
157
164 #define uExtTaskmsg(task) \
165 sCSV_ExtTaskmsg(task)
166
173 #define dExtTaskmsg(task) \
174 dCSV_ExtTaskmsg(task)
175
181 #define uExternTask(task) \
182 sCSV_ExternTask(task)
183
189 #define dExternTask(task) \
190 dCSV_ExternTask(task)
191
198 #define uExternTaskmsg(task) \
199 sCSV_ExternTaskmsg(task)
200
207 #define dExternTaskmsg(task) \
208 dCSV_ExternTaskmsg(task)
209
229 #define uCreateTask(task, pri, tss, srt, res) \
230 sCSV_CreateTask(task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
231
242 #define dCreateTask(task, pri, tss, srt, res) \
243 dCSV_CreateTask(task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
244
260 #define uCreateTaskmsg(task, pri, tss, srt, res, ntm) \
261 sCSV_CreateTaskmsg(task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res), ntm)
262
278 #define dCreateTaskmsg(task, pri, tss, srt, res, ntm) \
279 dCSV_CreateTaskmsg(task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res), ntm)
280
293 #define uCreateTask_TimInt(tmid, arl, task, pri, tss, srt, res) \
294 sCSV_CreateTask_TimInt(tmid, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
295
308 #define dCreateTask_TimInt(tmid, arl, task, pri, tss, srt, res) \
309 dCSV_CreateTask_TimInt(tmid, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
310
324 #define uCreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, res) \
325 sCSV_CreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
326
340 #define dCreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, res) \
341 dCSV_CreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, SYSCFG_CREATETASKCUSTOM(task, res))
342
368 #if (SYSCFG_TASKMSG == __ENABLED__)
369 #define uStartTask(task, status) \
370 sUSV_StartTask_1(&sCat2Str(u_taskhand_, task), status, sCat2Str(u_task_, task))
371 #else
372 #define uStartTask(task, status) \
373 sUSV_StartTask_0(&sCat2Str(u_taskhand_, task), status)
374 #endif
375
386 #define uStartTask_Ready(task) \
387 uStartTask(task, OS_STATUS_READY)
388
399 #define uStartTask_Block(task) \
400 uStartTask(task, OS_STATUS_BLOCKED)
401
412 #define uStartTask_Suspend(task) \
413 uStartTask(task, OS_STATUS_SUSPENDED)
414
433 #define tClearDelay() sTSV_ClearDelay()
434
448 #define uResumeTask(task) sUSV_ResumeTask(task)
449
463 #define uSuspendTask(task) sUSV_SuspendTask(task)
464
476 #define uDeleteTask(task) sUSV_DeleteTask(task)
477
492 #define uSetTaskPri(task, npri) sUSV_SetTaskPri(task, npri)
493
507 #define uClearBlock(task) sUSV_ClearBlock(task)
508
534 #define uSetBlock_tc(task, tc) sUSV_SetBlock(task, tc)
535
550 #define uSetBlock_ms(task, ms) uSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
551
566 #define uSetBlock_s(task, s) uSetBlock_ms(task, 1000UL * (s))
567
582 #define uSetBlock_m(task, m) uSetBlock_s(task, 60UL * (m))
583
598 #define uSetBlock_h(task, h) uSetBlock_m(task, 60UL * (h))
599
618 #define uYieldTasking() su_yield_tasking()
619
627 #define uSetTaskingPri(npri) sUSV_SetTaskPri(s_task_current, npri)
628
635 #define uSuspendTasking() sUSV_SuspendTask(s_task_current)
636
643 #define uDeleteTasking() sUSV_DeleteTask(s_task_current)
644
655 #define uResumeSuspend(task) sUSV_ResumeSuspend(task)
656
677 #define uDelay_tc(tc) sUSV_Delay(tc)
678
684 #define uDelay_ms(ms) uDelay_tc((1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
685
691 #define uDelay_s(s) uDelay_ms(1000UL * (s))
692
698 #define uDelay_m(m) uDelay_s(60UL * (m))
699
705 #define uDelay_h(h) uDelay_m(60UL * (h))
706
709 /**************************************************************************/
727 #define uCreateHook_TimInt(tmid, arl) \
728 sCSV_CreateHook_TimInt(tmid, arl)
729
739 #define uTimInt_tc(tmid, tc) sUSV_TimInt(tmid, tc)
740
750 #define uTimInt_ms(tmid, ms) uTimInt_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
751
761 #define uTimInt_s(tmid, s) uTimInt_ms(tmid, 1000UL * (s))
762
772 #define uTimInt_m(tmid, m) uTimInt_s(tmid, 60UL * (m))
773
783 #define uTimInt_h(tmid, h) uTimInt_m(tmid, 60UL * (h))
784
793 #define uTimInt_Cancel(tmid) uTimInt_tc(tmid, 0)
794
803 #define xTimInt_AutoReload(tmid, arl) s_timint_autoreload[tmid] = arl
804
807 /**************************************************************************/
827 #define uCreateHook_TimQry(tmid, event, arl) \
828 sCSV_CreateHook_TimQry(tmid, event, arl)
829
839 #define uTimQry_tc(tmid, tc) sUSV_TimQry(tmid, tc)
840
850 #define uTimQry_ms(tmid, ms) uTimQry_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
851
861 #define uTimQry_s(tmid, s) uTimQry_ms(tmid, 1000UL * (s))
862
872 #define uTimQry_m(tmid, m) uTimQry_s(tmid, 60UL * (m))
873
883 #define uTimQry_h(tmid, h) uTimQry_m(tmid, 60UL * (h))
884
893 #define uTimQry_Cancel(tmid) uTimQry_tc(tmid, ~0)
894
903 #define xTimQry_AutoReload(tmid, arl) s_timqry_autoreload[tmid] = arl
904
907 /**************************************************************************/
922 #define uExternMut(mut) sCSV_ExternMut(mut)
923
930 #define uCreateMut(mut) sCSV_CreateMut(mut)
931
943 #define uTakeMut(mut, tc) sUSV_TakeMut(mut, tc)
944
950 #define uBackMut(mut) sUSV_BackMut(mut)
951
954 /**************************************************************************/
966 #define uExternBin(bin) sCSV_ExternBin(bin)
967
977 #define uCreateBin(bin, init) sCSV_CreateBin(bin, init)
978
989 #define uLockBin(bin) bin.binary = false
990
1003 #define uWaitBin(bin, tc) sUSV_WaitBin(bin, tc)
1004
1015 #define uGiveBin(bin) sUSV_GiveBin(bin)
1016
1032 #define uTakeBin(bin, tc) sUSV_TakeBin(bin, tc)
1033
1043 #define uBackBin(bin) uGiveBin(bin)
1044
1047 /**************************************************************************/
1059 #define uExternSem(sem) sCSV_ExternSem(sem)
1060
1068 #define uCreateSem(sem, init, max) sCSV_CreateSem(sem, init, max)
1069
1078 #define uGiveSem(sem) sUSV_GiveSem(sem)
1079
1093 #define uTakeSem(sem, tc) sUSV_TakeSem(sem, tc)
1094
1102 #define uBackSem(sem) uGiveSem(sem)
1103
1106 /**************************************************************************/
1125 #define uExternFlagGroup(group, bits) sCSV_ExternFlagGroup(group, bits)
1126
1132 #define uDefFlagBit(bit) sDefBitField(bit)
1133
1139 #define uDefVoidBits(nvb) sDefVoidBits(nvb)
1140
1147 #define uCreateFlagGroup(group) sCSV_CreateFlagGroup(group)
1148
1161 #define uWaitFlagGroup(group, tc) sUSV_WaitFlagGroup(group, tc)
1162
1173 #define uQueryFlagGroup(group) sUSV_QueryFlagGroup(group)
1174
1183 #define uClearFlagGroup(group) sUSV_ClearFlagGroup(group)
1184
1194 #define uSetFlagBit(group, bit) uSetFlagBits(group, 1) bit)
1195
1205 #define uClearFlagBit(group, bit) uClearFlagBits(group, 1) bit)
1206
1217 #define uSetFlagBits(group, nbit) sUSV_WriteFlagBits(group, true, nbit)
1218
1229 #define uClearFlagBits(group, nbit) sUSV_WriteFlagBits(group, false, nbit)
1230
1233 /**************************************************************************/
1259 #define uRecvTaskmsg(tc) sUSV_RecvTaskmsg(tc)
1260
1274 #define uSendTaskmsg(task) sUSV_SendTaskmsg(task)
1275
1281 #define uEndTaskmsg() }while(true)
1282
1285 /**************************************************************************/
1306 #define uExternTionbox(tbox) sCSV_ExternTionbox(tbox)
1307
1313 #define uCreateTionbox(tbox) sCSV_CreateTionbox(tbox)
1314
1332 #define uRecvFetion(tbox, tc) sUSV_RecvFetion(tbox, tc)
1333
1347 #define uSendFetion(tbox, tion) sUSV_SendFetion(tbox, tion)
1348
1351 /**************************************************************************/
1363 #define uExternMailbox(mbox) sCSV_ExternMailbox(mbox)
1364
1370 #define uCreateMailbox(mbox) sCSV_CreateMailbox(mbox)
1371
1385 #define uRecvMail(mbox, tc) sUSV_RecvMail(mbox, tc)
1386
1396 #define uSendMail(mbox, mail) sUSV_SendMail(mbox, mail)
1397
1400 /**************************************************************************/
1416 #define uExternQueue_Static(que) sCSV_ExternQueue_Static(que)
1417
1423 #define uExternQueue_Dynamic(que) sCSV_ExternQueue_Dynamic(que)
1424
1434 #define uCreateQueue_Static(que, mode, len) sCSV_CreateQueue_Static(que, mode, len)
1435
1445 #define uCreateQueue_Dynamic(que, mode, len) sCSV_CreateQueue_Dynamic(que, mode, len)
1446
1461 #define uRecvMsg(que, tc) sUSV_RecvMsg(que, tc)
1462
1476 #define uSendMsg(que, msg) sUSV_SendMsg(que, msg)
1477
1480 /**************************************************************************/
1507 #define iWriteGVar(gv, lv) sIPS_WriteGVar((void *)&gv, (void *)&lv, sizeof(gv))
1508
1516 #define iWriteGAry(gp, lp, size) sIPS_WriteGVar(gp, lp, size)
1517
1524 #define iWriteGStr(gs, ls) sIPS_WriteGVar(gs, ls, 0)
1525
1532 #define iPendSVC(fp) sIPS_PendSVC(fp)
1533
1536 /**************************************************************************/
1551 #define uGetTime(t) sUSV_GetTime(t)
1552
1561 #define uSetTime(t) sUSV_SetTime(t)
1562
1565 /**************************************************************************/
1585 #define uMalloc(size) sUSV_Malloc(size)
1586
1595 #define uCalloc(nmemb, size) sUSV_Calloc(nmemb, size)
1596
1605 #define uRealloc(p, size) sUSV_Realloc(p, size)
1606
1612 #define uFree(p) sUSV_Free(p)
1613
1632 #define uCreateMempool() sCSV_CreateMempool()
1633
1642 #define uInitMempool(size) sUSV_InitMempool(size)
1643
1651 #define uTalloc(size) sUSV_Talloc(size)
1652
1658 #define uFreeMempool() sUSV_FreeMempool()
1659
1662 /**************************************************************************/
1687 #define uScheduleLock() su_schedule_locks()
1688
1694 #define uScheduleUnlock() su_schedule_unlocks()
1695
1720 #define uKernelLock() su_kernel_locks()
1721
1727 #define uKernelUnlock() su_kernel_unlocks()
1728
1740 #if (MCUCFG_ISA != __ARM__)
1741
1753 #define xDisableIRQ() mxDisableIRQ()
1754
1760 #define xResumeIRQ() mxResumeIRQ()
1761
1763 #else
1764
1776 #define xDisableIRQ() mxDisableIRQ()
1777
1783 #define xResumeIRQ(oirq) mxResumeIRQ(oirq)
1784
1806 #define xMaskingPRI(npri) mxMaskingPRI(npri)
1807
1813 #define xResumePRI(opri) mxResumePRI(opri)
1814
1816 #endif
1817
1819 /**************************************************************************/
1839 void pResumeTask_ErrorCallback(s_tasknode_tsp htask);
1840
1846 void pSuspendTask_ErrorCallback(s_tasknode_tsp htask);
1847
1853 void pDeleteTask_ErrorCallback(s_tasknode_tsp htask);
1854
1860 void pClearBlock_ErrorCallback(s_tasknode_tsp htask);
1861
1870 void pSetBlock_ErrorCallback(s_tasknode_tsp htask, s_delay_t tick);
1871
1878 void pSetTaskPri_ErrorCallback(s_tasknode_tsp htask, s_u8_t npri);
1879
1886 void pSendMsg_ErrorCallback(s_msgque_tsp hque, void *msg);
1887
1893 #define pECode_ErrorCallback() s_psvfifo_ecode
1894
1909 #define xDebugSend_Complete() s_debug_sendsign = true
1910
1917 #define xDebugRecv_Handler(p, len) \
1918 do{ \
1919 s_debug_recvptr = p; \
1920 s_debug_recvlen = len; \
1921 }while(false)
1922
1937 #define xTick_ms(ms) ((1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
1938
1944 #define xTick_s(s) xTick_ms(1000UL * (s))
1945
1951 #define xTick_m(m) xTick_s(60UL * (m))
1952
1958 #define xTick_h(h) xTick_m(60UL * (h))
1959
1969 #define iPendSV_Set() mPendSV_Set()
1970
1975 #endif
tCosyTick_Handler
void tCosyTick_Handler(void)
CosyOS-滴答
pSetBlock_ErrorCallback
void pSetBlock_ErrorCallback(s_tasknode_tsp htask, s_delay_t tick)
iSetBlock_x(task, x) error callback
uStartCosyOS
s_ecode_t uStartCosyOS(void)
启动-CosyOS
pSuspendTask_ErrorCallback
void pSuspendTask_ErrorCallback(s_tasknode_tsp htask)
iSuspendTask(task) error callback
pDeleteTask_ErrorCallback
void pDeleteTask_ErrorCallback(s_tasknode_tsp htask)
iDeleteTask(task) error callback
pClearBlock_ErrorCallback
void pClearBlock_ErrorCallback(s_tasknode_tsp htask)
iClearBlock(task) error callback
pSendMsg_ErrorCallback
void pSendMsg_ErrorCallback(s_msgque_tsp hque, void *msg)
iSendMsg(que, msg) error callback
pSetTaskPri_ErrorCallback
void pSetTaskPri_ErrorCallback(s_tasknode_tsp htask, s_u8_t npri)
iSetTaskPri(task, npri) error callback
pResumeTask_ErrorCallback
void pResumeTask_ErrorCallback(s_tasknode_tsp htask)
iResumeTask(task) error callback


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 * tpi(s)
18 */
19
20 /* 清除就绪延时 */
21 //#define tClearDelay() sTSV_ClearDelay()
22 #define pClearDelay() sPSV_ClearDelay()
23 #define iClearDelay() sIPS_ClearDelay()
24
25
26 /*
27 * utpi(s)
28 */
29
30 /* 恢复任务 */
31 //#define uResumeTask(task) sUSV_ResumeTask(task)
32 #define tResumeTask(task) sTSV_ResumeTask(task)
33 #define pResumeTask(task) sPSV_ResumeTask(task)
34 #define iResumeTask(task) sIPS_ResumeTask(task)
35
36 /* 挂起任务 */
37 //#define uSuspendTask(task) sUSV_SuspendTask(task)
38 #define tSuspendTask(task) sTSV_SuspendTask(task)
39 #define pSuspendTask(task) sPSV_SuspendTask(task)
40 #define iSuspendTask(task) sIPS_SuspendTask(task)
41
42 /* 删除任务 */
43 //#define uDeleteTask(task) sUSV_DeleteTask(task)
44 #define tDeleteTask(task) sTSV_DeleteTask(task)
45 #define pDeleteTask(task) sPSV_DeleteTask(task)
46 #define iDeleteTask(task) sIPS_DeleteTask(task)
47
48 /* 设置任务优先级 */
49 //#define uSetTaskPri(task, npri) sUSV_SetTaskPri(task, npri)
50 #define tSetTaskPri(task, npri) sTSV_SetTaskPri(task, npri)
51 #define pSetTaskPri(task, npri) sPSV_SetTaskPri(task, npri)
52 #define iSetTaskPri(task, npri) sIPS_SetTaskPri(task, npri)
53
54 /* 清除阻塞（状态）*/
55 //#define uClearBlock(task) sUSV_ClearBlock(task)
56 #define tClearBlock(task) sTSV_ClearBlock(task)
57 #define pClearBlock(task) sPSV_ClearBlock(task)
58 #define iClearBlock(task) sIPS_ClearBlock(task)
59
60 /* 设置阻塞-滴答周期 */
61 //#define uSetBlock_tc(task, tc) sUSV_SetBlock(task, tc)
62 #define tSetBlock_tc(task, tc) sTSV_SetBlock(task, tc)
63 #define pSetBlock_tc(task, tc) sPSV_SetBlock(task, tc)
64 #define iSetBlock_tc(task, tc) sIPS_SetBlock(task, tc)
65
66 /* 设置阻塞-毫秒 */
67 //#define uSetBlock_ms(task, ms) uSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
68 #define tSetBlock_ms(task, ms) tSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
69 #define pSetBlock_ms(task, ms) pSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
70 #define iSetBlock_ms(task, ms) iSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
71
72 /* 设置阻塞-秒钟 */
73 //#define uSetBlock_s(task, s) uSetBlock_ms(task, 1000UL * (s))
74 #define tSetBlock_s(task, s) tSetBlock_ms(task, 1000UL * (s))
75 #define pSetBlock_s(task, s) pSetBlock_ms(task, 1000UL * (s))
76 #define iSetBlock_s(task, s) iSetBlock_ms(task, 1000UL * (s))
77
78 /* 设置阻塞-分钟 */
79 //#define uSetBlock_m(task, m) uSetBlock_s(task, 60UL * (m))
80 #define tSetBlock_m(task, m) tSetBlock_s(task, 60UL * (m))
81 #define pSetBlock_m(task, m) pSetBlock_s(task, 60UL * (m))
82 #define iSetBlock_m(task, m) iSetBlock_s(task, 60UL * (m))
83
84 /* 设置阻塞-小时 */
85 //#define uSetBlock_h(task, h) uSetBlock_m(task, 60UL * (h))
86 #define tSetBlock_h(task, h) tSetBlock_m(task, 60UL * (h))
87 #define pSetBlock_h(task, h) pSetBlock_m(task, 60UL * (h))
88 #define iSetBlock_h(task, h) iSetBlock_m(task, 60UL * (h))
89
90 /* 给予二值信号量 */
91 //#define uGiveBin(bin) sUSV_GiveBin(bin)
92 #define tGiveBin(bin) sTSV_GiveBin(bin)
93 #define pGiveBin(bin) sPSV_GiveBin(bin)
94 #define iGiveBin(bin) sIPS_WriteBin(bin, true)
95
96 /* 上锁二值信号量 */
97 //#define uLockBin(bin) bin.binary = false
98 #define tLockBin(bin) bin.binary = false
99 #define pLockBin(bin) bin.binary = false
100 #define iLockBin(bin) sIPS_WriteBin(bin, false)
101
102
103 /*
104 * uti(s)
105 */
106
107 /* 给予计数信号量 */
108 //#define uGiveSem(sem) sUSV_GiveSem(sem)
109 #define tGiveSem(sem) sTSV_GiveSem(sem)
110 #define iGiveSem(sem) sIPS_GiveSem(sem)
111
112 /* 发送飞信 */
113 //#define uSendFetion(tbox, tion) sUSV_SendFetion(tbox, tion)
114 #define tSendFetion(tbox, tion) sTSV_SendFetion(tbox, tion)
115 #define iSendFetion(tbox, tion) sIPS_SendFetion(tbox, tion)
116
117 /* 发送邮件 */
118 //#define uSendMail(mbox, mail) sUSV_SendMail(mbox, mail)
119 #define tSendMail(mbox, mail) sTSV_SendMail(mbox, mail)
120 #define iSendMail(mbox, mail) sIPS_SendMail(mbox, mail)
121
122 /* 发送消息 */
123 //#define uSendMsg(que, msg) sUSV_SendMsg(que, msg)
124 #define tSendMsg(que, msg) sTSV_SendMsg(que, msg)
125 #define iSendMsg(que, msg) sIPS_SendMsg(que, msg)
126
127 /* 清除标志组 */
128 //#define uClearFlagGroup(group) sUSV_ClearFlagGroup(group)
129 #define tClearFlagGroup(group) sTSV_ClearFlagGroup(group)
130 #define iClearFlagGroup(group) sIPS_ClearFlagGroup(group)
131
132 /* 设置标志位 */
133 //#define uSetFlagBit(group, bit) uSetFlagBits(group, 1) bit)
134 #define tSetFlagBit(group, bit) tSetFlagBits(group, 1) bit)
135 #define iSetFlagBit(group, bit) iSetFlagBits(group, 1) bit)
136
137 /* 清除标志位 */
138 //#define uClearFlagBit(group, bit) uClearFlagBits(group, 1) bit)
139 #define tClearFlagBit(group, bit) tClearFlagBits(group, 1) bit)
140 #define iClearFlagBit(group, bit) iClearFlagBits(group, 1) bit)
141
142 /* 设置多标志位 */
143 //#define uSetFlagBits(group, nbit) sUSV_WriteFlagBits(group, true, nbit)
144 #define tSetFlagBits(group, nbit) sTSV_WriteFlagBits(group, true, nbit)
145 #define iSetFlagBits(group, nbit) sIPS_WriteFlagBits(group, +, nbit)
146
147 /* 清除多标志位 */
148 //#define uClearFlagBits(group, nbit) sUSV_WriteFlagBits(group, false, nbit)
149 #define tClearFlagBits(group, nbit) sTSV_WriteFlagBits(group, false, nbit)
150 #define iClearFlagBits(group, nbit) sIPS_WriteFlagBits(group, -, nbit)
151
152 /* 定时中断-滴答周期 */
153 //#define uTimInt_tc(tmid, tc) sUSV_TimInt(tmid, tc)
154 #define tTimInt_tc(tmid, tc) sTSV_TimInt(tmid, tc)
155 #define iTimInt_tc(tmid, tc) sIPS_TimInt(tmid, tc)
156
157 /* 定时中断-毫秒 */
158 //#define uTimInt_ms(tmid, ms) uTimInt_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
159 #define tTimInt_ms(tmid, ms) tTimInt_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
160 #define iTimInt_ms(tmid, ms) iTimInt_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
161
162 /* 定时中断-秒钟 */
163 //#define uTimInt_s(tmid, s) uTimInt_ms(tmid, 1000UL * (s))
164 #define tTimInt_s(tmid, s) tTimInt_ms(tmid, 1000UL * (s))
165 #define iTimInt_s(tmid, s) iTimInt_ms(tmid, 1000UL * (s))
166
167 /* 定时中断-分钟 */
168 //#define uTimInt_m(tmid, m) uTimInt_s(tmid, 60UL * (m))
169 #define tTimInt_m(tmid, m) tTimInt_s(tmid, 60UL * (m))
170 #define iTimInt_m(tmid, m) iTimInt_s(tmid, 60UL * (m))
171
172 /* 定时中断-小时 */
173 //#define uTimInt_h(tmid, h) uTimInt_m(tmid, 60UL * (h))
174 #define tTimInt_h(tmid, h) tTimInt_m(tmid, 60UL * (h))
175 #define iTimInt_h(tmid, h) iTimInt_m(tmid, 60UL * (h))
176
177 /* 终止定时中断 */
178 //#define uTimInt_Cancel(tmid) uTimInt_tc(tmid, 0)
179 #define tTimInt_Cancel(tmid) tTimInt_tc(tmid, 0)
180 #define iTimInt_Cancel(tmid) iTimInt_tc(tmid, 0)
181
182 /* 定时查询-滴答周期 */
183 //#define uTimQry_tc(tmid, tc) sUSV_TimQry(tmid, tc)
184 #define tTimQry_tc(tmid, tc) sTSV_TimQry(tmid, tc)
185 #define iTimQry_tc(tmid, tc) sIPS_TimQry(tmid, tc)
186
187 /* 定时查询-毫秒 */
188 //#define uTimQry_ms(tmid, ms) uTimQry_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
189 #define tTimQry_ms(tmid, ms) tTimQry_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
190 #define iTimQry_ms(tmid, ms) iTimQry_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICK_CYCLE)
191
192 /* 定时查询-秒钟 */
193 //#define uTimQry_s(tmid, s) uTimQry_ms(tmid, 1000UL * (s))
194 #define tTimQry_s(tmid, s) tTimQry_ms(tmid, 1000UL * (s))
195 #define iTimQry_s(tmid, s) iTimQry_ms(tmid, 1000UL * (s))
196
197 /* 定时查询-分钟 */
198 //#define uTimQry_m(tmid, m) uTimQry_s(tmid, 60UL * (m))
199 #define tTimQry_m(tmid, m) tTimQry_s(tmid, 60UL * (m))
200 #define iTimQry_m(tmid, m) iTimQry_s(tmid, 60UL * (m))
201
202 /* 定时查询-小时 */
203 //#define uTimQry_h(tmid, h) uTimQry_m(tmid, 60UL * (h))
204 #define tTimQry_h(tmid, h) tTimQry_m(tmid, 60UL * (h))
205 #define iTimQry_h(tmid, h) iTimQry_m(tmid, 60UL * (h))
206
207 /* 终止定时查询 */
208 //#define uTimQry_Cancel(tmid) uTimQry_tc(tmid, ~0)
209 #define tTimQry_Cancel(tmid) tTimQry_tc(tmid, ~0)
210 #define iTimQry_Cancel(tmid) iTimQry_tc(tmid, ~0)
211
212 /* 设置时间 */
213 //#define uSetTime(t) sUSV_SetTime(t)
214 #define tSetTime(t) sTSV_SetTime(t)
215 #define iSetTime(t) sIPS_SetTime(t)
216
217
218 /*
219 * uti(l)
220 */
221
222 /* 归还二值信号量 */
223 //#define uBackBin(bin) uGiveBin(bin)
224 #define tBackBin(bin) bin.binary = true
225 #define iBackBin(bin) bin.binary = true
226
227 /* 获取二值信号量 */
228 //#define uTakeBin(bin, tc) sUSV_TakeBin(bin, tc)
229 #define tTakeBin(bin) sTSV_TakeBin(bin)
230 #define iTakeBin(bin) sISV_TakeBin(bin)
231
232 /* 接收飞信 */
233 //#define uRecvFetion(tbox, tc) sUSV_RecvFetion(tbox, tc)
234 #define tRecvFetion(tbox) sTSV_RecvFetion(tbox)
235 #define iRecvFetion(tbox) sISV_RecvFetion(tbox)
236
237 /* 接收邮件 */
238 //#define uRecvMail(mbox, tc) sUSV_RecvMail(mbox, tc)
239 #define tRecvMail(mbox) sTSV_RecvMail(mbox)
240 #define iRecvMail(mbox) sISV_RecvMail(mbox)
241
242 /* 接收消息 */
243 //#define uRecvMsg(que, tc) sUSV_RecvMsg(que, tc)
244 #define tRecvMsg(que) sTSV_RecvMsg(que)
245 #define iRecvMsg(que) sISV_RecvMsg(que)
246
247 /* 查询标志组 */
248 //#define uQueryFlagGroup(group) sUSV_QueryFlagGroup(group)
249 #define tQueryFlagGroup(group) sTSV_QueryFlagGroup(group)
250 #define iQueryFlagGroup(group) sISV_QueryFlagGroup(group)
251
252
253 /*
254 * ut
255 */
256
257 /* 获取时间 */
258 //#define uGetTime(t) sUSV_GetTime(t)
259 #define tGetTime(t) sTSV_GetTime(t)
260
261 /* 获取计数信号量 */
262 //#define uTakeSem(sem, tc) sUSV_TakeSem(sem, tc)
263 #define tTakeSem(sem) sTSV_TakeSem(sem)
264
265 /* 归还计数信号量 */
266 //#define uBackSem(sem) uGiveSem(sem)
267 #define tBackSem(sem) tGiveSem(sem)
268
269 /* 发送私信 */
270 //#define uSendTaskmsg(task) sUSV_SendTaskmsg(task)
271 #define tSendTaskmsg(task) sTSV_SendTaskmsg(task)
272
273
274 /*
275 * 别名定义（API简化）
276 */
277
278 #define uRecvTM uRecvTaskmsg
279 #define uSendTM uSendTaskmsg
280 #define tSendTM tSendTaskmsg
281 #define uEndTM uEndTaskmsg
282
283 #define uRecvFet uRecvFetion
284 #define tRecvFet tRecvFetion
285 #define iRecvFet iRecvFetion
286 #define uSendFet uSendFetion
287 #define tSendFet tSendFetion
288 #define iSendFet iSendFetion
289
290
291 #endif