内核 API

本节包含内核核心服务(参考 内核入门(第 2 版))的 API。

重要

除非特别注释,这些 API 只能被线程使用,不能被 ISR 使用。

线程

线程是用于实现应用程序部分功能的独立可调度指令的集合。线程用于处理由于执行时间太长或者太复杂而不能在 ISR 内执行的任务。(参考 线程

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

工作队列

工作队列通过执行一个专有线程里的相关函数来处理一系列的工作项。工作队列通常用于将 ISR 或者高优先级线程的非紧急任务移交到低优先级线程。(参考 线程

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

时钟

内核时钟使线程或者 ISR 能够用常规精度和高精度来测量经过了多少时间。(参考 内核时钟

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

定时器

定时器时线程能够测量经过了多少时间,并在时间到期后执行某个动作(可选)。(参考 定时器

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

内存片

内存片能够用来动态地分配和释放固定尺寸的内存块。(参考 内存片

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

内存池

内存池能够用来动态地分配和释放可变尺寸的内存块。(参考 内存池

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

堆内存池

堆内存池能够用来像 malloc() 那样动态地分配和释放内存块。(参考 堆内存池

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

信号量

信号量提供了传统的计数信号量功能。(参考 信号量

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

互斥量

互斥量提供了带有基础优先级继承的传统可重入互斥量功能。(参考 互斥量

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

告警

告警使应用程序能够执行异步信号,在这某种程度上类似于 Unix 风格的信号。(参考 告警

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

FIFO

FIFO 提供了传统的适用于任意尺寸数据的先进先出的功能。(参考 Fifo

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

LIFO

LIFO 提供了传统的适用于任意尺寸数据的后进先出的功能。(参考 Lifo

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

栈提供了传统的以 32 比特为单位的数据项的后进线程的功能。(参考

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

消息队列

消息队列提供了一个简单的适用于尺寸固定的数据项的消息队列机制。(参考 消息队列

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

邮筒

邮筒提供了一个适用于尺寸可变的消息的消息排队机制。(参考 邮筒

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

管道

管道提供了可发送尺寸可变的数据块的匿名管道机制。(参考 管道

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

中断服务例程(ISR)

ISR 是为响应硬件或者软件中断而异步执行的一些列指令。(参考 中断

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

原子服务

原子服务使多个线程和 ISR 能够以不可中断的方式读取和修改 32 比特的变量。(参考 原子服务

重要

All atomic services APIs can be used by both threads and ISRs.

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

浮点服务

浮点服务使线程能够利用开发板的浮点寄存器。(参考 浮点服务

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

环形缓冲

缓冲缓冲使尺寸可变的数据项能够以先进先出的方式进行排队。(参考 环形缓冲

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml

遗留 API

这些 API 将会在即将发布的新版本中遗弃,因此建议您尽量避免在您的应用程序中使用这些 API。

警告

doxygengroup: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/zephyr-doc/checkouts/latest/doc/doxygen/xml/index.xml