BSP制作

STM32系列驱动介绍

在RT-Thread实时操作系统中,各种各样的设备驱动是通过一套I/O设备管理框架来实现的。
设备管理框架给上层应用提供了一套标准的设备操作API,开发者通过调用这些标准设备操作API,可以高效地完成和底层硬件外设的交互。

设备管理框架如图所示:
在这里插入图片描述
使用I/O设备管理框架开发应用程序,有如下优点:

驱动分类介绍

对于一个BSP而言,有如下三类驱动:

  • 板载外设驱动:指MCU之外,开发板上外设,例如TF卡、以太网和LCD等。
  • 片上外设驱动:指MCU芯片上的外设,例如硬件定时器、ADC和看门狗等。
  • 扩展模块驱动:指可以通过扩展接口或者杜邦线连接的开发板的模块,例如ESP8266模块。

在这里插入图片描述

STM32系列BSP制作

为了让广大开发者更好、更方便地使用 BSP 进行开发,RT-Thread 开发团队重新整理了现有的 STM32 系列的 BSP,推出了新的 BSP 框架。新的 BSP 框架在易用性、移植便利性、驱动完整性、代码规范性等方面都有较大提升,在新的 BSP 框架下进行开发,可以大大提高应用的开发效率。

新的BSP文件夹中不会包含固件库、外设驱动等可以被多个BSP引用的代码文件,而是将这些通用的文件统一存放在Library文件夹中,通过在特定BSP中引用这些文件的方式,来包含BSP中所需的库文件或者驱动文件。
在这里插入图片描述

这种方式不仅大大提高了代码复用率,降低了BSP的维护成本,而且可以更方便地给开发者提供更丰富的驱动文件,让开发者可以更容易地找到自己需要的资源。

新的BSP框架还引入了CubeMX工具,可以使用该工具对BSP中使用的外设引脚进行配置。
CubeMX 工具提供了图形化的配置界面,这种图形化的配置方式对开发者来说更加直观,不仅可以让开发者灵活地配置 BSP 中使用的资源,并且可以让开发者对资源的使用情况一目了然。

复制通用模板

制作新的BSP的第一步是复制一份同系列的BSP模板作为基础,通过对BSP模板的修改来获得新BSP。
在这里插入图片描述

相关推荐

  1. <span style='color:red;'>BSP</span><span style='color:red;'>制作</span>

    BSP制作

    2023-12-13 13:12:03      60 阅读
  2. BSP开发的内容

    2023-12-13 13:12:03       41 阅读
  3. <span style='color:red;'>BGP</span>综合

    BGP综合

    2023-12-13 13:12:03      51 阅读
  4. <span style='color:red;'>BKP</span>外设

    BKP外设

    2023-12-13 13:12:03      53 阅读
  5. <span style='color:red;'>BGP</span>实验

    BGP实验

    2023-12-13 13:12:03      51 阅读
  6. BST Mock

    2023-12-13 13:12:03       32 阅读
  7. <span style='color:red;'>BGP</span>协议

    BGP协议

    2023-12-13 13:12:03      31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-13 13:12:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-13 13:12:03       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-13 13:12:03       87 阅读
  4. Python语言-面向对象

    2023-12-13 13:12:03       96 阅读

热门阅读

  1. pytorch-0.4.0上古版本安装参考

    2023-12-13 13:12:03       65 阅读
  2. 【Python 千题 —— 基础篇】分解数据

    2023-12-13 13:12:03       55 阅读
  3. Mysql的基础语句

    2023-12-13 13:12:03       51 阅读
  4. Linux0.11内核源码解析-string待更新

    2023-12-13 13:12:03       67 阅读
  5. 什么是强缓存和协商缓存?

    2023-12-13 13:12:03       57 阅读
  6. PostgreSQL数据库切换到另一个模式下

    2023-12-13 13:12:03       52 阅读
  7. filebeat 后端运行,自动退出解决

    2023-12-13 13:12:03       58 阅读
  8. C : DS静态查找之顺序索引查找

    2023-12-13 13:12:03       57 阅读
  9. HTB Ouija

    2023-12-13 13:12:03       50 阅读
  10. JRT实现Cache的驱动

    2023-12-13 13:12:03       70 阅读
  11. go标记omitempty的含义

    2023-12-13 13:12:03       55 阅读
  12. c++基于流文件输入输出的综合程序设计

    2023-12-13 13:12:03       59 阅读
  13. 你在地铁上修过bug吗?

    2023-12-13 13:12:03       63 阅读
  14. reactHooks之useDeferredValue

    2023-12-13 13:12:03       69 阅读
  15. 12.12每日一题(备战蓝桥杯循环输出)

    2023-12-13 13:12:03       47 阅读