874|1

181

帖子

1

TA的资源

一粒金砂(高级)

楼主
 

《RT-Thread设备驱动开发指南》读书笔记1一开始阅读 [复制链接]

本帖最后由 chrisrh 于 2023-8-25 15:06 编辑

前段事情比较多,没有推动进度,后续好好规划时间,多写点~

阅读第一部分学习感悟:在学习新知识前,还是要先好好的了解基础概念

记得初次接触RTT的时候,就是看的野火内核的书,内核讲的简单易懂,了解了线程、信号量、任务、事件以及处理机制;

通过相关例程很快就能把RTT仿真运行起来,使用打印出来的日志去观察现象。

但在应用的时候,如注册个传感器等等,便开始一头雾水。虽然有官方文档指导,但是在网上看都是一扫而过,很难静下心细看细想;

拿到设备驱动开发指南纸质书,配合着官方文档手册:I/O设备模型 (rt-thread.org),跟着打卡进度,驱动自己学习,对设备和驱动有了新的理解和认识;

虽然书上有很多地方和官方指导手册一致,但看下来后,看到的关注点就是不一样,也许这就是论坛与纸质书结合的魅力吧!

 

内核的一对象~设备device

 

归纳整理封装继承派生,使用统一设备框架去管理;框架分为3层去对接,分别是I/O设备管理层、设备驱动框架层、设备驱动层:

RTThread把外部同类事物进行了抽象,看成IO设备去对待;化繁为简,其实都是IO口的高低变化;构成I/O设备管理层;

把各设备相同部分抽取出来,不同部分留出接口;构成设备驱动框架层;

为驱使硬件设备工作,而构建设备驱动层,用以创建和注册I/O设备;操作逻辑简单的设备,可直不经过设备驱动框架层,直接注册到 I/O 设备管理接口来访问硬件,

 

内核继承:

 

设备继承:

 

 

 

操作逻辑简单的设备,从上至下,按箭头流向依次执行:

创建设备create->注册设备register->查找设备find->打开设备open->读取设备read->关闭设备close

 

另一些设备,如硬件看门狗等,先创建设备实例,接着注册到设备驱动框架中,再由设备驱动框架向 I/O 设备管理器进行注册。

 

 

 

RTstudio生成标准版程序串口应用方式:

在components.c的rtthread_startup中调用rt_hw_board_init();

在drv_common.c中弱声明RT_WEAK rt_hw_usart_init();

在drv_usart.c中进行硬件底层驱动和初始化配置

在rt_hw_usart_init();中进行底层驱动接口和驱动框架接口的对接

①、struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT; //配置串口初始化参数

②、接着对每个串口依次进行接口对接、参数配置//

uart_obj.config = &uart_config;

uart_obj.serial.ops = &stm32_uart_ops;

uart_obj.serial.config = config;

③、进行设备的注册

result = rt_hw_serial_register(&uart_obj.serial, uart_obj.config->name,RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_INT_TX | uart_obj.uart_dma_flag, NULL);

 

 

 

 

 

最新回复

要先好好的了解基础概念 有理   详情 回复 发表于 2023-8-31 10:21
点赞 关注

回复
举报

6105

帖子

4

TA的资源

版主

沙发
 

要先好好的了解基础概念 有理

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表