ARM11 6410--嵌入式Linux驱动程序开发实验

上传人:li45****605 文档编号:25677629 上传时间:2017-12-16 格式:PDF 页数:6 大小:283.04KB
返回 下载 相关 举报
ARM11 6410--嵌入式Linux驱动程序开发实验_第1页
第1页 / 共6页
ARM11 6410--嵌入式Linux驱动程序开发实验_第2页
第2页 / 共6页
ARM11 6410--嵌入式Linux驱动程序开发实验_第3页
第3页 / 共6页
ARM11 6410--嵌入式Linux驱动程序开发实验_第4页
第4页 / 共6页
ARM11 6410--嵌入式Linux驱动程序开发实验_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《ARM11 6410--嵌入式Linux驱动程序开发实验》由会员分享,可在线阅读,更多相关《ARM11 6410--嵌入式Linux驱动程序开发实验(6页珍藏版)》请在金锄头文库上搜索。

1、 咨询热线:0769-26980668 地址:东莞市莞太路 34 号创意产业园传 真:0769-26980673 网址: 嵌入式学院目录实验 2-2Linux驱动程序开发 . 2 咨询热线:0769-26980668 地址:东莞市莞太路 34 号创意产业园传 真:0769-26980673 网址: 嵌入式学院实验 2-2Linux 驱动程序开发 实验目的体验 Linux 驱动程序开发 实验要求1、 在 PC 机上编写 Linux 驱动代码,并交叉编译2、 将驱动模块拷贝到开发板加载验证 实验步骤1、 Linux 驱动模块开发(1) 、源码位置: 实验代码/2-2Linux 驱动程序/1_模块演

2、示(2) 、源码分析: dev.c:#include#include#includestaticintdev_init(void) printk(loaddriver!n); return0;staticvoiddev_exit(void) printk(unloaddriver!n);module_init(dev_init);/注册模块加载函数module_exit(dev_exit);/注册模块卸载函数MODULE_LICENSE(DualBSD/GPL);/许可权限说明 咨询热线:0769-26980668 地址:东莞市莞太路 34 号创意产业园传 真:0769-26980673 网址

3、: 嵌入式学院 Makefile:obj-m:=demo.o#使用demo.o建立模块demo.kodemo-objs:=dev.o #使用 dev.o(有多个的话列在这里)建立 demo.oKDIR:=/KDIR-X86#内 核源码目录PWD:=$(shellpwd)#当前目录defalt: $(MAKE)-C$(KDIR)M=$(PWD)modules #编译模块clean: $(MAKE)-C$(KDIR)M=$(PWD)clean #清空编译(3) 、编译模块:make生成驱动模块文件:demo.ko(4) 、在 PC 上加载模块:insmoddemo.ko 可以看到控制台上打印出模块

4、加载内核信息:loaddriver!如果是远程登录控制台(如 putty 登录),可以用 dmesg 显示该内核信息(5) 、卸载模块:rmmoddemo 可以看到控制台上打印出模块卸载内核信息:unloaddriver!2、 Linux 字符设备驱动开发(1) 、源码位置: 实验代码/2-2Linux 驱动程序/2_LED 控制演示(2) 、源码分析: dev.c#include#include#include#include#include#include 咨询热线:0769-26980668 地址:东莞市莞太路 34 号创意产业园传 真:0769-26980673 网址: 嵌入式学院#i

5、ncludeleds.h#defineLEDS_DEV_NAMEdevleds/led 灯设备文件#defineLEDS_DEV_MAJOR240/led灯主设备号/LED 灯写操作ssize_tleds_write(structfile*filep,constchar*buf,size_tcount,loff_t*f_pos) intret=0; unsignedchardata=0; ret=get_user(data,buf);/从应用层获得 LED 灯端口数据 if(ret#include#include#include/初始化 LED 灯voidinit_leds(void) uns

6、ignedinttmp=0; tmp=readl(S3C64XX_GPKCON);/读出原始值 tmp=(tmp/GPK4-7 配置为输 出 writel(tmp,S3C64XX_GPKCON);/设置更改值 /显示 LED 灯/data:LED 灯对应端口值,只取后 4 位,相应位为 0 则点亮 LEDvoidset_leds(unsignedchardata) unsignedinttmp=0; tmp=readl(S3C64XX_GPKDAT); /读出原始值 tmp/LED4-7对应端口清0 tmp|=(data /设置 LED4-7 对应端口值 咨询热线:0769-26980668

7、地址:东莞市莞太路 34 号创意产业园传 真:0769-26980673 网址: 嵌入式学院 writel(tmp,S3C64XX_GPKDAT); leds.h#ifndef_LED_PORT_H#define_LED_PORT_H/初始化 LED 灯voidinit_leds(void);/设置 LED 灯voidset_leds(unsignedchardata);#endif Makefileobj-m:=demo.o demo-objs:=dev.oleds.oKDIR:=/KDIR-ARM #内核源码目录PWD:=$(shellpwd)#当前目录defalt: $(MAKE)-C$(KDIR)M=$(PWD)modulesclean: $(MAKE)-C$(KDIR)M=$(PWD)clean(3) 、编译模块:make生成驱动模块文件:demo.ko(4)、关闭开发板上的 LED 流水灯服务:killallled-player(5) 、在开发板上加载模块:insmoddemo.ko,开发板 LED1-4 被初始化为全灭(6) 、创建设备文件:mknod/dev/devledsc24032(7) 、等待应用程序操作 LED 流水灯

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 期刊/会议论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号