如何开始写嵌入式linux设备驱动程序

2019-07-13 00:31发布

一,开发环境的建立:     1.准备内核:      将开发板上的linux内核解压到一个目录如linux2410    #make menuconfig 配置内核    #make  zImage  编译内核,如果不编译,是无法通过驱动程序的编译的,请记住。     2.准备交叉编译工具     将arm-linux编译工具解压到/usr/local/arm下,或者你自己的任何一个目录.       3. 编写设备驱动程序。         4.写编译的Makefile.,如下:(注意make行要用TAB键后退,这是makefile的常识)       ifeq ($(KERNELRELEASE),)   KERNELDIR:=  /media/data/data/2410/linux2410/                #这是你编译的内核目录.   PWD := $(shell pwd)       CROSS_COMPILE := /usr/local/arm/3.3.2/bin/arm-linux-   CC := $(CROSS_COMPILE)gcc   LD := $(CROSS_COMPILE)ld       modules:   $(MAKE) -C $(KERNELDIR) M=$(PWD) modules   modules_install:   $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install   clean:   rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions   .PHONY:   modules modules_install clean   else   obj-m := gpio.o   endif    ///////////////////   5. 编译内核.   6.加载内核   #insmod xxx.ko #mknod  "device name"  c 33 0  //后面的参数 c表示字符设备, 33表示主设备号,0表示次设备号。自己订吧.   7. 写测试程序测试驱动.     特别注意事项:        编译的环境一定要同板一致.可以用modinfo xxx.ko  查看相关的版本信息。否则insmod 时会说格式出错!!!!!!!!!!!!