編寫第一個linux驅動
阿新 • • 發佈:2020-09-17
一、準備工作
1、《linux裝置驅動程式》的hello world模組示例(Page22)
2、linux核心原始碼目錄:BSP/A7/kernel/A7-linux-src-4.14/
3、交叉編譯器目錄:/usr/local/arm/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin
4、驅動原始碼目錄:BSP/fdriver/first_drv
二、驅動原始碼
first_drv.c
#include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void) { printk(KERN_ALERT "Hello, world!\n"); return 0; } static void hello_exit(void) { printk(KERN_ALERT "Goodby, cruel world\n"); } module_init(hello_init); module_exit(hello_exit);
三、Makefile
ARCH:=arm PLATFORM?=A7 CROSS_COMPILE:=arm-linux-gnueabihf- export ARCH CROSS_COMPILE PWD=$(shell pwd) KERNEL_SRC=$(PWD)/../../A7/kernel/A7-linux-src-4.14 obj-m:=first_drv.o all: $(MAKE) -C $(KERNEL_SRC) M=$(PWD) modules clean: rm -rf *.ko rm -rf *.o