近期做的工作主要有两个,一是将dvsdk_4中的video_copy项目移植到自己的板子上,在参考资料极其匮乏的情况下,本人继续发扬艰苦奋斗的作风和打不死的小强精神,终于将Omap3530中的DSP成功地跑起来了。另一个工作就是开始学习Linux设备驱动开发,为编写新设备的驱动做准备。dvsdk的内容比较庞杂,所做的工作还在整理之中,后面我会发出来。Linux设备驱动开发的资料很多,我只是将我自己所做的工作记录下来,供和我一样的初学者参考,以后再回来查看的时候也方便一些。文中不足之处还请大家多多指点~~
Linux内核源码有一半是由驱动组成的,驱动在Linux完成其强大功能中扮演重要角色,而在开发自己的系统时,有时会发现无法再现成代码中找到支持特定的硬件的驱动,这是就需要自己动手,才能“丰衣足食”了。^_^
自古以来,学习一门新编程语言的第一步就是写一个打印“hello world”的程序,在本文中,我们将用同样的方式学习编写一个简单的内核模块设备驱动程序。
首先,新建一个hello.c文件:
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "Hello, world\n");
}