没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
RT-thread 设备驱动组件之
PIN
设备
在 正式版中引入了 设备作为杂类设备,其设备驱动文件
在 中,主要用于操作芯片
, 如点亮 ,按键等。同时对于相应的芯片平台,需要自行编写底层
驱动,如 。本文主要涉及的 设备文件有:驱动框架文件
(,),底层硬件驱动文件(,)。在应用用 设
备时,需要在 中宏定义 !"#!。
一、PIN 设备驱动框架
在 中定义了一个静态的 设备对象 $!!!%!,其中
结构体类型 $!! 在 中定义为:
&'('&
$!!
)
$!*
$!!'*
+*
$!!!
)
!$,!*&&-./(
!$,!*
+*
$!!!$
)
!$,!*&&-./(
!$,!$*
+*
$!!
)
0'!10$!'2!3!2!3!
1*
0'!%10$!'2!3!2!3!
$1*
0'!10$!'2!3!1*
&'45$'&
+*
在 中主要实现了!!,!!%,!! 三个函数,同时将这三个
函数注册为!%! 设备的统一接口函数:
!!!0'2$!!
'2'$!1
)
!%!67!4!8!9$*
!%!-!7!"::*
!%!-!7!"::*
!%!7!"::*
!%!7!"::*
!%!7!"::*
!%!7!!*
!%!%7!!%*
!%!7!!*
!%!7*
!%!$!7$!*
&''&
!!0;!%!22
!4<=8<!>:?!4@1*
$*
+
最后,在 文件中将 !!,!!%,!! 三个函数加入到
的函数列表中,用于调试。
二、底层硬件驱动
在 中主要实现 $!! 中的三个接口函数:
A!!,A!!%,A!!:
$!!!A!!7
)
A!!2
A!!%2
A!!2
+*
同时注册 !%! 设备,其设备名称为“B, 设备硬件初始化:
A!%!!01
)
!!!0CC2;!A!!2!"::1*
$*
+
!D?4!<E0A!%!!1*&&A!%!!%3
!!3!01
三、PIN 设备初始化
在 中修改使用的 口数组:
&'#9A'&
$!-
)
-*
$A!*
!64('*
$A!*
+*
&':<4F424A24G24H*"#<D$F?'&
$!-./7
)
)288!?ID!4242!!+2&&
)288!?ID!4242!!A+2&&
)288!?ID!4242!!G+2&&
)A288!?ID!4242!!H+2&&3$
)G288!?ID!?2?2!!+2&&$3$
+*
JJJJ此外在 ! 的外设初始化函数中,需要先调用 !! 函数(尽管
该函数没有在底层实现),保证 设备对象类的设备引用计数值 (!$ 不为 ,这
样才可正常使用 !!,!!%,!! 函数操作
口:
$!!!!./7
)
)2!94<!""+2
)2!94<!""+2
)2!94<!""+2
)A2!94<!""+2
+*
$!!!$!$./7
)
)2!II+2&'5'&
)2!II+2&'5'&
)2!II+2&'5'&
)A2!II+2&'A53$'&
)2!:@+2&'G5K'&
)2!:@+2&'H5K'&
)2!:@+2&',5K'&
)A2!:@+2&'L53$K'&
+*
&'M3!94<!"!"::"2N6%6%N
!II$'&
$!!!N6!7)G2!94<!"+*
$!!!$N6!$7)G2!:@+*
$!!'!*
!!!!0'!!1
)
!70$!!
'1!!0!!1*
(0!77!"::1
)
!N(0C(O($PC2
!!1*
$!<#Q#*
+
&'R(2!"::'&
(0!!0;!F2!"::177!<S1
)
&''&
(07*T0U(0!1&U(0!./11*VV1
)
!!0;!F2!"::2
;!./1*
!!%0;!F2!"::2
;!$./2U(0!$./11*&&!II
+
&'N6'&
!!0;!F2!"::2;N6!1*
+
$*
+
!!!01
)
!!0CC1*
$*
+
!?!<E0!!!1*
RT thread 设备驱动组件之
USART
设备
JJJ本文以 A(G-- 平台介绍串口驱动,主要目的是:、 中如何编写中断处理程
序;、如何编写 设备驱动接口代码;A、了解串行设备的常见处理机制。所涉及的
主要源码文件有:驱动框架文件($,$),底层硬件驱动文件
(,)。应用串口设备驱动时,需要在 中宏定义
!"#!#<?:。
一、 RTT 的设备驱动程序概述
串口
串口设备的工作模式:
!E中断接收,读取到缓冲区中,然后提示到上层应用来把数据读
取走;
!E中断发送,发送到硬件 >> 中,发送完成后给出中断;
49?!E接收时由上层应用给出缓冲区,当收到数据后调用
-! 提示给上层应用;
49?!E数据链接在 !W$$ 中,触发 49? 把数据发送出去,
完成后调用 -! 返回给上层应用;
当字符设备接收到数据时,可以先行放在一个环形缓冲中,等待上层应
用来读取;
剩余51页未读,继续阅读
资源评论
CHINAoneBOY
- 粉丝: 4
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功