2043|8

5980

帖子

8

TA的资源

管理员

 

阅读打卡第一站:IO设备框架基础知识——《RT-Thread设备驱动开发指南》 [复制链接]

本次阅读小伙伴们@南若  @chrisrh @wakojosin @xiaolinen @damiaa,大家好。书籍将于本周派发给大家,先把RT-Thread官方给出的第一站的打卡题目发布出来。

预计阅读完《RT-Thread设备驱动开发指南》第一章可解答。

 

1.RT-Thread 设备基类是什么?
2.RT-Thread为设备提供了哪些操作方法?
3.设备名的最大长度是什么指定的?
4.设备注册失败,可能的原因是什么?

 

希望大家开卷启程,一起走到终点站。

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽

最新回复

1、RT-Thread 设备基类是rt_device 2、rt_device_find、rt_device_init、rt_device_open、rt_device_close、rt_device_control、rt_device_read、rt_device_write、rt_device_set_rx_indicate、rt_device_set_tx_complete 3、设备名的最大长度是RT_NAME_MAX决定的 4、设备对象为空或者设备名已注册都能导致设备注册失败   详情 回复 发表于 2023-8-21 10:28
个人签名微信搜索公众号“EEWORLDBBS”快去添加关注吧!

回复
举报

59

帖子

1

TA的资源

一粒金砂(中级)

 
这些问题是在这个帖子里回复吗?

点评

nmg
是的,直接跟帖回复即可。  详情 回复 发表于 2023-8-8 14:58
 
 

回复

4968

帖子

236

TA的资源

管理员

 
wakojosin 发表于 2023-8-7 15:09 这些问题是在这个帖子里回复吗?

是的,直接跟帖回复即可。

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
 
 
 

回复

163

帖子

2

TA的资源

一粒金砂(高级)

 

1.RT-Thread 设备基类是什么?

rt_device
2.RT-Thread为设备提供了哪些操作方法?

init、open、close、write、read、control
3.设备名的最大长度是什么指定的?

通过查看源码可以知道是由宏 RT_NAME_MAX 决定的。
4.设备注册失败,可能的原因是什么?

通过产看源码,设备注册失败可能的原因是dev为空、设备类型不存在、设备名超出最大字符串限制

 

 

 
 
 

回复

59

帖子

1

TA的资源

一粒金砂(中级)

 

1.RT-Thread 设备基类是什么?第一章


rt_device


2.RT-Thread为设备提供了哪些操作方法?第一章


i/o设备管理层提供rt_device_find、open、read、write、close、register等;


设备驱动框架提供rt_hw_xxx_register及rt_xxx_yyy,其中xxx为对应设备驱动框架的名称,yyy为操作接口;


3.设备名的最大长度是什么指定的?源码rtdef.h


RT_NAME_MAX


4.设备注册失败,可能的原因是什么?源码device.c


a.设备对象为空;


b.设备名已注册;


 
 
 

回复

42

帖子

0

TA的资源

一粒金砂(中级)

 

1.RT-Thread 设备基类是什么?

:rt_device。
2.RT-Thread为设备提供了哪些操作方法?

:init(),open(),close(),read(),write(),control()。
3.设备名的最大长度是什么指定的?

:由RT_NAME_MAX决定 。
4.设备注册失败,可能的原因是什么?

:1)设备对象为空;2)设备名已经注册。

 
 
 

回复

156

帖子

1

TA的资源

一粒金砂(高级)

 

1.RT-Thread 设备基类是什么?

设备基类是rt_device,rt_device是基于内核对象rt_object派生出来的;

 

2.RT-Thread为设备提供了哪些操作方法?

RT-Thread为设备提供了一套位于硬件和应用程序之间的简单I/O设备模型框架(设备框架)。

该框架共分为3层,分别是I/O设备管理层、设备驱动框架层、设备驱动层。

1)I/O设备管理层:提供rt_device_find、open、read、write、close、register等接口;

2)设备驱动框架层:对同类硬件设备驱动的抽象,不同部分留出接口,由驱动程序实现;

3)设备驱动层:驱使硬件工作,负责创建和注册I/O设备;


3.设备名的最大长度是什么指定的?

最大长度在rtconfig.h中的#define RT_NAME_MAX设定

char       name[RT_NAME_MAX];


4.设备注册失败,可能的原因是什么?

根据返回错误指令,原因可能是1设备对象为空,2设备名已注册;

if (dev == RT_NULL)
        return -RT_ERROR;

if (rt_device_find(name) != RT_NULL)
        return -RT_ERROR;

 
 
 

回复

5318

帖子

4

TA的资源

版主

 

1.RT-Thread 设备基类是什么?第一章

 

rt_device 所有rt-thread的类是由rt_boject派生,rt_device是所有设备类的基类。

 

2.RT-Thread为设备提供了哪些操作方法?第一章

 

i/o设备管理层提供rt_device_find、init、open、close、control、read、write、register,数据收发回调等;

 

3.设备名的最大长度是什么指定的?源码rtdef.h

 

RT_NAME_MAX

 

4.设备注册失败,可能的原因是什么?源码device.c

 

 设备对象为空;

 设备名已注册;

 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

 

1、RT-Thread 设备基类是rt_device
2、rt_device_find、rt_device_init、rt_device_open、rt_device_close、rt_device_control、rt_device_read、rt_device_write、rt_device_set_rx_indicate、rt_device_set_tx_complete
3、设备名的最大长度是RT_NAME_MAX决定的
4、设备对象为空或者设备名已注册都能导致设备注册失败

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表