我在网上看到,可以在Windows上为外部设备构建FreeRTOS。你能在ubuntu上为x86构建它吗?
由于
答案 0 :(得分:11)
使用FreeRTOS在X86上可以做几件事。
第一种是在CPU上运行FreeRTOS作为操作系统。 FreeRTOS适用于微控制器,因此只有(正式)支持实模式(16位)。如果您运行的是基于186的微控制器,例如过去由AMD制造的那些(现在是?)RDC,那么这是有效的。您也可以在任何X86上运行代码,但仅在实模式下运行,并且它曾经是使用Open Watcom等工具的核心FreeRTOS代码的开发平台。我不确定一个等效的Linux托管16位编译器,但可能有一个。
另一个在X86上使用FreeRTOS是运行FreeRTOS模拟器。完成后,FreeRTOS不是运行CPU的内核,Windows或Linux正在运行CPU,但有Windows或Linuxs线程运行FreeRTOS代码。这是现在进行核心开发工作的首选方式 - 但它只是一个模拟器,意味着时间到处都是,模拟时间远低于实时(因为Windows中的时序分辨率和精度与实时系统)。
可以使用Visual Studio(免费版)运行Windows模拟器,并维护该端口。您也可以将它与MingW和Eclipse一起使用,虽然演示功能较少,但我相信Eclipse的更高版本存在一些问题。
Linux FreeRTOS模拟器是一个贡献端口,所以我无法真正评论它。
Windows模拟器页面: http://www.freertos.org/FreeRTOS-Windows-Simulator-Emulator-for-Visual-Studio-and-Eclipse-MingW.html
Linux模拟器页面: http://www.freertos.org/FreeRTOS-simulator-for-Linux.html
问候。
答案 1 :(得分:2)
根据FreeRTOS ports page x86构建支持的工具是:
所以你的问题的答案似乎是否定的。
由于以上都是基于Windows的工具,我猜你需要一台Windows PC才能构建一个x86版本的FreeRTOS,尽管你可以在Ubuntu下使用WINE这样的模拟器。
答案 2 :(得分:2)
我不知道如何构建 FreeRTOS 以在基于 x86 的成熟计算机上作为操作系统运行,但我真的很想了解自己!
不过,我可以说我可以很轻松地在 Linux 上运行 FreeRTOS 模拟器。我无法真正评论它的“实时”程度,据说(它明确指出它不是实时的,因为它运行在非实时 Linux 内核之上),但是构建和运行它非常容易.
在此处获取源代码:https://github.com/FreeRTOS/FreeRTOS。以下是在 Linux 上构建和运行模拟器的方法:
git clone https://github.com/FreeRTOS/FreeRTOS.git --recurse-submodules
cd FreeRTOS/FreeRTOS/Demo/Posix_GCC
make
现在已经建好了。要运行它,请执行以下操作:
./build/posix_demo
就是这样!它工作得很好!这是演示项目:https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS/Demo/Posix_GCC。
然后您可以自己修改该项目,以根据您的确切需求和目的对其进行自定义。只需将该演示作为基线开始即可。这是一个很棒的小演示,有 2 个任务(线程)和一个线程安全队列(多生产者/多消费者兼容)以在它们之间传递数据。