rawosAPI使用手册

上传人:仙*** 文档编号:34621014 上传时间:2021-10-22 格式:DOC 页数:21 大小:133.50KB
收藏 版权申诉 举报 下载
rawosAPI使用手册_第1页
第1页 / 共21页
rawosAPI使用手册_第2页
第2页 / 共21页
rawosAPI使用手册_第3页
第3页 / 共21页
资源描述:

《rawosAPI使用手册》由会员分享,可在线阅读,更多相关《rawosAPI使用手册(21页珍藏版)》请在装配图网上搜索。

1、文档作者:常鹏飞函数 raw_enter_interrupt() 在raw_system.c文件中参数 无功能 此函数在进入中断一开始的时候调用说明 调用此函数的时候必须处于关中断关状(响应中断的,最开始进入中断时硬件保证是关中断状态)因为其函数体中没有 RAW_SR_ALLOC(); RAW_CRITICAL_ENTER(); RAW_CRITICAL_EXIT();函数 raw_finish_int() 在raw_system.c文件中参数 无功能 当中断退出的时候调用说明 在抢占模式下,在最外层中断退出时可能引发任务切换函数 raw_time_tick() 在raw_system.c文件

2、中参数 无功能 在时钟中断处理函数中调用说明 在时钟中断处理函数中调用函数 raw_system_time_get() 在raw_system.c文件中参数 无功能 返回系统的已经运行时钟数说明 系统运行时钟数在达到0xffffffff后会翻头到0函数 RAW_U32 raw_system_time_set(RAW_U32 time) 在raw_system.c文件中参数 RAW_U32 time功能 设置系统运行时钟数说明 函数 RAW_U16 raw_os_init() 在raw_sched.c文件中参数 无功能 raw_os初始化时调用,成功返回RAW_SUCCESS说明函数 RAW_U

3、16 raw_os_start() 在raw_sched.c文件中参数 无功能 raw_os正式启动运行说明 理论上讲这个函数永远不会返回,若返回说明出错,返回RAW_SYSTEM_ERROR函数 raw_task_create 在raw_task.c文件中参数 RAW_TASK_OBJ *task_obj 指向要创建任务的RAW_TASK_OBJ的指针 RAW_U8 *task_name 任务的名字 RAW_VOID *task_arg 传给任务的参数 RAW_U8 task_prio 任务的优先级,数越小优先级越大 RAW_U16 time_slice 分配给任务的时间片,用于时间片调度,

4、指定意味用默认值 PORT_STACK *task_stack_base 堆栈的起始地址 RAW_U32 stack_size 堆栈的大小 RAW_TASK_ENTRY task_entry 任务的入口 RAW_U8 auto_start 标记是否立即运行?RAW_AUTO_START1 (task_state会置为RAW_RDY状态,将该任务加入就绪队列,最后进行调度检查) RAW_DONT_START0 (task_state会置为RAW_SUSPENDED状态)功能 创建一个任务,如果创建这个任务有更高的优先级,那么它会立即得到运行返回值 RAW_IDLE_EXIT 空闲任务的优先级独占

5、,不允许其它任务再使用这个优先级 RAW_OS_STOPPED raw_os还没有开始运行 RAW_SUCCESS 成功创建任务RAW_NULL_OBJECT RAW_TASK_OBJ类型指针为空RAW_BYOND_MAX_PRIORITY 优先级溢出RAW_NULL_POINTER 空指针(task_stack_base、task_entry为空时)函数 raw_task_stack_check 在raw_task.c中参数 RAW_TASK_OBJ *task_obj 指向要检查堆栈任务的RAW_TASK_OBJ的指针 RAW_U32 *free_stack 指向的变量用于保存剩余堆栈元素

6、数(注,不是字节数)功能 检测指定任务剩余堆栈元素数说明 此函数需在RAW_SYSTEM_CHECK宏开关打开情况下,才能使用返回值 RAW_NULL_OBJECT 当task_obj为空指针时 RAW_NULL_POINTER 当free_stack为空指针时 RAW_SUCCESS 调用成功返回函数 raw_disable_sche 在raw_task.c文件中参数 无功能 禁止调度器调度说明 此函数不能在中断处理函数中调用(为什么?) 我认为是因为raw_disable_sche和raw_enable_sche设计的本意是在任务态下配对使用达到临界区(大范围/粒度性的原子性操作)的目的,

7、防止其之间的执行被其它任务打断。所以可以在中断处理函数中调用,只是没有逻辑意义。返回值 RAW_NOT_CALLED_BY_ISR 在中断处理函数中调用(不应在ISR中调用) RAW_SCHED_OVERFLOW raw_disable_sche调用次数溢出 RAW_SUCCESS 调用成功返回函数 raw_enable_sche 在raw_task.c文件中参数 无功能 开启调度器调度说明 此函数不能在中断处理函数中调用(原因同raw_disable_sche)返回值 RAW_NOT_CALLED_BY_ISR 在中断处理函数中调用(不应在ISR中调用) RAW_SCHED_INVALID

8、raw_enable_sche和raw_disable_sche没有严格配对使用 RAW_SCHED_LOCKED 调度器仍处于上锁状态 RAW_SUCCESS 调用成功返回函数 raw_sleep 在raw_task.c文件中参数 RAW_U32 dly 睡眠的时钟数(非0) 将当前任务放在同等优先级就绪队列最后(0)功能 让调用此函数的任务睡眠指定时间说明返回值 RAW_NOT_CALLED_BY_ISR 在中断处理函数中调用(不应在ISR中调用) RAW_SUCCESS 成功调用返回函数 raw_task_suspend 在raw_task.c文件中参数 RAW_TASK_OBJ *ta

9、sk_ptr 指向要暂停挂起的任务的RAW_TASK_OBJ功能 挂起暂停指定的任务说明 不能挂起IDLE空闲任务返回值 RAW_NULL_OBJECT 当task_ptr为空指针时 RAW_SUSPEND_TASK_NOT_ALLOWED 试图挂起暂停IDLE空闲任务(不能挂起IDLE空闲任务) RAW_SCHED_LOCKED 调度器处于上锁状态 RAW_SUSPENDED_AGAIN 重复让指定任务暂停挂起 RAW_STATE_UNKNOWN 未知状态 RAW_SUCCESS 成功调用返回函数 raw_task_resume 在raw_task.c文件中参数 RAW_TASK_OBJ *

10、task_ptr 指向要唤醒的任务的RAW_TASK_OBJ功能 唤醒被raw_task_suspend暂停挂起的任务(应只唤醒被raw_task_suspend暂停挂起的任务)说明 返回值 RAW_NULL_OBJECT 当task_ptr为空指针时 HAS_NOT_SUSPEND 指定任务没有处于suspend状态 RAW_STATE_UNKNOWN 未知状态 RAW_SUCCESS 成功调用返回函数 raw_task_priority_change 在raw_task.c文件中参数 RAW_TASK_OBJ *task_ptr 指向要改变优先级任务的RAW_TASK_OBJ RAW_U8

11、 new_priority 指定的新优先级 RAW_U8 *old_priority 指定的变量用于保存老优先级功能 动态改变指定任务的优先级说明 返回值 RAW_NULL_OBJECT task_prt或old_priority为空指针时 RAW_CHANGE_PRIORITY_NOT_ALLOWED 原来任务的优先级越界或新指定为空闲任务的优先级 RAW_SUCCESS 成功调用返回函数 raw_task_delete 在raw_task.c文件中参数 RAW_TASK_OBJ *task_ptr 指向要删除任务的RAW_TASK_OBJ功能 删除指定任务并引发任务切换说明 不能删除占有互

12、斥量或信号量的任务?不能在ISR中调用该函数(逻辑不符?)返回值 RAW_NULL_OBJECT task_ptr指针为空 RAW_NOT_CALLED_BY_ISR 不能在ISR中调用 RAW_DELETE_TASK_NOT_ALLOWED 不允许删除空闲任务 RAW_SCHED_LOCKED 调度器处于上锁状态 RAW_STATE_UNKNOWN 任务处于未知状态 RAW_SUCCESS 成功调用返回函数 raw_set_task_user_point 在raw_task.c文件中参数 RAW_TASK_OBJ *task_ptr, 指向要设置用户数据区任务的RAW_TASK_OBJRAW

13、_VOID *user_point 指向用户数据区功能 设置用户数据区说明返回值 函数 raw_get_task_user_point 在raw_task.c文件中参数 RAW_TASK_OBJ *task_ptr, 指向要返回用户数据区任务的RAW_TASK_OBJ功能 返回用户数据区说明 返回值 指向用户数据区的指针函数 raw_task_time_slice_change 在raw_task.c文件中参数 RAW_TASK_OBJ *task_ptr, 指向要改变时间片任务的RAW_TASK_OBJRAW_U16 new_time_slice 新的时间片(为0,则用TIME_SLICE_

14、DEFAULT设置)功能 改变指定任务的时间片说明 返回值 RAW_NULL_OBJECT task_ptr指针为空指针 RAW_SUCCESS 成功调用返回函数 raw_set_sched_way 在raw_task.c文件中参数 RAW_TASK_OBJ *task_ptr, 指向要改变调度方式任务的RAW_TASK_OBJ RAW_U8 policy 调度方式 SCHED_FIFO SCHED_RR功能 改变指定任务的调度方式说明 返回值 RAW_NULL_OBJECT task_ptr为空指针 RAW_INVALID_SCHED_WAY 无效调用方式,目前只能为(SCHED_FIFO或

15、SCHED_RR) RAW_SUCCESS 成功调用返回函数 raw_get_sched_way 在raw_task.c文件中参数 RAW_TASK_OBJ *task_ptr, 指向要获取调度方式任务的RAW_TASK_OBJ RAW_U8 *policy_ptr 指向的变量用来保存调度方式功能 获取指定任务的调度方式说明返回值 RAW_NULL_OBJECT task_ptr或policy_ptr为空指针 RAW_SUCCESS 成功调用返回函数 raw_task_wait_abort 在raw_task.c文件中参数 RAW_TASK_OBJ *task_ptr 指向要中止任务的RAW_

16、TASK_OBJ功能 中止指定任务等待睡眠挂起状态,进入就绪状态说明 只能中止处于DLY或SUSPEND或PEND状态的任务?返回值 RAW_NULL_OBJECT task_ptr为空指针 RAW_STATE_UNKNOWN 任务处于未知状态 RAW_SUCCESS 调用成功返回函数 raw_task_identify 在raw_task.c文件中参数 无功能 获取当前运行的任务说明 返回值 返回当前运行的任务函数 raw_iter_block_task 在raw_task.c文件中参数 LIST *object_head, 等待任务队列的头结点RAW_VOID (*debug_functi

17、on)(RAW_TASK_OBJ *), 对每个任务的debug函数RAW_U8 opt 0唤醒每个等待任务,0则什么也不做功能 对处于等待semphore,event,mutex,queue,block,byte memory上任务进行调试说明 返回值 无函数 raw_get_system_global_space 在raw_task.c文件中参数 无功能 获取raw_os (系统全局变量)数据段+bss段空间大小说明 主要是计算raw_os系统内部全局变量所占空间大小返回值 raw_os数据段+bss段空间大小函数 raw_mutex_create 在raw_mutex.c文件中参数 RA

18、W_MUTEX *mutex_ptr, 指向要创建的互斥量RAW_MUTEXRAW_U8 *name_ptr, 互斥量的名字RAW_U8 policy, RAW_U8 ceiling_prio功能 创建一个互斥量(感觉用初始化更为恰当)说明返回值 RAW_NULL_OBJECT mutex_ptr为空指针时 RAW_MUTEX_NO_POLICY policy不合法,其只能为 RAW_MUTEX_CEILING_POLICY(优先级天花板模式) RAW_MUTEX_INHERIT_POLICY(优先级继承模式) RAW_MUTEX_NONE_POLICY 三者之一 RAW_SUCCESS 成功

19、调用返回函数 raw_mutex_get 在raw_mutex.c文件中参数 RAW_MUTEX *mutex_ptr, 指向要获取的互斥量 RAW_U32 wait_option 获取方式选项(或超时值) RAW_NO_WAIT 0x00000000 不等待 RAW_WAIT_FOREVER 0xFFFFFFFF 永久等待 闭区间0x00000001,0xFFFFFFFE 为超时值功能 尝试获取指定互斥量说明返回值 RAW_NULL_OBJECT mutex_ptr为空指针时 RAW_NOT_CALLED_BY_ISR 在ISR中调用(此函数不允许在ISR中调用) RAW_ERROR_OBJ

20、ECT_TYPE mutex_ptr指向的不是MUTEX互斥量类型 RAW_NO_PEND_WAIT 没有成功获取MUTEX互斥量,无等待返回 RAW_SCHED_DISABLE 调度器处于上锁状态 RAW_SUCCESS 成功调用返回函数 raw_mutex_put 在raw_mutex.c文件中参数 RAW_MUTEX *mutex_ptr 指向要释放的MUTEX互斥量功能 释放指定的MUTEX互斥量说明 返回值 RAW_NULL_OBJECT mutex_ptr为空指针 RAW_ERROR_OBJECT_TYPE 类型错误,mutex_ptr指向的对象不是RAW_MUTEX_OBJ_TY

21、PE类型 RAW_MUTEX_NOT_RELEASE_BY_OCCYPY 不是由占用该MUTEX互斥量的任务进行释放 RAW_SUCCESS 成功调用返回函数 raw_mutex_delete 在raw_mutex.c文件中参数 RAW_MUTEX *mtxcb 指向要删除的MUTEX互斥量功能 删除指定的MUTEX互斥量说明返回值 RAW_NULL_OBJECT mtxcb为空指针 RAW_ERROR_OBJECT_TYPE mtxcb指向的对象不是MUTEX互斥量类型函数 raw_semaphore_create 在raw_sem.c文件中参数 RAW_SEMAPHORE *semapho

22、re_ptr, 指向要创建初始化指定的SEM信号量RAW_U8 *name_ptr, SEM信号量的名字RAW_U32 initial_count SEM信号量可用资源数,取值范围0, 0xFFFFFFFE功能 创建初始化指定的SEM信号量说明 返回值 RAW_NULL_OBJECT semaphore_ptr为空指针 RAW_SEMAPHORE_OVERFLOW 当SEM信号量资源数量初始化值initial_value为0xFFFFFFFF时,溢出 RAW_SUCCESS 成功调用返回函数 raw_semaphore_put 在raw_sem.c文件中参数 RAW_SEMAPHORE *se

23、maphore_ptr 指向要释放的SEM信号量功能 释放指定的SEM信号量,并唤醒优先级最高的等待任务说明返回值 RAW_NULL_OBJECT semaphore_ptr为空指针 RAW_ERROR_OBJECT_TYPE semaphore_ptr指向的对象不是SEM信号量类型 RAW_SEMAPHORE_OVERFLOW SEM信号量的值已经是0xFFFFFFFF,溢出 RAW_SUCCESS 成功调用返回函数 raw_semaphore_put_all 在raw_sem.c文件中参数 RAW_SEMAPHORE *semaphore_ptr 指向要释放的SEM信号量功能 释放指定的S

24、EM信号量,并唤醒所有的等待任务说明返回值 RAW_NULL_OBJECT semaphore_ptr为空指针 RAW_ERROR_OBJECT_TYPE semaphore_ptr指向的对象不是SEM信号量类型 RAW_SEMAPHORE_OVERFLOW SEM信号量的值已经是0xFFFFFFFF,溢出 RAW_SUCCESS 成功调用返回函数 raw_semaphore_get 在raw_sem.c文件中参数 RAW_SEMAPHORE *semaphore_ptr 指向尝试要获取的SEM信号量RAW_U32 wait_option RAW_NO_WAIT 0x00000000 不能获取

25、时,立即返回 RAW_WAIT_FOREVER 0xFFFFFFFF 不能获取时,永久等待 1,0xFFFFFFFE 不能获取时,超时等待时间功能 尝试获取指定SEM信号量说明返回值 RAW_NULL_OBJECT semaphore_ptr为空指针时 RAW_NOT_CALLED_BY_ISR 此函数不应在ISR中调用(作为一个通用原则,凡是会引起睡眠等待(任务切换的)不应该在ISR中调用) RAW_ERROR_OBJECT_TYPE semaphore_ptr指向的对象不是SEM互斥量类型 RAW_SUCCESS 成功调用返回函数 raw_semaphore_delete 在raw_sem

26、.c文件中参数 RAW_SEMAPHORE *semaphore_ptr 指向要删除的SEM信号量功能 删除指定的SEM信号量说明 返回值 RAW_NULL_OBJECT semaphore_ptr为空指针 RAW_ERROR_OBJECT_TYPE semaphore_ptr指向的对象不是SEM信号量类型 RAW_SUCCESS 成功调用返回函数 raw_event_create 在raw_event.c文件中参数 RAW_EVENT *event_ptr, 指向要创建初始化的EVENT事件标志组RAW_U8 *name_ptr, EVENT事件标志组名字RAW_U32 flags_init

27、 EVENT事件标志组的初始值功能 创建初始化指定的EVENT事件标志组说明 返回值 RAW_NULL_OBJECT event_ptr为空指针时 RAW_SUCCESS 成功调用返回函数 raw_event_get 在raw_event.c文件中参数 RAW_EVENT *event_ptr, 指向尝试获取的EVENT事件标志组RAW_U32 requested_flags, EVENT事件标志组中要检查的标志RAW_U8 get_option, RAW_AND 所有标志全部满足 RAW_AND_CLEAR 所有标志全部满足且清除 RAW_OR 所有标志满足之一即可 RAW_OR_CLEAR

28、 所有标志满足之一即可且清除RAW_U32 wait_option RAW_NO_WAIT 0x00000000 若不能获取,立即返回 RAW_WAIT_FOREVER 0xFFFFFFFF 若不能获取,永久等待 0x00000001,0xFFFFFFFE 若不能获取,超时等待时间功能 尝试获取指定的EVENT事件标志组说明 返回值 RAW_NULL_OBJECT event_ptr为空指针 RAW_NOT_CALLED_BY_ISR 此函数不能在ISR中调用 RAW_NO_THIS_OPTION get_option不是下列值之一 RAW_AND RAW_OR RAW_AND_CLEAR R

29、AW_OR_CLEAR RAW_ERROR_OBJECT_TYPE event_ptr指向的对象不是EVENT事件组类型 RAW_NO_PEND_WAIT 不能正确获取,立即返回 RAW_SCHED_DISABLE 调度器处于上锁状态 RAW_SUCCESS 成功调用返回函数 raw_event_set 在raw_event.c文件中参数 RAW_EVENT *event_ptr, 指向要设置的EVENT事件标志组RAW_U32 flags_to_set, 标记要操作的位RAW_U8 set_option RAW_AND 清除指定位 RAW_OR 设置指定位功能 对指定的EVENT事件标志组进

30、行设置清除操作说明 返回值 RAW_NULL_OBJECT event_ptr为空指针 RAW_NO_THIS_OPTION set_option只能为RAW_AND或RAW_OR之一 RAW_EVENT_OBJ_TYPE event_ptr指向的对象不是EVENT事件标志组类型 RAW_SUCCESS 成功调用返回函数 raw_event_delete 在raw_event.c文件中参数 RAW_EVENT *event_ptr 指向要删除的RAW_EVENT事件标志组功能 删除指定的RAW_EVENT事件标志组说明 返回值 RAW_NULL_OBJECT event_ptr指向空指针 RA

31、W_ERROR_OBJECT_TYPE event_ptr指向的对象不是EVENT事件标志组类型 RAW_SUCCESS 成功调用返回函数 raw_queue_create 在raw_queue.c文件中参数 RAW_QUEUE *p_q, 指向要创建初始化的QUEUE消息队列数RAW_U8 *p_name, QUEUE消息队列数的名字RAW_VOID *msg_start, QUEUE消息队列数的起始地址RAW_U32 number QUEUE消息队列中的消息数功能 创建初始化指定的QUEUE的消息队列说明 返回值 RAW_NULL_OBJECT p_q为空指针 RAW_NULL_POINT

32、ER msg_start为空指针 RAW_ZERO_NUMBER number为0 RAW_SUCCESS 成功调用返回函数 raw_queue_front_post 在raw_queue.c文件中参数 RAW_QUEUE *p_q, 指向要添加消息的QUEUE消息队列RAW_VOID *p_void 指向要添加的消息功能 向指定的QUEUE消息队列头添加消息,(如果有等待的任务)唤醒优先级最高的等待任务说明返回值 RAW_NULL_OBJECT p_q为空指针 RAW_NULL_POINTER p_void为空指针 RAW_ERROR_OBJECT_TYPE p_q指向的对象不是QUEUE消

33、息队列类型 RAW_SUCCESS 成功调用返回 RAW_MSG_MAX QUEUE消息队列已满函数 raw_queue_end_post 在raw_queue.c文件中参数 RAW_QUEUE *p_q, 指向要添加消息的QUEUE消息队列RAW_VOID *p_void 指向要添加的消息功能 向指定的QUEUE消息队列尾添加消息,(如果有等待的任务)唤醒优先级最高的等待任务说明返回值 RAW_NULL_OBJECT p_q为空指针 RAW_NULL_POINTER p_void为空指针 RAW_ERROR_OBJECT_TYPE p_q指向的对象不是QUEUE消息队列类型 RAW_SUCC

34、ESS 成功调用返回 RAW_MSG_MAX QUEUE消息队列已满函数 raw_queue_all_post 在raw_queue.c文件中参数 RAW_QUEUE *p_q, 指向要添加消息的QUEUE消息队列RAW_VOID *p_void 指向要添加的消息RAW_U8 opt SEND_TO_END 尾部添加FIFO SEND_TO_FRONT 头添加LIFO功能 向指定的QUEUE消息队列添加消息(LIFO头添加或FIFO尾添加),(如果有等待的任务)唤醒所有的等待任务说明返回值 RAW_NULL_OBJECT p_q为空指针 RAW_NULL_POINTER p_void为空指针

35、RAW_ERROR_OBJECT_TYPE p_q指向的对象不是QUEUE消息队列类型 RAW_SUCCESS 成功调用返回 RAW_MSG_MAX QUEUE消息队列已满函数 raw_queue_receive 在raw_queue.c文件中参数 RAW_QUEUE *p_q, 指向要从中获取消息的QUEUE消息队列RAW_U32 wait_option, RAW_NO_WAIT 0x00000000 不能正确获取时,立即返回 RAW_WAIT_FOREVER 0xFFFFFFFF 不能正确获取时,永久等待 0x00000001,0xFFFFFFFE 不能正确获取时,超时等待时间RAW_VO

36、ID *msg 指向的变量用于保存消息的起始地址功能 从指定的QUEUE消息队列中获取一则消息说明 当没有正确获取消息时,msg指向的变量保存的NULL空指针返回值 RAW_NOT_CALLED_BY_ISR 该函数不能在ISR中调用 RAW_NULL_OBJECT p_q为空指针 RAW_NULL_POINTER msg为空指针 RAW_ERROR_OBJECT_TYPE p_q指向的对象不是RAW_QUEUE_OBJ_TYPE类型 RAW_NO_PEND_WAIT 没有正确获取消息,不等待,立即返回 RAW_SCHED_DISABLE 调度器处于上锁状态 RAW_SUCCESS 成功调用返

37、回函数 raw_queue_flush 在raw_queue.c文件中参数 RAW_QUEUE *p_q 指向要清除所有消息的QUEUE消息队列功能 清除指定的QUEUE消息队列中的所有消息(复位处理,复位成初始化状态)说明 注意,唯独没有对peak_numbers字段进行复位处理返回值 RAW_NULL_OBJECT p_q为空指针 RAW_ERROR_OBJECT_TYPE p_q指向的对象不是RAW_QUEUE消息队列类型 RAW_SUCCESS 成功调用返回函数 raw_queue_delete 在raw_queue.c文件中参数 RAW_QUEUE *p_q 指向要删除的QUEUE消

38、息队列功能 删除指定的QUEUE消息队列说明 返回值 RAW_NULL_OBJECT p_q为空指针 RAW_ERROR_OBJECT_TYPE p_q指向的对象不是QUEUE消息队列类型 RAW_SUCCESS 成功调用返回函数 raw_queue_get_information 在raw_queue.c文件中参数 RAW_QUEUE *p_q, 指向要获取信息的QUEUE消息队列 RAW_MSG_INFO *msg_information 用于保存获取的QUEUE消息队列的信息功能 获取指定的QUEUE消息说明返回值 RAW_NULL_OBJECT p_q为空指针 RAW_NULL_POI

39、NTER msg_information为空指针 RAW_ERROR_OBJECT_TYPE p_q指向的对象不是QUEUE消息队列类型 RAW_SUCCESS 成功调用返回函数 raw_mq_init 在raw_mqueue.c文件中参数 RAW_MQUEUE *mqueue, 指向要创建初始化的MQUEUE动态消息队列RAW_U8 *name_ptr, MQUEUE动态消息队列的名字USER_MALLOC malloc_fun, 内存分配函数USER_FREE free_fun, 内存释放函数RAW_VOID *msg_start, MQUEUE消息队列的起始地址RAW_U32 msg_s

40、ize MQUEUE动态消息队列能容纳的最大消息数功能 创建初始化指定的MQUEUE动态消息队列说明返回值 RAW_SUCCESS 成功调用返回函数 raw_mq_send 在raw_mqueue.c文件中参数 RAW_MQUEUE *mqueue, 向mqueue指定的动态消息队列MQUEUE发送一则消息RAW_VOID *msg_ptr, 指向要发送的消息RAW_U32 msg_len, 消息长度RAW_U32 msg_prio, 消息优先级RAW_U8 opt WAKE_ALL_MQUEUE 唤醒所有任务 WAKE_ONE_MQUEUE 唤醒优先级最高的任务(优先级条件下)功能 向指定的

41、动态消息队列MQUEUE发送一则消息说明 注意,其不能在ISR中调用返回值 RAW_NULL_OBJECT mqueue为空指针 RAW_NOT_CALLED_BY_ISR 该函数不能在ISR中调用 RAW_MQUEUE_OBJ_TYPE mqueue指向的对象不是MQUEUE类型 RAW_MSG_MAX 动态消息队列MQUEUE已满 RAW_SUCCESS 成功调用返回函数 raw_mq_receive 在raw_mqueue.c文件中参数 RAW_MQUEUE *p_q, 从p_q指向的MQUEUE动态消息队列中读取一则消息RAW_VOID *p_void, 保存消息的起始地址RAW_U3

42、2 *msg_len, 保存消息的长度RAW_U32 *msg_prio, 保存消息的优先级RAW_U32 wait_option RAW_NO_WAIT 动态消息队列MQUEUE中没有消息,不等待,立即返回功能 从指定的动态消息队列MQUEUE中读取一则消息说胆返回值 RAW_NULL_OBJECT p_q为空指针 RAW_NULL_POINTER p_void为空指针 RAW_NOT_CALLED_BY_ISR 该函数不能在ISR中调用 RAW_SUCCESS 成功调用返回 RAW_SCHED_DISABLE 调度器处于上锁状态函数 raw_mqueue_flush 在raw_mqueue

43、.c文件中参数 RAW_MQUEUE *p_q 指向要刷新复位的动态消息队列MQEUEU功能 刷新复位指定的动态消息队列MQUEUE说明返回值 RAW_NULL_OBJECT p_q为空指针 RAW_NOT_CALLED_BY_ISR 该函数不能在ISR中调用 RAW_ERROR_OBJECT_TYPE p_q指向的对象不是MQUEUE动态消息队列 RAW_SUCCESS 成功调用返回函数 raw_mqueue_delete 在raw_mqueue.c文件中参数 RAW_MQUEUE *p_q 指向要删除的动态消息队列MQUEUE功能 删除指定的动态消息队列MQUEUE说明返回值 RAW_NU

44、LL_OBJECT p_q为空指针 RAW_NOT_CALLED_BY_ISR 该函数不能在ISR中调用 RAW_ERROR_OBJECT_TYPE p_q指向的对象不是动态消息队列MQUEUE类型 RAW_SUCCESS 成功调用返回函数 raw_mqueue_get_information 在raw_mqueue.c文件中参数 RAW_MQUEUE *p_q, RAW_U32 *queue_peak_msg_size, 保存MQUEUE动态消息队列曾有过最多消息数RAW_U32 *mq_curmsgs, 保存MQUEUE动态消息队列当前拥有消息数RAW_U32 *mq_maxmsg 保存M

45、QUEUE动态消息队列最大容量功能 获取指定动态消息队列MQUEUE信息说明 返回值 RAW_NULL_OBJECT p_q为空指针 RAW_ERROR_OBJECT_TYPE p_q指向的对象不是MQUEUE动态消息队列类型 RAW_SUCCESS 成功调用返回函数 raw_cond_msg_create 在raw_condition_msg.c文件中参数 RAW_COND_MSG *cond_msg_ptr 指向要创建初始化的条件消息COND_MSG功能 创建初始化指定的条件消息COND_MSG说明返回值 RAW_NULL_POINTER cond_msg_ptr为空指针 RAW_SUCC

46、ESS 成功调用返回函数 raw_cond_msg_wait 在raw_condition_msg.c文件中参数 RAW_COND_MSG *cond_msg_ptr, 指向等待的条件消息COND_MSGRAW_U8 wait_condition, 等件条件(注意,非0)RAW_U32 wait_option, RAW_NO_WAIT 0x00000000 若不满足,不等待,立即返回 RAW_WAIT_FOREVER 0xFFFFFFFF 若不满足,永久等待 0x00000001,0xFFFFFFFE 若不满足,超时等待RAW_VOID *msg 保存消息的起始地址功能 当前任务是否满足指定的

47、条件,若不满足,则休眠等待,唤醒后会收到一则消息?说明返回值 RAW_NULL_OBJECT cond_msg_ptr为空指针 RAW_NOT_CALLED_BY_ISR 该函数不能在ISR中被调用 RAW_NULL_POINTER msg为空指针 RAW_ERROR_OBJECT_TYPE cond_msg_ptr指向的对象不是条件消息COND_MSG类型 RAW_NO_THIS_OPTION wait_condition选项值不对,应为非0值 RAW_NO_PEND_WAIT 条件不满足,不等待,立即返回 RAW_SCHED_DISABLE 调度器处于上锁状态 RAW_SUCCESS 成功

48、调用返回函数 raw_cond_msg_set 在raw_condition_msg.c文件中参数 RAW_COND_MSG *cond_msg_ptr, 指向要唤醒任务的条件消息COND_MSGRAW_U8 condition_set, 唤醒条件RAW_VOID *msg 要发送的消息功能 唤醒满足唤醒条件的任务,并向其发送一则消息说明返回值 RAW_NULL_OBJECT cond_msg_ptr为空指针 RAW_ERROR_OBJECT_TYPE cond_msg_ptr指向的对象不是COND_MSG条件消息类型 RAW_SUCCESS 成功调用返回函数 raw_cond_msg_del

49、ete 在raw_condition_msg.c文件中参数 RAW_COND_MSG *cond_msg_ptr 指向要删除的COND_MSG条件消息功能 删除指定的COND_MSG条件消息说明返回值 RAW_NULL_OBJECT cond_msg_ptr为空指针 RAW_ERROR_OBJECT_TYPE cond_msg_ptr指向的对象不是COND_MSG条件消息 RAW_SUCCESS 成功调用返回函数 raw_cond_msg_size_create 在raw_condition_msg_size文件中参数 RAW_COND_MSG_SIZE *cond_msg_ptr 指向要创建

50、初始化的COND_MSG_SIZE条件消息(长度)功能 创建初始化指定的COND_MSG_SIZE条件消息(长度)说明 返回值 RAW_NULL_POINTER cond_msg_ptr为空指针 RAW_SUCCESS 成功调用返回函数 raw_cond_msg_size_wait 在raw_condition_msg_size.c文件中参数 RAW_COND_MSG_SIZE *cond_msg_ptr, 指向等待的条件消息(长度)COND_MSG_SIZERAW_U8 wait_condition, 唤醒条件(非0)RAW_U32 wait_option, RAW_NO_WAIT 0x00

51、000000 不满足条件,不等待,立即返回 RAW_WAIT_FOREVER 0xFFFFFFFF 不满足条件,永久等待 0x00000001,0xFFFFFFFE 不满足条件,超时等待RAW_VOID *msg_ptr, 保存接收消息的起始地址RAW_U32 *receive_size 保存接收消息的长度功能 当前任务等待指定条件,不满足则休眠等待,唤醒后收到一条消息(同时有消息长度,这也是和RAW_COND_MSG最大区别)说明返回值 RAW_NULL_OBJECT cond_msg_ptr为空指针 RAW_NOT_CALLED_BY_ISR 该函数不能在ISR中调用 RAW_NULL_P

52、OINTER msg_ptr为空指针 RAW_ERROR_OBJECT_TYPE cond_msg_ptr指向的对象不是COND_MSG_SIZE类型 RAW_NO_THIS_OPTION wait_condition选项错误(非0) RAW_NO_PEND_WAIT 不满足条件,不等待,立即返回s RAW_SCHED_DISABLE 调度器处于上锁状态 RAW_SUCCESS 成功调用返回函数 raw_cond_msg_size_set 在raw_condition_msg_size文件中参数 RAW_COND_MSG_SIZE *cond_msg_ptr, 唤醒cond_msg_ptr指向的COND_MSG_SIZE条件消息(长度)中满足唤醒条件的等待任务RAW_U8 condition_set, 唤醒条件RAW_VOID *msg, 发送消息的起始地址RAW_U32 size 发送消息的大小功能 唤醒满足条件的任务,并发送一则消息(带长度)说明返回值 RAW_NULL_OBJECT cond_msg_ptr为空指针 RAW_ERROR_OBJECT_TYPE cond_msg_ptr指向的对象不是COND_MSG_SIZE条件消息(长度)类型 RAW_SUCCESS 成功调用返回函数 raw_cond_msg_size_delete 在raw_condition_ms

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!