RT Thread device(二) PIN 与移植

5 篇文章 0 订阅

RT Thread PIN 部署上主要有
application 应用层,开发者自己创建的C文件或者模块
RTT IO Device 是RTT PIN接口,对于所有的应用程序来说,使用这个相同的接口。
RT HAL HAL interface 用于MCU 和RTT特定的 PIN接口之间的解耦
最后由MCU 官方HAL库实现PIN 组件的物理操作
在这里插入图片描述
application 应用程序 产生对PIN 读写操作的需求,其输入参数为RTT PIN INDEX ,特别的命名方式对开发者比较友好。它可以提供RTT PIN index
PIN IO device 是PIN device 对象的实现,需要RTT PIN INEDX 作为输入参数,由_hw_pin对象的方法实现
PIN index 传输到解耦层进行PIN index 转换,最后到ST HAL库
在这里插入图片描述

文件依赖关系
在这里插入图片描述

app.c 调用 rt_pin_write(LED0_PIN, PIN_HIGH);
输入参数由 宏定义 #define LED0_PIN GET_PIN(C, 13)解释
PIN定义宏展开在 drv_gpio.h
展开后的GPIO PIN按照ST HAL库方式命名,需要STM32xxxx.h指定到GPIO实体位置。

移植 device pin
建立文件夹 pin
copy rt-thread-master\bsp\stm32\libraries\HAL_Drivers
drv_gpio.c
drv_gpio.h

rt-thread-master\components\drivers\misc
pin.c
rt-thread-master\components\drivers\include\drivers
pin.h
在这里插入图片描述
pin 上一层文件夹

rt-thread-master\bsp\stm32\libraries\HAL_Drivers

drv_common.h

rt-thread-master\components\drivers\include
rtdevice.h

\rt-thread-master\bsp\stm32\stm32h743-armfly-V7\board
主要是相同处理器信号的文档,也可以自行修改
board.c
board.h

rtdevice.c
条件编译,关闭以下内容
在这里插入图片描述
去掉头文件中的路径 include <drivers/pin.h> 为 include <pin.h>

替换部分宏定义
在这里插入图片描述

rtconfig.h
#define RT_USING_PIN

使用rtt pin api 前需要初始化 rt_hw_pin_init
在这里插入图片描述
移植过程中需要添加很多头文件,开启*.i 可以帮助debug,观察宏展开
Freertos + h743vit6 +Finsh+ device Pin 移植成功
在这里插入图片描述

Freertos + F103BillPill +Finsh+ device Pin 移植成功
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值