Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92951
  • 博文数量: 25
  • 博客积分: 300
  • 博客等级: 二等列兵
  • 技术积分: 185
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-05 13:42
文章分类
文章存档

2013年(1)

2012年(1)

2011年(23)

分类: 嵌入式

2011-12-01 22:00:33

今天编译了hello驱动程序虽然是很简单,但是初学犯下些问题。不知道怎么编写makefile文件。最后从国嵌的程序中借来了一个makefile文件具体如下

  1. ifneq ($(KERNELRELEASE),)
  2. obj-m := hello.o
  3. else
  4. KDIR := /home/graduate/linux-2.6.32.2 //实验板上的内核的目录,需要已经编译通过,不然没有用
  5. all:
  6. make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-linux-
  7. clean:
  8. rm -f *.ko *.o *.mod.o *.mod.c *.symvers modul*
  9. endif
hello.c
  1. #include <linux/module.h>
  2. #include <linux/types.h>
  3. #include <linux/fs.h>
  4. #include <linux/errno.h>
  5. #include <linux/mm.h>
  6. #include <linux/sched.h>
  7. #include <linux/init.h>
  8. #include <linux/cdev.h>
  9. #include <asm/io.h>
  10. #include <asm/system.h>
  11. #include <asm/uaccess.h>

  12. MODULE_LICENSE("Dual BSD/GPL");
  13. static int hello_init(void)
  14. {
  15. printk(KERN_ALERT "Hello, world\n");
  16. return 0;
  17. }
  18. static void hello_exit(void)
  19. {
  20. printk(KERN_ALERT"Goodbye, cruel world\n");
  21. }
  22. module_init(hello_init);
  23. module_exit(hello_exit);
make后通过NFS服务吧hello.ko发送到开发板上
运行
以下是运行的结果
[root@ZHANG-MINI2440=W]#insmod hello.ko
Hello, world
[root@ZHANG-MINI2440=W]#rmmod hello.ko
Goodbye, cruel world
[root@ZHANG-MINI2440=W]#






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