Skip to content

Commit

Permalink
Merge pull request #395 from Jer6y/master
Browse files Browse the repository at this point in the history
修改API内核文档
  • Loading branch information
Supowang1989 committed Aug 17, 2023
2 parents 56707e7 + 4076704 commit 72119f1
Showing 1 changed file with 49 additions and 10 deletions.
59 changes: 49 additions & 10 deletions doc/05.SDK_Manual.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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中卸锁

## 任务管理

Expand Down Expand Up @@ -316,6 +320,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
Expand All @@ -340,6 +352,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
Expand All @@ -362,6 +383,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
Expand All @@ -383,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

Expand All @@ -406,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

Expand Down Expand Up @@ -1095,25 +1134,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。

- **返回值**

Expand Down Expand Up @@ -3608,11 +3647,11 @@ k_err_t tos_timer_create(k_timer_t *tmr,

1、TOS_OPT_TIMER_ONESHOT

一次性定时器,创建定时器时传入此参数,表示该定时器是一次性的,只会执行一次。
一次性定时器,创建定时器时传入此参数,表示该定时器是一次性的,只会执行一次。

2、TOS_OPT_TIMER_PERIODIC

周期性定时器,创建定时器时传入此参数,表示该定时器是周期性的,定时器到期后,会按 period 参数开启下一个周期。
周期性定时器,创建定时器时传入此参数,表示该定时器是周期性的,定时器到期后,会按 period 参数开启下一个周期。

- **返回值**

Expand Down

0 comments on commit 72119f1

Please sign in to comment.