rt-thread 设备驱动结构

RT-Thread 提供了一套简单的 I/O 设备管理框架,它把 I/O 设备分成了三层进行处理:应用层、 I/O 设备管理层、硬件驱动层。应用程序通过 RT-Thread 的设备操作接口获得正确的设备驱动,然后通过这个设备驱动与底层 I/O 硬件设备进行数据(或控制)交互。RT-Thread 提供给上层应用的是一个抽象的设备操作接口,给下层设备提供的是底层驱动
框架

  • 设备模型框架
    在这里插入图片描述

  • 使用序列图在这里插入图片描述

  • 以rt-thread官方仿真的GPIO示例来说

文件夹文件函数对应结构体
应用层Applicationmain.crt_device_init(wdg_dev)
I/O设备管理层Kerneldevice.crt_device_init() rt_device_open()
设备驱动框架层DeviceDriverspin.crt_device_pin_register() _pin_read() _pin_write()_hw_pin.parent.read
设备驱动层Driversdrv_gpio.crt_hw_pin_init() stm32_pin_read() stm32_pin_write()_hw_pin.ops.pin_read

我理解,结构层应该是操作具体设备。
例如gpio驱动的是led,那么结构层应该是led.c,驱动层还是drv_gpio.c
spi结构驱动flash,那么架构层就是flash.c,驱动层drv_spi.c
在这里插入图片描述

  • 设备初始化调用过程
startup.s component.c board.c drv_gpio.c IMPORT __main rtthread_startup rt_hw_board_init() rt_components_board_init() INIT_BOARD_EXPORT(rt_hw_pin_init) startup.s component.c board.c drv_gpio.c
  • 工程文件文件结构

在这里插入图片描述

  • 文件函数列举
    在这里插入图片描述

官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值