mkdir /opt/embedsky/modules
cd modules
mkdir hello
cd hello
vim hello.c
hello 驅動**如下:
hello.c qudong
duopin:2012.4.22
********************/
#include
#include
module_license("gpl");
static int hello_init(void)
static void hello_exit(void)
module_init(hello_init);
module_exit(hello_exit);
vi makefile // notice :一定要是m大寫
kerneldir=/opt/embedsky/linux-2.6.30.4 ####point kernel tree
pwd:=$(shell pwd)
installdir=$(pwd)
cc=arm-linux-gcc
obj-m := hello.o # the same to hello.c name
modules:
$(make) -c $(kerneldir) m=$(pwd) modules # use tab
clean:
rm -rf *.o *.ko *.mod.c *.markers *.order *.symvers # use tab
.phony:modules clean
生成.ko
make
cp hello.ko /opt/embedsky/nfs_root/lib/
//boot system 8
cd /lib/
insmod hello.ko
rmmod hello //.ko
cat /proc/devices
ls /dev/
ps:要寫和硬體的驅動,可能還是加上標頭檔案 eg:tq2440_adc.h
linux 驅動程式的hello world
首先,確保linux核心原始碼放在 usr src下面,安裝好編譯器,接下來就是程式設計師 具體如下 ifndef kernel define kernel endif ifndef module define module endif include include module license ...
編寫乙個helloworld的驅動程式到核心
編寫乙個最簡單的驅動程式到核心,有兩種方式 1.直接修改makefile 2.修改kconfig,提供可選選單 有如下的helloworld.c的驅動程式 include include static int helloworld init void static void helloworld e...
linux 驅動程式 高階字元驅動程式
ioctl方法 驅動程式的原型實現 int ioctl struct inode inode,struct file filp,unsigned int cmd,unsigned long arg ioctl 命令選擇 位段結構 number direction ioc read ioc write...