RTEMS STM32F4如何使用BSP

RTEMS STM32F4 how to use BSP

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

我已经编译并在我的板上闪现了,led 闪烁,所以我认为设置得很好。不幸的是,没有那么多关于 "how to use Board Support Packages (BSP)" 的示例来编写与硬件相关的功能。

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

在此先感谢您的帮助。 洛伦佐

在大多数 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 设备并使用相同的 read(...)write(...)像在 Linux.

上那样打电话