Chinaunix首页 | 论坛 | 博客
  • 博客访问: 89791
  • 博文数量: 30
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 45
  • 用 户 组: 普通用户
  • 注册时间: 2014-06-12 15:01
个人简介

蒹霞苍苍白露为霜

文章分类
文章存档

2016年(1)

2015年(5)

2014年(24)

我的朋友

分类: 嵌入式

2014-06-27 09:08:04

 
1。驱动的编写,我们这里采用开发板生产商提供的LED驱动程序。
 
2。将程序添加到内核里面,LED驱动明显是字符驱动,所以将xxx.c复制到drivers/char目录下,并修改Makefile,在Makefile里添加一行
   obj-m += xxx.o
然后make modules,就可以看到在drivers/char/xxx.ko。
 
3. 将xxx.ko,拷贝至开发板上,具体目录为/lib/modules/'uname -a'
 
4. 将测试程序用交叉编译工具编译好,也拷贝至开发板,目录可以随便了。
 
5. 在开发板上建立设备文件,mknod /dev/xxxx c xxx(主设备号) 0
 
6. 加载模块,insmod xxx,注意,后缀.ko不写。或者可以用命令 insmod ./xxx.ko 《Linux Device Drivers 3》上是用后者的。
   我在这一步的时候出现了错误:
  insmod: can't read 'leds': No such file or directory
   主要问题就是我第三步没有做好,当时/lib/modules/下没有我的内核版本的目录,我就自己随便建里一个,结果就出错里,后来重新建立量以自己内核版本为文件夹名的目录,在加载就成功了。
 
7. 执行测试程序,刚刚开始,我这里也执行不来,修改权限还是不行,后来,在PC上修改里权限,在拷贝至开发板就可以运行了。
 
至此,驱动的开发流程大概就是这样了。以后我会慢慢开始深入到驱动程序的学习中去,也会将一些心得体会写出来。
阅读(2248) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~