资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
LEDR1801K实验八LED驱动实验实验目的掌握字符设备驱动程序编写的框架:掌握设备驱动相关的知识;实验原理参考人课课件字符设备驱动程序框架.PPTK 硬件电路LED1LED1 OVDD SYS 3 3VLED2LED2 OVDD_SYS_3 3VLEDR1851KLED3LED3 OVDD SYS 3.3VLEDR19O1KLED4LED4OVDD_SYS_3.3VR1911KLED1LED2LED3LED4Xispl 2C0SCL/CA M_G PIO10/G P M 4_0Xispl2C0SDA/CAM_GPIO11/GPM4_1CA M_GP 1012/CAM_SP 11 _CLK/G P M 4_2 CA M_G PIO13ZCA M_S PI1_n SS/G P M 4_3数据手册6.2.3.113 GPM4CONBase Address; 0x1100_0000Address = Base Address + 0x02E0f Reset Value = 0x0000 0000GPM4CON315:12RW0x0 = Input0x1 = Output0x2 = CAMJ2C1_SDA0x3 = CAM GPIC5130x4 = CAM_SPI1_nSS0x5 to OxE = Reserved0xF = EXTJNT1230x00GPM4CON211:8RW0x0 = Input0x1 = Output0x2 = CAM I2C1 SCL0x3 = CAM GPIO120x4 = CAM_SPI1_CLK0x5 to OxE = ReservedOxF = EXTJNT1220x00GPM4CON17:4RW0x0 = Input0x1 = Output0x2 = CAM I2C0 SDAOx3 = CAM-GPIO110x4 to OxE = ReservedOxF = EXTNT42 0x00NameBitTypoDescriptionReset ValueGPM4CON0【3:0RW0x0 = Input0x1 = Output0x2 = CAM I2C0 SCL0x3 = CAMZGPIO100x4 to OxE = ReservedOxF = EXTJNT12(00x006.2.3.114 GPM4DAT Base Address: 0x1100_0000 Address = Base Address 0x02E4. Reset Value = 0x00NameBitTypoDescriptionRosot ValueGPM4DAT7:07:0RWXWhen you configure port as input port then corresponding bit is pin state. When configuring as output port then pin state should be same as corresp on ding bit. When the port is configured as functional pin. the undefined value will be read.0x00实验内容(1)应用层调用open方法打开设备文件时,四个led灯亮;close关闭文件时,灯灭。(2)应用层read时,读出LED亮灭的状态(一个字节);(3)应用层write时,写入一个字节,字节的低4位控制灯的亮灭:如:二进制位:11110111111110111111110111111110表示第LED4灯亮 表示第LED3灯亮 表示第LED2灯亮 表示第LED!灯亮(4)驱动程序要能够自动建立设备文件(5)要求自己编写一个应用层的测试程序,在应用测试程序中,实现流水灯。配置编译内核General setup “(-xxxx) Local version - append to kernel release版本中加入自己的姓名拼音 样include #include 样include 挣include 样include 样include 样include 样include 挣include 編写硬件底层操作函数实现open,release,write,read创建一个 file_operations 结构static iiit iiiit XXX_init(void)硬件寄存器映射申请设备号初始化cdev结构注册cdev结构创建 struct class创建device设备文件return 0;static void _exit XXX_exit(void)/雄销cdev结构注销设备号取消地址映射删除创建的device设备文件删除注册的classmodule_iiiit();module_iiiit();MODULE_LICENSE(.);要求手写实验报告(下周小课交)在实验报告中画出驱动层与应用层层次结构框图,源程序抄写在实验报告中!Leddrv:存include vlinux/modiile.h 存include 存include 存include 存include 存include 存include 存include 存include volatile unsigned long *vir_GPM4CON;volatile unsigned long *vir_GPM4DAT;static mt led_div_open(stmct inode *iinstnict file *fp)fi*vu_GPM4CON &=Oxffif;*vu_GPM4CON |= Oxllll;*vii_GPM4DAT &=Oxf;prmtk(Hall led on!iT);return 0:static mt led_div_release(stnict inode *iiKStmct file *fp)fi*vuGPM4DAT |= Oxf;prmtk(Hall ledreturn 0:static unsigned char data=O:static ssize_t led_div_wnte(stmct file *fp5 const char _user *buf. size_t len. lofflt *offset) ficopy_fiom_user(&data、buf. 1);printk(,data=%dtl,data);*vii_GPM4DAT = data;return 1;static ssize_t led_div_read(sti-uct file *fp, char _user *buf, size_t len, lofLt * offset)if(data&(l0) data = 1;else if(data&(11) data = 2; else if(data&(12) data = 3; else if(data&(13) data = 4; copy_to_user(buf, &data, 1);return 1;static stmct file_operations led_div_fops= owner=THIS MODULE. open = led_drv_open、.release = led_div_release, write = led_div_wfite, read = led_drv_read,; static stmct cdev *led_div-cdev;stmct class *led_class;static dev_t dev=0;static mt _uiit led_drv_imt(void)ivir_GPM4CON= ioremap(0x 110002e0. 8);vir GPM4DAT= vir GPM4CON+1;alloc_cliidev_region(&dev, 0、1, Hled_deviceH);led_div_cdev = cdev_alloc();cdev_init(led_drv_cck; &hd_drv_fops);led div cdev-ownei-THIS MODULE:zcdev_add(led_div_cdev,dev, 1);led_NULL. dev. NULL/,led_dev_fileH);/,7dev/led_dev_filenreturn 0;static void _exit led_dnr_exit(void)fidevice_destiov(led_class? dev); class_destioy(led_class); cdev_del(led_div_cdev);umegister_cludev_region(dev, 1); iouimiap(vir_GPM4CON); module_init(led_div_init); module_exit(led_div_exit); MODULE_LICENSE(”GPLJ;Ledtest:存include 存include 存include 存include 存include mt mam(int argc, chai *aigv)imt i=0;unsigned char val = 1;unsigned char led_state=0;mt fd = open(,7dev/led_dev_file,O_RDVrR); sleep ;fbr(i=0;i12;i-H-)wiite(fd, &val,l);s
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号