打印
[STM32F1]

【转】有关字符设备驱动程序

[复制链接]
669|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
风萧寒|  楼主 | 2016-12-25 12:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

一、      实验目的和要求

1.    学习嵌入式Linux的GPIO的使用方式;

2.    学习嵌入式Linux的Arduino接口库;

3.    学习使用面包板搭简单的外部电路;

4.    学习Linux设备驱动程序的开发过程;

5.    学习在内核中访问外设寄存器,操作外设的方法


二、      实验器材

1.    Linux实验板卡一块;

2.    5V/1A电源一个;

3.    microUSB线一根;

4.    面包板一块;

5.    MAX7219驱动的8*8 LED矩阵一个;

6.    面包线若干;

7.    MacOS一台;

8.    USE-TTL串口线一根

9.    以太网线一根;

10.  交叉编译软件


三、      实验内容和原理

1.设计方法,画连接示意图;

2.在面包板上连线,完成外部电路;

3.编写C/C++程序,采用Arduino-ish库或虚拟文件系统访问GPIO,实现在矩阵上显示文字或图案;

4.编写字符设备驱动程序,直接访问GPIO控制寄存器,能将write()送来的单个字符在矩阵上显示出来


四、      实验过程和数据记录

1.    以下是实物连接图

GPIO端口使用bcm编号的23,24,25,对应WiringPi的4,5,6号端口,分别连接到驱动板的DIN,CS,CLK


2.    使用Wiring访问GPIO

在用户级别程序访问GPIO,使用Wiring是个很好的选择。

从以下两个图片来看,显示效果良好



3.    Linux字符设备驱动

Linux内核模块能更方便快捷地调整内核功能,而无需重新编译内核花费巨大的时间。通过编写字符设备驱动模块,能够使得系统通过/dev以字符设备的方式来写数据到8*8的led矩阵中显示。


编译后,生成后缀为ko的内核模块,使用insmod插入内核模块时,可以看到内核日志中带有初始化的信息提示,在使用open()打开设备文件后,可以看到其打开的信息提示。而通过write()往设备文件中写入数据时,亦可以看到内核日志中接收到字符的提示。








发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

134

帖子

3

粉丝