From 3930688548466292e9a47a339f45bf4219f04df8 Mon Sep 17 00:00:00 2001 From: Jer6y <3229960773@qq.com> Date: Thu, 17 Aug 2023 14:00:44 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8DAPI=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=80=BC=E4=B8=AD=20tos=5Ftask=5Fresume=20?= =?UTF-8?q?=E7=9A=84TOS=5FERR=5FNONE=20=E4=B8=BAK=5FERR=5FNONE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/05.SDK_Manual.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/05.SDK_Manual.md b/doc/05.SDK_Manual.md index 462e6700f..3174a9b9a 100644 --- a/doc/05.SDK_Manual.md +++ b/doc/05.SDK_Manual.md @@ -407,7 +407,7 @@ k_err_t tos_task_resume(k_task_t *task); - **返回值** - TOS_ERR_NONE 恢复任务运行成功。 + K_ERR_NONE 恢复任务运行成功。 K_ERR_TASK_RESUME_SELF 试图恢复当前任务(非法)。 From 3718bb89b19831feedea41ba0a4589e137f49516 Mon Sep 17 00:00:00 2001 From: Jer6y <3229960773@qq.com> Date: Thu, 31 Aug 2023 23:00:38 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20tos=5Fmmheap=5Fpool=5F?= =?UTF-8?q?add=20=E5=92=8C=20tos=5Fmmheap=5Fpool=5Frmv=20=E7=9A=84?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/05.SDK_Manual.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/doc/05.SDK_Manual.md b/doc/05.SDK_Manual.md index 3174a9b9a..b10a96ddd 100644 --- a/doc/05.SDK_Manual.md +++ b/doc/05.SDK_Manual.md @@ -486,6 +486,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 @@ -552,8 +556,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 @@ -574,7 +582,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 From d823522df1216f3f2e3f75ac3b24f018d19335c2 Mon Sep 17 00:00:00 2001 From: Jer6y <3229960773@qq.com> Date: Fri, 1 Sep 2023 14:47:34 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=86=85=E6=A0=B8API?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/05.SDK_Manual.md | 48 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/doc/05.SDK_Manual.md b/doc/05.SDK_Manual.md index 8a524e35a..22cc99457 100644 --- a/doc/05.SDK_Manual.md +++ b/doc/05.SDK_Manual.md @@ -644,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); ``` - **功能描述** @@ -803,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 @@ -828,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 @@ -856,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); ``` - **功能描述** @@ -889,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 @@ -910,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 @@ -988,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 @@ -1017,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 @@ -1039,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 @@ -1061,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