Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
夏令营
【RSOC25】Day4 课程笔记:IO设备与设备驱动框架
发布于 2025-07-27 23:13:24 浏览:27
订阅该版
[tocm]   #### 字符设备和块设备的特点与区别: **字符设备:**提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反此类设备支持按字节/字符来读写数据。举例来说,键盘、串口、调制解调器都是典型的字符设备 **块设备:**应用程序可以随机访设备数据,程序可自行确定读取数据的位置。硬盘、软盘、CD-ROM驱动器和闪存都是典型的块设备,应用程序可以寻址磁盘上的任何位置,并由此读取数据。此外,数据的读写只能以块(通常是512B)的倍数进行。与字符设备不同,块设备并不支持基于字符的寻址。 这两种类型的设备的根本区别在于它们是否可以被随机访问。字符设备只能总结一下,顺序读取,块设备可以随机读取。 #### 为什么要对设备分类 **MSH**可以重定向到任意的字符设备上,例如将lcd模拟成字符设备,就可以将打印输出到LCD上,或者是实现一套空字符设备,将msh重定向到这里。 **Fatfs文件系统**依赖块设备驱动,我们将SD卡读写实现成块设备,但是也可以用ram来模拟块设备驱动 不同的组件和应用会依赖不同的设备,对设备进行分类,可以做到对一类设备同样的控制 #### 访问 I/0 设备 应用程序通过IO设备管理接口来访问硬件设备,当设备驱动实现后,应用程序就可以访问该硬件。I/O设备管理接口与I/0设备的操作方法的映射关系下图所示  #### 数据接收回调 当硬件设备收到数据时,可以通过如下函数回调另一个函数来设置数据接收指示,通知上层应用线程有数据到达 在应用程序调用rt_device_write()入数据时,如果底层硬件能够支持自动发送,那么上层应用可以设置一个回调函数。这个回调函数会在底层硬件数据发送完成后(例如DMA传送完成或 FIFO已经写入完毕产生完成中断时)调用。  #### GPIO概念与原理 芯片上的引脚一般分为4类:电源、时钟、控制与 I/O,I/0 口在使用模式上又分为 General Purpose lnput Output(通用输入/输出),简称GPIO,与功能复用I/O(如SPI/I2C/UART等)。 大多数MCU的引脚都不止一个功能。不同引脚内部结构不一样,拥有的功能也不一样。可以通过不同的配置,切换引脚的实际功能通用 I/O 口主要特性如下: 可编程控制中断-中断触发模式可配置,一般有下图所示5种中断触发模式: 上升沿触发:用于检测无抖动的上升沿 下降沿触发:用于检测无抖动的下降沿 高电平触发:用于检测高电平状态 低电平触发:用于检测低电平状态 双边沿触发:用于检测无抖动的双边沿 #### RT-Thread I2C 使用思路 1. 查找I2C总线设备 2. 构造 msgs 消息 3. 启动 transfer 传输 4. 处理结果 #### 软件i2c驱动编写 • 开启 I2C 框架 • 选中I2C软件模拟设备功能 •编写I2C 软件模拟驱动 #### RT-Thread SPI 开发模式 • 编写SPI BUS驱动 • 注册 SPI Device 设备 • 打开 SPI Device 设备 •使用 SPI 框架提供 API 编程发送接收数据 • 关闭 SPI Device 设备
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
傅华静
这家伙很懒,什么也没写!
文章
5
回答
0
被采纳
0
关注TA
发私信
相关文章
1
2024RT-Thread操作系统夏令营
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
6
五分钟玩转RT-Thread新社区
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
Bootloader
AT
Hardfault
CAN总线
ART-Pi
FinSH
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
FAL
RTC
rt-smart
cubemx
I2C_IIC
UART
BSP
WIZnet_W5500
ESP8266
PWM
ota在线升级
packages_软件包
flash
freemodbus
GD32
潘多拉开发板_Pandora
编译报错
ADC
keil_MDK
flashDB
rt_mq_消息队列_msg_queue
ulog
socket
MicroPython
msh
中断
Debug
SFUD
at_device
SDIO总线
本月问答贡献
出出啊
1527
个答案
344
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
821
个答案
179
次被采纳
crystal266
555
个答案
162
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
1
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
2
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部