问题标签 [chibios]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kernel - 什么是 RTOS 内核锁定以及何时需要使用它?
我正在使用 ChibiOS RTOS,我有一些看起来很基本的问题,但有点让我想不到。
ChibiOS 有一个函数叫做:
和
据我了解,这两个函数将分别锁定和解锁内核。
所以我的问题是:
- 锁定内核有什么作用?
- 为什么要锁定内核?
最后,让我们使用这个例子:
这个函数只是为任何线程等待它的信号量发出信号。
所以我的最后一个问题是:
- 锁定内核只是为了发出信号量有什么意义?如果我不这样做,那么 ChibiOS 会抱怨并且在没有系统锁的情况下无法编译。
embedded - STM32 上的 Eigen 只能工作到一定大小
我正在尝试在 STM32F4 Discovery 嵌入式板上使用 Eigen C++ 库来执行一些矩阵运算,特别是对传感器数据进行一些卡尔曼滤波。
我尝试链接标准 c++ 库,甚至尝试使用 g++ arm 编译器编译程序。
如果矩阵大小设置为 7,我可以编译相同的代码。如果我越过它,那么代码将不会编译,并且特征会给我一个警告:
这些是我收到的部分错误消息
这是我正在使用的链接器脚本中的内存分配
我只是在运行 STM32F4 发现板,但 Chibios 配置不变
更新
我无法再重现此错误。可悲的是,我没有做任何事情来解决这个问题。
如果有人感兴趣,以上是我正在使用的编译器选项。
现在我可以毫无问题地乘以 20x20 矩阵。
完成上述计算大约需要 1 毫秒。
我认为我的编译器可能有问题。所以我尝试了两个版本的编译器
版本 - 1
版本 2
c - ChibiOS_3.0.2 迁移到 ChibiOS_20.3.x 问题
我正在开发一个完美编译的 ChibiOS 版本 3.0.2 的大项目(我们称之为 chibios3)(它非常过时)所以现在我正在尝试迁移到 ChibiOS 版本 20.3.x(以免称之为 chibios20)。我从 STM32F407 Discovery 演示中获取了 chibios20 chconf.h、halconf.h、mcuconf.h 和 Makefile,并用它们替换了旧配置。旧的 Makefile 如下所示:
演示 Makefile 看起来像(我添加了源和包含目录):
现在我运行命令时make
出现错误,表明该项目无法理解基本语法,如 uint8_t uint16_t .... 甚至没有定义“true”这个词。
错误如下所示:
gdb - 使用 GDB 和 Chibistudio 在 RTOS chibios 中调试线程
我是 Chibistudio 的新手并调试它的线程。现在的问题是,当我使用 chibistudio 的调试窗口时,它会列出所有正在运行的线程,如图所示。 使用 Chibistudio 线程调试窗口进行 Chibios 线程调试 当我使用 gdb 命令调试相同的代码,并使用 info threads 命令列出线程时,它只显示一个线程,并且也显示远程名称。 Chibios Thread Debugging using GDB 想知道这里出了什么问题。为什么在 gdb 名称正确的情况下它不显示所有线程.????
c++ - 如何在 Visual Studio 中为嵌入式项目添加/导入 chibios 库?
我想在我的项目中使用来自chibios的 ch.h 文件。嵌入式项目已创建并使用 stm32 的 HAL 驱动程序。我想找到一种将 chibios 库添加或导入到当前项目的方法。
我的问题是
- 如何在 Visual Studio 中通过 visualGDB 添加这些具有大量依赖项的嵌入式库?
- 我需要创建 chibios 的 .lib 文件吗?
- C/C++ 路径和链接器路径有什么区别?
- 添加 .a 和 .h 文件就足够了,还是我必须寻找其他文件?
我遵循了3种方法,但没有成功。
我按照链接添加了路径。添加到项目的文件是 libch.a 和 ch.h。它在 ch.h 中被称为其他头文件。然后,我也将其他头文件路径添加到 C/C++“其他包含目录”中。添加第三个头文件后,出现错误“重新定义”。
第二种方式,我想使用库管理器vcpkg 。但是在 vcpkg 中没有 chibios 库。
另一种方法是在标准库中添加库而不添加任何路径。但是我怎样才能找到标准库呢?如果该位置在编译器中(gcc-arm-none-eabi),则添加了 chibios 包,但在 Visual Studio 中仍未检测到。
如果您知道在 Visual Studio 中添加 chibios 的任何教程或方法,我将不胜感激