阐述Linux驱动程序“Hello world!”

运维 系统运维
学习Linux,你可能会遇到嵌入式Linux问题,下面介绍第一个Linux驱动程序“Hello world!”,“Hello world”也许是第一个程序员写的程序吧,这里我也从写它开始,尽管它很简单,但它记录了学习Linux驱动程序的过程。

学习Linux,你可能会遇到嵌入式Linux问题,下面介绍第一个Linux驱动程序“Hello world!”,“Hello world”也许是第一个程序员写的程序吧,这里我也从写它开始,尽管它很简单,但它记录了学习Linux驱动程序的过程。

  1. /*hello_module.c*/  
  2. #include <linux/module.h> 
  3. #include <linux/init.h> 
  4. static int __init mini2440_hello_module_init(void)  
  5. {  
  6.     printk("Hello, Mini2440 module is installed !\n");  
  7.     return 0;  
  8. }  
  9. static void __exit mini2440_hello_module_cleanup(void)  
  10. {  
  11.     printk("Good-bye, Mini2440 module was removed!\n");  
  12. }  
  13. module_init(mini2440_hello_module_init);  
  14. module_exit(mini2440_hello_module_cleanup);  
  15. MODULE_LICENSE("GPL"); 

简单的分析:本程序中所用到的头文件“linux/module.h”和“linux/init.h”在所有的模块代码中都应该包含。MODULE_LICENSE("GPL");是内核模块所遵循的许可证。函数用__init来修饰,标明函数仅在初始化期间使用,当模块被装载后将该初始化函数扔掉,把函数占用的内存释放出来。初始化函数也可以不加__init修饰,只是占用一部分内存而已,并且该初始化函数还可以被其它函数调用。__exit修饰词标记该代码用于模块卸载,其它的任何时候调用该函数将出错。

模块的Makefile文件如下:

  1. obj-m:=hello_module.o  
  2. CURRENT_PATH:=$(shell pwd)  
  3. ARM_LINUX_KERNEL:=/opt/linux-2.6.29.1  
  4. all:  
  5. $(MAKE) -C $(ARM_LINUX_KERNEL) SUBDIRS=$(CURRENT_PATH) modules  
  6. clean:  
  7. rm -RF *.cmd *.o *.ko *.mod.c *.symvers *.order 

以上就是Linux驱动程序“Hello world!”的介绍。

【编辑推荐】

  1. 轻松掌握Linux关机命令
  2. 讲解Linux操作系统进入与退出系统方法
  3. 阐述Linux操作系统不足和发展趋势
  4. 关于Linux应用范围的介绍
  5. 让你深入了解Linux常用软件
责任编辑:小霞 来源: CSDN
相关推荐

2011-01-10 18:21:38

linux编写程序

2009-12-07 09:39:04

Linux设备驱动硬件通信

2013-10-31 16:29:10

Linux内核

2011-01-06 16:29:08

linuxtasklet机制

2021-12-06 07:47:36

Linux 驱动程序Linux 系统

2021-11-29 07:55:45

Linux GPIO Linux 系统

2009-07-06 18:17:46

JDBC驱动程序

2009-10-23 10:25:27

驱动程序技巧

2017-06-26 08:55:52

2009-12-10 10:25:12

Linux触摸屏驱动

2015-10-27 09:47:11

2018-11-26 08:45:29

Linux驱动程序命令

2009-11-30 14:51:00

Linux设置无线网卡

2011-08-16 16:32:13

Linux驱动程序

2012-03-06 10:22:00

程序

2023-09-26 07:44:52

JavaJVM

2009-12-17 09:56:26

Linux添加驱动模块

2016-12-14 14:41:20

Hello World程序运行机制

2016-12-13 14:12:25

程序机制

2011-06-08 17:59:43

Qt Creator
点赞
收藏

51CTO技术栈公众号