本文由RT-Thread论坛用户@yangjie原创发布:https://club.rt-thread.org/as...
初学者福利。
粗略地画了一个图,主要针对设备这块,能帮助初学者理解设备架构的层次关系。
基础知识:《IO设备模型》 初学者可以点击链接先做了解。
下图所示为RTT设备层次关系。
(1)STM32为例
使用 cubemx 配置的外设,点击生成代码之后,外设的初始化代码会更新到 stm32xxx_hal_msp.c 文件中,然后被 drv_xxx.C 调用对接到设备驱动框架层上。设备驱动框架层注册设备到IO管理器(注:为了简单点 此处我没加device.c),并提供给用户应用API。
(2)其他芯片
可能没有相关的代码配置与生成工具,只有厂商提供的库文件。在开发驱动的时候,需要开发者完成 drv_xx.c,对下层对接厂商库文件,对上层对接rt-thread 提供的设备驱动框架层。
注:studio下源码在工程中的分组就是源码所在目录。
注意事项:
在stm32 cubemx 配置设备后,生成代码时候,不要选择以下选项(即:不让其生成单独的 .c/.h 驱动文件,直接全部更新到 rt-thread 要使用的 stm32xxx_hal_msp.c 文件中):