Chinaunix首页 | 论坛 | 博客
  • 博客访问: 303500
  • 博文数量: 27
  • 博客积分: 422
  • 博客等级: 一等列兵
  • 技术积分: 2839
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-17 12:16
文章分类

全部博文(27)

文章存档

2013年(13)

2012年(14)

分类: LINUX

2013-01-18 22:17:46

本次OK6410开发板按键驱动在Linux 3.6.7的移植基本上拷贝这篇文章:http://blog.sina.com.cn/s/articlelist_1667912967_6_1.html(基于platform的ok6410按键中断实验),所以照这篇文章做就可以了。

1.创建基于平台的按键设备模块:

   在arch/arm/mach-s3c64xx/目录下新建plat_btn_device.c,修改Makefile,末尾加入obj-m +=plat_btn_device.o

2.创建基于平台的按键驱动模块:

   在drivers/char/目录下新建plat_btn_driver.c,加入#include  ,修改Makefile,末尾加入obj-m +=plat_btn_driver.o

3.创建基于平台的按键应用程序:

   在/test/目录下新建app-button.c,加入修改Makefile,如下:

CROSS=arm-linux-
CFLAGS= -Wall -O2
all: buttons

buttons: buttons.c
$(CROSS)gcc $(CFLAGS) $< -o $@

clean:
@rm -rf buttons *.o

4.编译:

  4.1编译生成按键设备和驱动模块

       在linux 3.6.7主目录下执行make modules后就会在arch/arm/mach-s3c64xx/目录下生成plat_btn_device.ko模块,在drivers/char/目录下生成plat_btn_driver.ko模块

  4.2编译生成按键应用程序
      在linux 3.6.7/test/目录下执行make,生成buttons可执行文件

5.把plat_btn_device.ko和plat_btn_driver.ko拷贝到yaffs2根文件系统目录(我的叫做mdev)下lib/modules/目录下

   把buttons可执行文件拷贝到mdev下usr/bin/目录下

   在mdev/dev/目录下创建设备节点mknode buttons c 232 0

6.生成新的yaffs2根文件下载到开发板,开机进入系统后加载按键设备模块和按键驱动模块再运行buttons程序,就可以看到结果了。如下


[root@STANzxd /]# cd lib/modules/
[root@STANzxd modules]# ls
3.6.7 ok6410_buttons.ko
dev-ok6410-buttons.ko ok6410_leds.ko
[root@STANzxd modules]# insmod dev-ok6410-buttons.ko
[root@STANzxd modules]# insmod ok6410_buttons.ko
ok6410 Buttons Driver
probe:ok6410_buttons_probe
[root@STANzxd modules]# buttons
buttons_value: 1
buttons_value: 2
buttons_value: 2
buttons_value: 3
buttons_value: 4
buttons_value: 4
buttons_value: 4
buttons_value: 4
buttons_value: 5
buttons_value: 6

   


阅读(4551) | 评论(0) | 转发(6) |
给主人留下些什么吧!~~