diff --git a/doc/05.SDK_Manual.md b/doc/05.SDK_Manual.md index 322711c04..22cc99457 100644 --- a/doc/05.SDK_Manual.md +++ b/doc/05.SDK_Manual.md @@ -400,7 +400,7 @@ k_err_t tos_task_resume(k_task_t *task); - **返回值** - TOS_ERR_NONE 恢复任务运行成功。 + K_ERR_NONE 恢复任务运行成功。 K_ERR_TASK_RESUME_SELF 试图恢复当前任务(非法)。 @@ -477,6 +477,10 @@ k_err_t tos_task_stack_draught_depth(k_task_t *task, int *depth); K_ERR_NONE 任务栈状态正常。 K_ERR_TASK_STK_OVERFLOW 任务栈溢出。 + + K_ERR_OBJ_PTR_NULL 传入的depth 是一个 null ptr + + K_ERR_OBJ_INVALID 传入的task不是一个kernel 对象 ### tos_task_curr_task_get @@ -543,8 +547,12 @@ void tos_task_walkthru(k_task_walker walker); K_ERR_NONE 添加成功。 - K_ERR_MMHEAP_INVALID_POOL_ADDR 内存池起始地址非法。 + K_ERR_MMHEAP_POOL_OVERFLOW 内存池满 + K_ERR_MMHEAP_POOL_ALREADY_EXIST 内存池中已存在目标内存 + + K_ERR_MMHEAP_INVALID_POOL_ADDR 内存池起始地址非法。 + K_ERR_MMHEAP_INVALID_POOL_SIZE 内存池大小非法。 ### tos_mmheap_pool_rmv @@ -565,7 +573,11 @@ void tos_task_walkthru(k_task_walker walker); - **返回值** - 无 + K_ERR_OBJ_PTR_NULL 传入值为NULL空对象 + + K_ERR_MMHEAP_POOL_NOT_EXIST 堆内存中不存在该内存池 + + K_ERR_NONE 删除成功 ### tos_mmheap_alloc @@ -632,7 +644,7 @@ void *tos_mmheap_realloc(void *ptr, size_t size); ### tos_mmheap_free ```c -void *tos_mmheap_free(void *ptr); +void tos_mmheap_free(void *ptr); ``` - **功能描述** @@ -791,6 +803,8 @@ k_err_t tos_mutex_create(k_mutex_t *mutex); K_ERR_NONE 互斥量创建成功。 + K_ERR_IN_IRQ 在中断服务程序ISR中创建mutex + K_ERR_OBJ_PTR_NULL mutex 为空指针。 ### tos_mutex_destroy @@ -816,6 +830,10 @@ k_err_t tos_mutex_destroy(k_mutex_t *mutex); K_ERR_OBJ_PTR_NULL mutex 为空指针。 K_ERR_OBJ_INVALID mutex 指向的不是一个合法的互斥量。 + + K_ERR_IN_IRQ 在中断服务程序ISR中销毁mutex。 + + K_ERR_OBJ_INVALID_ALLOC_TYPE 指向的互斥量mutex不是一个静态的mutex (如果动态创建开启的话)。 ### tos_mutex_pend @@ -844,11 +862,17 @@ k_err_t tos_mutex_pend(k_mutex_t *mutex); K_ERR_PEND_SCHED_LOCKED 此互斥量被其他任务持有,且系统调度处于锁定状态。 K_ERR_PEND_DESTROY 当前任务试图获取的互斥量被销毁(tos_mutex_destroy)了。 + + K_ERR_IN_IRQ 在中断服务程序ISR中获取mutex。 + + K_ERR_OBJ_PTR_NULL mutex 为空指针。 + + K_ERR_OBJ_INVALID mutex 指向的不是一个合法的互斥量。 ### tos_mutex_pend_timed ```c -k_err_t tos_mutex_pend(k_mutex_t *mutex, k_tick_t timeout); +k_err_t tos_mutex_pend_timed(k_mutex_t *mutex, k_tick_t timeout); ``` - **功能描述** @@ -877,6 +901,12 @@ k_err_t tos_mutex_pend(k_mutex_t *mutex, k_tick_t timeout); K_ERR_PEND_TIMEOUT 在 timeout 时间范围内未获取到互斥量。 K_ERR_PEND_DESTROY 当前任务试图获取的互斥量被销毁(tos_mutex_destroy)了。 + + K_ERR_IN_IRQ 在中断服务程序ISR中获取mutex。 + + K_ERR_OBJ_PTR_NULL mutex 为空指针。 + + K_ERR_OBJ_INVALID mutex 指向的不是一个合法的互斥量。 ### tos_mutex_post @@ -898,10 +928,16 @@ k_err_t tos_mutex_post(k_mutex_t *mutex); K_ERR_NONE 互斥量释放成功。 - K_ERR_MUTEX_NOT_OWNER 当前任务并非此互斥量的拥有者。 + K_ERR_IN_IRQ 在中断服务程序ISR中释放mutex。 - K_ERR_MUTEX_NESTING_OVERFLOW 互斥量拥有者嵌套释放溢出。 + K_ERR_OBJ_PTR_NULL mutex 为空指针。 + K_ERR_OBJ_INVALID mutex 指向的不是一个合法的互斥量。 + + K_ERR_MUTEX_NOT_OWNER 当前任务并非此互斥量的拥有者。 + + K_ERR_MUTEX_NESTING_OVERFLOW 互斥量拥有者嵌套释放溢出。 + K_ERR_MUTEX_NESTING 互斥量拥有者嵌套释放。 ## 信号量 semaphore @@ -976,6 +1012,10 @@ k_err_t tos_sem_destroy(k_sem_t *sem); K_ERR_OBJ_INVALID sem 指向的不是一个合法的信号量。 K_ERR_OBJ_PTR_NULL sem 指针为空。 + + K_ERR_OBJ_INVALID_ALLOC_TYPE sem指向的是一个动态的信号量(在动态对象创建宏开启后) + + ### tos_sem_pend @@ -1005,6 +1045,14 @@ k_err_t tos_sem_pend(k_sem_t *sem, k_tick_t timeout); K_ERR_PEND_TIMEOUT 在 timeout 超时范围内未获取到信号量。 K_ERR_PEND_DESTROY 试图获取的信号量被销毁了(tos_sem_destroy) + + K_ERR_OBJ_INVALID sem 指向的不是一个合法的信号量。 + + K_ERR_OBJ_PTR_NULL sem 指针为空。 + + K_ERR_IN_IRQ 在中断服务程序ISR中获取信号量。 + + ### tos_sem_post @@ -1027,6 +1075,8 @@ k_err_t tos_sem_post(k_sem_t *sem); K_ERR_NONE 信号量释放成功。 K_ERR_SEM_OVERFLOW 信号量值溢出。 + + K_ERR_OBJ_INVALID sem 指向的不是一个合法的信号量。 ### tos_sem_post_all @@ -1049,6 +1099,8 @@ k_err_t tos_sem_post_all(k_sem_t *sem); K_ERR_NONE 信号量释放成功。 K_ERR_SEM_OVERFLOW 信号量值溢出。 + + K_ERR_OBJ_INVALID sem 指向的不是一个合法的信号量。 ## 事件 event