ARM---ucos常用系统函数参考手册(4)

发布时间:2021-06-06

好东西!

指向信号量的指针。该指针的值在建立该信号量时可以得到。(参考OSSemCreate() 函数)。
返回值:
OSSemPost() 函数的返回值为下述之一:
* OS_NO_ERR :信号量被成功地设置
* OS_SEM_OVF :信号量的值溢出
* OS_ERR_EVENT_TYPE :pevent 不是指向信号量的指针

时间
1 OSTimeDly()
该函数用于将一个任务延时若干个时钟节拍。如果延时时间大于0,系统将立即进行任务调度。延时时间的长度可从0到65535个时钟节拍。延时时间0表示不进行延时,函数将立即返回调用者。延时的具体时间依赖于系统每秒钟有多少个时钟节拍(由文件OS_CFG.H中的OS_TICKS_PER_SEC宏来设定)。
函数原型:void OSTimeDly (INT16U ticks);
参数说明:ticks 为要延时的时钟节拍数。
返回值:无

2 OSTimeDlyHMSM()
该函数用于将一个任务延时若干时间。延时的单位是小时、分、秒、毫秒。调用 OSTimeDlyHMSM() 后,如果延时时间不为0,系统将立即进行任务调度。
函数原型: INT8U OSTimeDlyHMSM (INT8U hours,INT8U minutes,INT8U seconds,INT16U milli);
参数说明:hours 为延时小时数,范围从0-255。
minutes 为延时分钟数,范围从0-59。
seconds 为延时秒数,范围从0-59
milli 为延时毫秒数,范围从0-999。
需要说明的是,操作系统在处理延时操作时都是以时钟节拍为单位的,实际的延时时间是时钟节拍的整数倍。如果系统时钟节拍的间隔是10ms,而设定延时为5ms的话,则不会产生延时操作;而如果设定延时为15ms,则实际的延时是两个时钟节拍,也就是20ms。
返回值:
OSTimeDlyHMSM() 的返回值为下述之一:
* OS_NO_ERR:函数调用成功。
* OS_TIME_INVALID_MINUTES:参数错误,分钟数大于59。
* OS_TIME_INVALID_SECONDS:参数错误,秒数大于59。
* OS_TIME_INVALID_MILLI:参数错误,毫秒数大于999。
* OS_TIME_ZERO_DLY:四个参数全为0。

内存管理
1 OSMemCreate()
该函数建立并初始化一个用于动态内存分配的区域,该内存区域包含指定数目的、大小确定的内存块。应用可以动态申请这些内存块并在用完后将其释放回这个内存区域。该函数的返回值就是指向这个内存区域控制块的指针,并作为OSMemGet(),OSMemPut(),OSMemQuery() 等相关调用的参数。
函数原型:OS_MEM *OSMemCreate( void *addr, INT32U nblks, INT32U blksize, INT8U *err );
参数说明:addr 建立的内存区域
的起始地址。可以使用静态数组或在系统初始化时使用 malloc() 函数来分配这个区域的空间。
nblks 内存块的数目。每一个内存区域最少需要定义两个内存块。
blksize 每个内存块的大小,最小应该能够容纳一个指针变量。
err 是指向包含错误码的变量的指针。Err可能是如下

精彩图片

热门精选

大家正在看