嵌入式 字符驱动总结makefile和gcc编译驱动
2013-12-02 14:55
155 查看
1.linux 驱动总结
linux驱动接口里的_init _exit 其实就是宏。
linux驱动程序不能用GCC直接编译生成模块。要用makefile
如下:
ifneq($(KERNELRELEASE),)
obj-m:=hello.o
else
KERNELDIR:=lib/modules/$(shell uname -r)/build
PWD:=$(pwd)
all:
$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) modules
endif
clean:
rm -f *.o *.ko
linux驱动接口里的_init _exit 其实就是宏。
linux驱动程序不能用GCC直接编译生成模块。要用makefile
如下:
ifneq($(KERNELRELEASE),)
obj-m:=hello.o
else
KERNELDIR:=lib/modules/$(shell uname -r)/build
PWD:=$(pwd)
all:
$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) modules
endif
clean:
rm -f *.o *.ko
驱动程序为什么只能通过makefile来编译? ifneq ($(KERNELRELEASE),) obj-m := hello.o else KERNELDIR ?= /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) modules: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules endif clean: rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions 差不多都是这个样子。 我想知道如何直接用gcc来编译驱动程序生成.ko文件的命令。
模块编译可以用命令行 gcc -o hello.o _D__KERNEL__ -DMODULE -I /home/user/linux/include -c hello.c ld -r -o hello.ko hello.o
相关文章推荐
- 嵌入式 GCC 64位程序的makefile条件编译心得——32位版与64位版、debug版与release版(兼容MinGW、TDM-GCC)
- 嵌入式Linux驱动学习之路(二十一)字符设备驱动程序总结和块设备驱动程序的引入
- 11-S3C2440驱动学习(七)嵌入式linux-字符设备的另一种写法及RTC驱动程序分析和字符设备驱动框架总结
- GCC编译选项与GDB调试学习总结
- linux字符设备驱动开发模板及Makefile
- Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D
- ldd3 源码编译之 scullc 字符设备驱动 错误解决办法
- Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D
- 【总结】嵌入式linux内核中Makefile、Kconfig、.config的关系及增加开机Hello World【转】
- 编译Linux2.6.x内核驱动的makefile文件
- 冒泡排序和选择排序自我总结:GCC 编译报错:程序中有游离的 \357’ \273’ \277
- gcc编译选项和makefile资源汇总
- 【Linux学习】Ubuntu下嵌入式交叉编译环境arm-linux-gcc搭建
- gcc常用编译选项总结
- mysql与其他文件编译 Makefile总结
- 编译Linux2.6.x内核驱动的makefile文件
- [转载收藏] 在VC中利用Makefile工程编译DDK驱动
- 嵌入式 驱动最简单的编译方式
- ldd3 源码编译之 scullc 字符设备驱动
- gcc编译多个函数文件的Makefile写法(单链表的插入和合并等功能)