編寫helloword驅動,直接上**
makefile
ifeq ($(kernelrelease),)
kerneldir := /home/carl/work/raspi/linux-rpi
-4.9
.y pwd := $(shell pwd)
modules:
$(make) -c $(kerneldir) m=$(pwd) modules arch=arm cross_compile=/home/carl/work/raspi/tools/arm-bcm2708/gcc-linaro
-arm
-linux
-gnueabihf
-raspbian
-x64/bin/arm-linux
-gnueabihf
-modules_install:
$(make) -c $(kerneldir) m=$(pwd) modules_install arch=arm cross_compile=/home/carl/work/raspi/tools/arm-bcm2708/gcc-linaro
-arm
-linux
-gnueabihf
-raspbian
-x64/bin/arm-linux
-gnueabihf
-clean:
rm -rf
*.o *~core.depend .
*.cmd *
.mod.c *
.tmp_version *
.order
*.symvers
else
obj-m
:= hello.o
endif
hello.c
#include
#include
//初始化函式
static
int __init hello_init(void)
//退出函式
static
void __exit hello_exit(void)
//對模組函式進行繫結
module_init(hello_init);
module_exit(hello_exit);
//許可協議及作者資訊、可以不設定
module_license("dual bsd/gpl");
module_author("carl.yang");
編譯完成後會生成hello.ko檔案
將此檔案拷貝到樹莓派
安裝:sudo insmod hello.ko
解除安裝:sudo rmmod hello
檢視核心列印資訊:dmesg
第乙個linux驅動程式,hello
前面已經把學習linux的開發環境搭建好了,現在逐步開始學習開發過程。先從核心驅動開始,寫乙個網上已經被寫爛的實列程式。先把它編譯好,放進linux系統執行,看看是什麼樣子。建立資料夾hello,在資料夾下面建立檔案hello.c 如下 include include include static ...
第乙個驅動程式
原始出處 驅動程式的開發,向來是令人感到有所畏懼的,可能很多人像我一樣,看了很久卻還是一頭霧水,不得其門而入。我們今天就通過乙個簡單的程式來使讀者學會初步的驅動程式開發。在開發windows驅動程式之前,我們需要首先安裝ddk,win98及其以前的vxd我們就不要再考慮了 windows 2000 ...
第乙個驅動程式
從今天開始就要進入核心驅動程式部分了,在這一節裡就通過第乙個驅動程式來介紹一下核心驅動模組的編寫框架。static intfirst drv open struct inode inode,struct file file static ssize t first drv write struct ...