【问题标题】:RTEMS STM32F4 how to use BSPRTEMS STM32F4如何使用BSP
【发布时间】:2017-11-02 07:22:02
【问题描述】:

我对 RTEMS 很陌生。 我认为已经成功构建 RTEMS 以在 STM32F4 上运行。 我已经尝试了示例文件夹中包含的 LED 闪烁示例(槽计时器)(此处:https://github.com/RTEMS/examples-v2/tree/master/led)。

我已经编译并在我的板上闪烁了它,并且 LED 闪烁,所以我认为有一个很好的设置。遗憾的是,没有太多关于“如何使用板级支持包 (BSP)”的示例来编程硬件相关功能。

我想更进一步,我想使用 USART 以便拥有一个对调试和学习有用的控制台。 我真的不知道如何使用 BSP(在代码级别)来实现 USART 或更一般地实现硬件驱动程序。 我应该定义什么?我需要打什么电话?我可以想象,使用 RTEMS 和 BSP,我不应该在“寄存器级别”编写代码。我对吗? 有人可以给我一个简单的例子吗?你能就这个论点给我一些澄清吗?

提前感谢您的帮助。 洛伦佐

【问题讨论】:

  • 您是将 RTEMS 移植到此平台还是已经移植?
  • 嗨 Old_timer,不,它应该已经被移植,但我找不到文档,所以我很困惑。感谢您的帮助

标签: arm embedded stm32f4 bsp rtems


【解决方案1】:

在大多数 BSP 上,其中一个串行端口用于标准输入和标准输出。因此,您应该能够使用普通的 POSIX 函数(如 printf)将文本打印到该控制台。

默认情况下,此 BSP 上只有 USART3 处于活动状态。因此,如果您没有使用任何特殊选项,我会假设该选项是标准输出。默认波特率为 115200。引脚应为 PD8 上的 TX 和 PD9 上的 RX。

从 examples-v2 存储库中,hello_world_c 应该做一些基本的输出:https://github.com/RTEMS/examples-v2/tree/master/hello/hello_world_c

如果您想使用另一个 USART 或 UART,您应该在配置您的 BSP 时使用以下选项启用它:STM32F4_ENABLE_USART_1=1(请注意,4 和 5 是 UART 而不是 USART

然后,您应该能够打开所有其他 USARTS 和 UARTS,例如只需使用 open(...) 打开 /dev/ttyS1 设备,并像在 Linux 上一样使用相同的 read(...)write(...) 调用。

【讨论】:

  • 你好 Christian,我尝试了你提出的解决方案,它有效!那谢谢啦!如果我可以问更多问题,在哪里可以找到所有相关的 STM32F4 RTEMS BSP 文档? github.com/RTEMS/rtems/tree/master/c/src/lib/libbsp/arm/stm32f4我找不到!您提出的解决方案简单明了,但是您从哪里了解到的?例如,我可以在哪里知道 BSP 中实现了什么,什么没有实现等等。再次感谢您的时间,Lorenzo
  • BSP 文档是 RTEMS 的弱点。其中一部分位于 BSP 的 README 文件中。其他一些部分在 wiki 中。在这种情况下:devel.rtems.org/wiki/TBR/BSP/STM32_F4。更通用的(不是特定于 BSP 的)文档可以在这里找到:docs.rtems.org。请注意,RTEMS 实现了很多 POSIX。所以你有一个与 Linux 非常相似的 C 标准库。关于这个问题,我是从哪里了解到的:我在嵌入式大脑 (embedded-brains.de/en) 工作,我们正在提供商业 RTEMS 支持。所以我可以在工作中学习,也可以向同事学习。问候,克里斯蒂安
猜你喜欢
  • 2012-10-02
  • 1970-01-01
  • 2014-01-07
  • 2015-01-05
  • 2016-04-18
  • 2012-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多