From 30b282e1bbba6236f406e6ff2d277203cf22c52e Mon Sep 17 00:00:00 2001 From: "Jerry.c" <88422053+Jer6y@users.noreply.github.com> Date: Tue, 15 Aug 2023 20:57:59 +0800 Subject: [PATCH 1/5] =?UTF-8?q?Update=2005.SDK=5FManual.md=EF=BC=8C=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=86=85=E6=A0=B8API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补全了task_os_delay 的返回值 --- doc/05.SDK_Manual.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/05.SDK_Manual.md b/doc/05.SDK_Manual.md index 772d35322..371e34970 100644 --- a/doc/05.SDK_Manual.md +++ b/doc/05.SDK_Manual.md @@ -316,6 +316,14 @@ k_err_t tos_task_delay(k_tick_t delay); K_ERR_DELAY_ZERO delay 值为零(非法)。 + K_ERR_IN_IRQ 试图在中断服务程序ISR延时 + + K_ERR_SCHED_LOCKED 已经上锁( 上锁后不能延时当前任务 否则导致无法调度) + + K_ERR_DELAY_FOREVER 使用suspend 代替这个forever 的delay + + + ### tos_task_delay_abort ```c From 5dd43db6cb974ba7d735a267d81fdd26266edbd1 Mon Sep 17 00:00:00 2001 From: "Jerry.c" <88422053+Jer6y@users.noreply.github.com> Date: Tue, 15 Aug 2023 21:12:52 +0800 Subject: [PATCH 2/5] =?UTF-8?q?Update=2005.SDK=5FManual.md=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=86=85=E6=A0=B8API=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改tos_task_delay_abort 的API返回值 --- doc/05.SDK_Manual.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/05.SDK_Manual.md b/doc/05.SDK_Manual.md index 371e34970..aec481a23 100644 --- a/doc/05.SDK_Manual.md +++ b/doc/05.SDK_Manual.md @@ -348,6 +348,15 @@ k_err_t tos_task_delay_abort(k_task_t *task); K_ERR_TASK_SUSPENDED task 被挂起(suspend)。 + K_ERR_IN_IRQ 试图在中断服务程序ISR取消延时 + + K_ERR_OBJ_PTR_NULL 传入的task任务为Null Ptr + + K_ERR_OBJ_INVALID 传入的task任务不是一个Kernel对象 + + + + ### tos_task_suspend ```c From 627af488ae4b48aaa61c7c5f28d068e33bb61177 Mon Sep 17 00:00:00 2001 From: "Jerry.c" <88422053+Jer6y@users.noreply.github.com> Date: Tue, 15 Aug 2023 21:28:16 +0800 Subject: [PATCH 3/5] =?UTF-8?q?Update=2005.SDK=5FManual.md=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=86=85=E6=A0=B8API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改函数 tos_task_suspend 的API返回值 --- doc/05.SDK_Manual.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/doc/05.SDK_Manual.md b/doc/05.SDK_Manual.md index aec481a23..3be641919 100644 --- a/doc/05.SDK_Manual.md +++ b/doc/05.SDK_Manual.md @@ -379,6 +379,12 @@ k_err_t tos_task_suspend(k_task_t *task); K_ERR_TASK_SUSPEND_IDLE 试图挂起 idle 任务(非法)。 + K_ERR_OBJ_INVALID 传入的task任务不是一个Kernel对象 + + K_ERR_SCHED_LOCKED 上锁了同时要挂起自己 + + + ### tos_task_resume ```c From 1470d4f07e5ec74ff8347ee84b2ee986dd375457 Mon Sep 17 00:00:00 2001 From: Jer6y <3229960773@qq.com> Date: Wed, 16 Aug 2023 14:01:07 +0800 Subject: [PATCH 4/5] =?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 | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/doc/05.SDK_Manual.md b/doc/05.SDK_Manual.md index 3be641919..ef056d044 100644 --- a/doc/05.SDK_Manual.md +++ b/doc/05.SDK_Manual.md @@ -123,6 +123,8 @@ k_err_t tos_knl_sched_lock(void); K_ERR_KNL_NOT_RUNNING 内核并未处于运行状态。 K_ERR_LOCK_NESTING_OVERFLOW 调度锁溢出。 + + K_ERR_IN_IRQ 在中断服务程序ISR中上锁 ### tos_knl_sched_unlock @@ -145,6 +147,8 @@ k_err_t tos_knl_sched_unlock(void); K_ERR_KNL_NOT_RUNNING 内核并未处于运行状态。 K_ERR_SCHED_NOT_LOCKED 内核调度并未处于锁定状态。 + + K_ERR_IN_IRQ 在中断服务程序ISR中卸锁 ## 任务管理 @@ -1118,25 +1122,25 @@ k_err_t tos_event_pend(k_event_t *event, k_event_flag_t flag_expect, k_event_fla 1、TOS_OPT_EVENT_PEND_ANY - ​ 尝试从事件中获取一组旗标,并且这一组旗标包含 flag_expect 中标识的任意一个旗标,如果在此场景下视作 event 获取成功,则 opt 传递此参数。 + 尝试从事件中获取一组旗标,并且这一组旗标包含 flag_expect 中标识的任意一个旗标,如果在此场景下视作 event 获取成功,则 opt 传递此参数。 - ​ 举例来说,如果传入的 flag_expect 为 0x9(0x8 | 0x1),且 opt 为 TOS_OPT_EVENT_PEND_ANY,则 event 包含的旗标包含 0x8 或者 0x1 即视为事件获取成功,也就是说,event 包含的旗标为 (0x8 | X, X 为整数,且 X∈(0, 0xFFFFFFFF]),或者 (0x1 | X, X 为整数,且 X∈(0, 0xFFFFFFFF])。 + 举例来说,如果传入的 flag_expect 为 0x9(0x8 | 0x1),且 opt 为 TOS_OPT_EVENT_PEND_ANY,则 event 包含的旗标包含 0x8 或者 0x1 即视为事件获取成功,也就是说,event 包含的旗标为 (0x8 | X, X 为整数,且 X∈(0, 0xFFFFFFFF]),或者 (0x1 | X, X 为整数,且 X∈(0, 0xFFFFFFFF])。 2、TOS_OPT_EVENT_PEND_ALL - ​ 尝试从事件中获取一组旗标,并且这一组旗标必须至少包含 flag_expect 中标识的所有旗标,如果只在此种场景下视作 event 获取成功,则 opt 传递此参数。 + 尝试从事件中获取一组旗标,并且这一组旗标必须至少包含 flag_expect 中标识的所有旗标,如果只在此种场景下视作 event 获取成功,则 opt 传递此参数。 - ​ 举例来说,如果传入的 flag_expect 为 0x9(0x8 | 0x1),且 opt 为 TOS_OPT_EVENT_PEND_ALL,则 event 包含的旗标至少为 0x9 的最小全集才视为事件获取成功,也就是说,event 包含的旗标应为 (0x9 | X, X 为整数,且 X∈(0, 0xFFFFFFFF])。 + 举例来说,如果传入的 flag_expect 为 0x9(0x8 | 0x1),且 opt 为 TOS_OPT_EVENT_PEND_ALL,则 event 包含的旗标至少为 0x9 的最小全集才视为事件获取成功,也就是说,event 包含的旗标应为 (0x9 | X, X 为整数,且 X∈(0, 0xFFFFFFFF])。 3、TOS_OPT_EVENT_PEND_CLR - ​ 如果希望读取完事件后,直接复位清空 event 的所有旗标,则 opt 传递此参数。 + 如果希望读取完事件后,直接复位清空 event 的所有旗标,则 opt 传递此参数。 - ​ 举例来说,原 event 包含旗标为 0x9,在传递 TOS_OPT_EVENT_PEND_CLR 参数并成功获取 event 中的旗标后,event 包含的旗标会复位为 0x0。 + 举例来说,原 event 包含旗标为 0x9,在传递 TOS_OPT_EVENT_PEND_CLR 参数并成功获取 event 中的旗标后,event 包含的旗标会复位为 0x0。 - ​ 如果希望一次传入多个选项,可以用逻辑“或”将多个参数连接传入,譬如同时希望采用 TOS_OPT_EVENT_PEND_ANY 语义及 TOS_OPT_EVENT_PEND_CLR,可以传入(TOS_OPT_EVENT_PEND_ANY | TOS_OPT_EVENT_PEND_CLR)。 + 如果希望一次传入多个选项,可以用逻辑“或”将多个参数连接传入,譬如同时希望采用 TOS_OPT_EVENT_PEND_ANY 语义及 TOS_OPT_EVENT_PEND_CLR,可以传入(TOS_OPT_EVENT_PEND_ANY | TOS_OPT_EVENT_PEND_CLR)。 - ​ 需要注意的是,不可以同时传入 TOS_OPT_EVENT_PEND_ANY 与 TOS_OPT_EVENT_PEND_ALL。 + 需要注意的是,不可以同时传入 TOS_OPT_EVENT_PEND_ANY 与 TOS_OPT_EVENT_PEND_ALL。 - **返回值** @@ -3631,11 +3635,11 @@ k_err_t tos_timer_create(k_timer_t *tmr, 1、TOS_OPT_TIMER_ONESHOT - ​ 一次性定时器,创建定时器时传入此参数,表示该定时器是一次性的,只会执行一次。 + 一次性定时器,创建定时器时传入此参数,表示该定时器是一次性的,只会执行一次。 2、TOS_OPT_TIMER_PERIODIC - ​ 周期性定时器,创建定时器时传入此参数,表示该定时器是周期性的,定时器到期后,会按 period 参数开启下一个周期。 + 周期性定时器,创建定时器时传入此参数,表示该定时器是周期性的,定时器到期后,会按 period 参数开启下一个周期。 - **返回值** From 4076704bbfac557c610203088c272ae96f9d2bfb Mon Sep 17 00:00:00 2001 From: Jer6y <3229960773@qq.com> Date: Thu, 17 Aug 2023 13:54:06 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=86=85=E6=A0=B8API=20?= =?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 | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/doc/05.SDK_Manual.md b/doc/05.SDK_Manual.md index ef056d044..462e6700f 100644 --- a/doc/05.SDK_Manual.md +++ b/doc/05.SDK_Manual.md @@ -410,6 +410,12 @@ k_err_t tos_task_resume(k_task_t *task); TOS_ERR_NONE 恢复任务运行成功。 K_ERR_TASK_RESUME_SELF 试图恢复当前任务(非法)。 + + K_ERR_OBJ_PTR_NULL 传入的task是一个Null ptr + + K_ERR_OBJ_INVALID 传入的task不是一个kernel 对象 + + ### tos_task_prio_change @@ -433,6 +439,12 @@ k_err_t tos_task_prio_change(k_task_t *task, k_prio_t prio_new); K_ERR_NONE 任务优先级更新成功。 K_ERR_TASK_PRIO_INVALID 优先级非法。 + + K_ERR_OBJ_PTR_NULL 传入的task是一个Null ptr + + K_ERR_OBJ_INVALID 传入的task不是一个kernel 对象 + + K_ERR_IN_IRQ 试图在中断服务程序ISR中改变某个任务的优先级 ### tos_task_yield