新手上路,LDD3学习之旅开始,以下内容纯属笔记,若有错误,望见谅!
一.运行于PC(Unbuntu)上的模块编译
1.什么是“模块”?
可以在系统运行时加入到内核中的代码。故:模块包括但不限于设备驱动程序。
2.如何写一个模块?
1). .c文件 2).实现module_init, module_exit
3.LDD3中makefile编写规则(照搬):
ifneq($(KERNELRELEASE)) //如果能访问到内核树,PC系统的内核树
obj-m := hello.o
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build //PC系统内核树
PWD := $(shell pwd) //预编译的模块源代码所在目录
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
运行于arm平台下的模块编译
1.LDD3中讲述的模块编