PWM驱动是外文网站中获得的方法 用的是Debian 系统 内核版本为bone70
第一 :下载最新的开发板的内核源代码,可以到这里git://github.com/beagleboard/kernel.git下载,我用的bone70版本的。
第二: 下载编码器驱动和API http://download.csdn.net/detail/sfe1012/8635107下载
第三: 将编码器驱动文件 pwm_test.c 拷贝到 /home/Beaglebone/CanMake/kernel/kernel/drivers/pwm 目录下,并且将设备树文件/beaglebone-black-cpp-PWM-master/firmware/文件拷贝到/home/Beaglebone/CanMake/kernel/kernel/firmware/capes目录下。更改在/home/Beaglebone/CanMake/kernel/kernel/firmware/目录下的makefile,在179行添加如下:
sc_pwm_P8_13-00A0.dtbo \
sc_pwm_P8_19-00A0.dtbo \
sc_pwm_P8_34-00A0.dtbo \
sc_pwm_P8_36-00A0.dtbo \
sc_pwm_P8_45-00A0.dtbo \
sc_pwm_P8_46-00A0.dtbo \
sc_pwm_P9_14-00A0.dtbo \
sc_pwm_P9_16-00A0.dtbo \
sc_pwm_P9_21-00A0.dtbo \
sc_pwm_P9_22-00A0.dtbo \
sc_pwm_P9_28-00A0.dtbo \
sc_pwm_P9_29-00A0.dtbo \
sc_pwm_P9_31-00A0.dtbo \
sc_pwm_P9_42-00A0.dtbo \
第四:回到内核源码根目录/home/Beaglebone/CanMake/kernel/kernel 更改Makefile文件,指定交叉编译器:大约在197行附近,更改如下:
export KBUILD_BUILDHOST := $(SUBARCH)
ARCH ?= arm
CROSS_COMPILE ?= /home/Beaglebone/KERNEL/arm-2010.09/bin/arm-none-linux-gnueabi-
第五:回到内核源码根目录,命令make。
第六:在 /home/Beaglebone/CanMake/kernel/kernel/drivers/pwm目录下会生成 pwm_test.ko,在/home/Beaglebone/CanMake/kernel/kernel/firmware/ 会生成 sc_pwm_P8_13-00A0.dtbo等文件
第七:将pwm_test.ko拷贝到BBB的 /lib/modules/<kernel version>/kernel/drivers/pwm目录下
将sc_pwm_P8_13-00A0.dtbo等设备树文件拷贝到BBB的 /lib/firmware目录下
如果需要更加详细的过程可以参看下载的驱动源码包中的readme,下一小节中介绍PWM的应用