樹莓派下的驅動開發

2021-07-26 19:29:20 字數 1464 閱讀 6844

程式設計師的入門經典當然就是hello world程式了,我的第乙個實驗就是要搭建實驗環境和工具鏈,通過交叉編譯的方式,在上位機完成hello world驅動程式的編寫,最終在板子上執行。

最終搭建的平台如下,後期的通訊可以直接使用串列埠,就不需要hdmi輸出了: 

我們在上位機編寫hello world的**:

[cpp]view plain

copy

#include 

#include 

#include 

module_license("dual bsd/gpl"

);  

static

inthello_init(

void

)    

static

void

hello_exit(

void

)    

module_init(hello_init);  

module_exit(hello_exit);  

相應的makefile**:

[plain]view plain

copy

ifneq ($(kernelrelease),)  

obj-m := hello.o  

else  

kdir := /home/hcx/work/boards/rpi/kernel/linux-rpi-3.6.y  

all:  

make -c $(kdir) m=$(pwd) modules arch=arm cross_compile=/home/hcx/work/boards/rpi/kernel/rpitools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi-  

clean:  

rm -f *.ko *.o *.mod.o *.mod.c *.symvers  modul*  

endif  

編譯完成後,我們通過u盤將hello.ko檔案拷貝到樹莓派中,然後通過insmod插入模組,結果如下:

樹莓派驅動框架

include file operations宣告 include module init module exit宣告 include init exit 巨集定義宣告 include class devise宣告 include copy from user 的標頭檔案 include 裝置號 d...

樹莓派驅動框架

檔名為pin4driver.c include file operations宣告 include module init module exit宣告 include init exit 巨集定義宣告 include class devise宣告 include copy from user 的標頭...

樹莓派字元驅動模板

include file operations宣告 include module init module exit宣告 include init exit巨集定義宣告 include class device宣告 include copy from user的標頭檔案 include 裝置號 dev...