实验21-LinuxLED驱动实验.doc

实验21-LinuxLED驱动实验.doc

ID:48681493

大小:67.50 KB

页数:8页

时间:2020-02-27

实验21-LinuxLED驱动实验.doc_第1页
实验21-LinuxLED驱动实验.doc_第2页
实验21-LinuxLED驱动实验.doc_第3页
实验21-LinuxLED驱动实验.doc_第4页
实验21-LinuxLED驱动实验.doc_第5页
资源描述:

《实验21-LinuxLED驱动实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、LinuxLED设备驱动实验1.1实验目的(1)了解LED原理及其与S3C2410的接口电路设计(2)了解S3C2410芯片的I/O端口配置方法(3)通过S3C2410芯片的GPF4端口控制Super-ARM主板上D1的亮灭(4)掌握LED驱动的编写及测试过程,进而熟悉开发简单字符设备驱动的方法1.2实验原理(1)LED接口电路由于单只LED管的工作电压低(大约在1.5~2V),个别需达到4V,同时工作电流仅为1~5mA,因此可以用CPU的通用输入输出管脚(GPIO)直接控制LED的亮灭。LED的接口电路如下图1所示:图1LED接口电路1.3实验任务本实验的最终目

2、的是实现Super-ARM平台上的LED驱动。包含以下几个任务:(1)编写LED设备驱动程序,驱动程序中手动定义设备名称及主设备号,这个设备号必须是系统尚未使用的设备号,笔者这里暂用212,你也可以尝试用别的数字。当然最好的方法是动态分配设备号,如果使用这种方法,在/dev目录下为LED设备建立设备节点的时候,需要先从/proc/devices文件中获取该设备的主设备号。在驱动程序中还要实现与LED相应的I/O配置,以及读写设备的接口函数等。(2)将驱动编译成模块,并实现模块的加载及卸载。(3)编写驱动的测试程序,在程序中实现打开LED设备,控制LED设备一亮一灭

3、,关闭LED设备等。1.4实验步骤⑴编写led.c文件①建立led目录:#mkdir/gdut2410/led②进入led目录,在该目录下建立两个子目录driver和test,前者用来存放驱动程序,后者用来存放驱动测试程序:#cd/gdut2410/led#mkdirdrivertest③进入驱动程序目录,建立设备驱动文件led.c:cddrivergeditled.cLED驱动程序如代码清单5-1所示:代码清单5-1LED驱动程序led.c//*****************************头文件****************************

4、****#include#include#include#include#include#include#include#include#include#include#include#include//***

5、********************定义设备结构体及相关宏**********************#defineDEVICE_NAME"led"//定义设备名#defineDEVICE_MAJOR212//手动定义LED设备的主设备号为212staticintled_major=DEVICE_MAJOR;#defineLED1S3C2410_GPF4//定义LED1对应S3C2410的GPF4端口#defineLED1_OUTPS3C2410_GPF4_OUTP#defineLED_ON0//给端口低电平(0)时,LED亮#defineLED_OFF1//

6、给端口高电平(1)时,LED灭//定义LED设备结构体structs3c2410_led_dev{structcdevcdev;//LED设备对应一个字符设备结构体intstatus;//LED状态标识,0代表灭,1代表亮};staticstructs3c2410_led_devdev;//*****************************函数声明********************************voids3c2410_led_InitIO(void);//初始化IO端口的函数//*****************************函数

7、定义********************************/*==================================================================s3c2410_led_InitIO()描述:初始化IO端口参数:无返回值:无==================================================================*/voids3c2410_led_InitIO(void){inti;//配置LED对应的端口为输出s3c2410_gpio_cfgpin(LED1,LE

8、D1_OU

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。