第一个hello world 驱动实验总结
来源:互联网 发布:文档下载软件 编辑:程序博客网 时间:2024/06/06 00:27
本次采用的是模块动态加载方式(驱动的加载方式存在两种:一是静态加载,而是动态加载,其中动态加载,是不需要对源代码中的char下的kconfig和Makefile文件修改的,在需要使用的时候直接使用insmod *.ko 即可,卸载的时候直接用rmmod *.ko即可)
我在我的工作目录下/root/workspace/下新建了一个hello目录,用于存储hello.c 和Makefile文件(注意在这里必须是Makefile,不可以是makefile,不然会出问题)
其中我的helloc.c文件的源代码如下:
#include<linux/init.h>
#inlcude<linux/module.h>
static int hello_init(void)
{
printk(KERN_ALERT" hello, World\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT"Goodbye , world\n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("Dual BSD/GPL");
Makefile的源代码:
obj-m := hello.oifeq ($(KERNELRELEASE),)
KERNELRELEASE ?= /root/workspace/linux_src/linux-2.6.12
PWD := $(shell pwd)
modules:
$(MAKE) -C $(KERNELRELEASE) M= /$(PWD) modules
endif
特别说明:
1.在ifeq 后面有一个空格,ifeq ($(KERNELRELEASE),)的意思是判断是否源代码的目录是否已经定义了,其中KERNELRELEASE 为linux源代码的目录。在我的电脑里面就是/root/workspace/linux_src/linux-2.6.12
2.?= 的目的是如果KERNERELEASE 如果已经定义过了,那么使用原来的,如果未定义,也就相当于 :=
3.PWD := $(shell pwd) 其中shell 为makefile中的函数,相当于"` `",将pwd执行的结果赋值给PWD
在以上条件已经准备好了之后,直接在/root/workspace/hello 目录下输入make,就会产生: hello.ko文件,将本文件拷贝到arm板子的某个文件夹下(我才用的是超级终端的文件传输功能,然后直接放在/tmp文件夹下),修改文件的权限 chmod 777 hello.ko ,然后直接insmod hello.ko 就会看到 hello, world,然后卸载rmmod hello.ko 就会看到Goodbye , world
- 第一个hello world 驱动实验总结
- 第一个设备驱动--Hello,world
- 驱动开发(第一个程序Hello World)
- 第一个模块,hello world 驱动编写
- Linux第一个驱动:Hello World
- 调用Uefi第一个驱动--hello world
- 第一个hello world驱动模块
- Linux驱动开发学习 第一个驱动程序 hello world
- ubuntu下我的第一个Hello World驱动
- 内核驱动的第一个程序——hello world
- linux设备驱动第一个模块hello,world
- OK6410学习之第一个驱动hello world
- 我的第一个Linux驱动hello world问题记录
- 第一个驱动程序---Hello world
- 第一个“Hello World”程序
- 第一个atlas "Hello world"
- 第一个dojo hello world
- 第一个dojo hello world
- 中文转换成UTF-8格式的java代码
- 话说“怀才不遇”-“秀”与“修”的学问
- 【转】opencv视频读取问题
- 数据库各种数据语言简拼和定义
- 计算机中数的表示
- 第一个hello world 驱动实验总结
- 全排列算法及实现
- 渐渐失去了曾经所拥有的,曾经的人,都渐渐离开了
- 得到上个月的今天的日期
- eclipse+WebService实例
- 数值微分算法(DDA画线算法)
- [备忘]VS008 未能正确加载包“Visual Web Developer HTML Source Editor Package”
- shell中for循环的使用 (ex22.sh)
- 利用javadoc制作API文档