【发布时间】:2020-09-26 04:14:31
【问题描述】:
我想用 free-rtos 为微控制器编写一个多线程程序。但我不想使用非标准的 free-rtos 函数,而是想使用原生 c++ 库来运行并行和异步任务。但我不知道如何编写一个适配器,用于将用于创建线程的 c++ 系统调用连接到 free-rtos 函数。
mcu: 手臂皮质 m4 stm32f407
c++ 版本:17
【问题讨论】:
-
第三种选择是使用标准 C++ 线程库。
-
@TedLyngmo 我认为您的建议正是 OP 想要做的。挑战可能在于 C++ 标准库实现依赖于 POSIX 线程,但 RTOS 通常具有非 POSIX 的本机线程 API
-
@marko 我可能误解了 OP 想要什么。应该不需要编写适配器。标准库应包含所需的所有抽象,并且可以免费使用 pthread 或本机 API 中可用的任何东西。
-
@marko 我的项目在微控制器上并且没有任何操作系统,所以像 std thread 或 pthread 这样的库在没有操作系统的情况下将无法正常工作,正如你所说的那样,对吗?所以我将 free-rtos 添加到我的项目中以使用多线程,但是一些库使用本机 c++ 线程或 pthread 库,它们不能与 free-rtos 函数一起使用。所以我需要以某种方式将 std 线程库连接到 free-rtos 函数。正确的?我只是想知道我该怎么做
-
@MahyarShokraeian 你想要什么是不可能的!不过,您可以在 FreeRTOS 上编写一个包装器作为其上层。
标签: c++ arm microcontroller freertos bare-metal