ZephyrOS 中“App”含义的澄清

问题描述 投票:0回答:1

Zephyr 项目附带了很多“应用程序”。在我看来,定义是“App = 你的程序 + ZephyrOS”

“应用程序”这个词对我来说意味着一个二进制文件中可以有很多个,即多任务处理。 我可以看到如何为每个要运行的程序启动一个线程,但在 zephyr 行话中,这仍然算作单个“应用程序”吗?

我是否应该将我可能想要作为线程运行的每个程序开发为具有某些入口点函数的库,并从主应用程序分派它们?或者是否有某种方法可以将多个不同的应用程序组合成一张图像?

zephyr-rtos
1个回答
0
投票

您是对的,在 Zephyr 中,术语“应用程序”通常指您在 Zephyr RTOS 之上构建和运行的单个应用程序或程序。通常,您的嵌入式设备上会运行一个“应用程序”,其中包括自定义代码、Zephyr 操作系统、必要的设备驱动程序和库,所有这些都组合成一个闪存到硬件上的固件映像。这种方法并不是 Zephyr 独有的。这在嵌入式系统中很常见,其中构建了一个主要应用程序并将其部署到设备上 - 与通用计算机或 Raspberry Pi 等平台不同,其中多个应用程序可以同时运行。

至于多任务处理,是的,用 Zephyr 行话来说,这只是“一个应用程序”。这类似于其他嵌入式 RTOS(例如 FreeRTOS),其中有多个线程在单个应用程序中启动和管理。同样,在您的情况下,您可能希望在一个应用程序下构建所有内容并生成一个闪存到您的设备中的二进制文件,即使它具有多个线程并包含多任务处理。

但是也有例外。例如,如果您正在构建具有多个核心的目标(例如具有应用程序核心和网络核心的 nRF5380),那么您可能需要构建两个应用程序,每个核心一个。这允许每个处理器拥有其专用的固件,尽管它们通常通过处理器间通信或共享内存一起工作。

下面的链接对这个主题有一些很好的解释:-

© www.soinside.com 2019 - 2024. All rights reserved.