欢迎来到天天文库
浏览记录
ID:48681493
大小:67.50 KB
页数:8页
时间:2020-02-27
《实验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
此文档下载收益归作者所有