首先声明,这个应用是来自外国网站,自己也是依葫芦画瓢得来。
如果想要获得原来的版本可以关注网站:https://github.com/Teknoman117/beaglebot
但是本人做的编译内核的办法方案与其不同,我是应用下载好的内核源代码来编译驱动。
过程如下:
第一 :下载最新的开发板的内核源代码,可以到这里git://github.com/beagleboard/kernel.git下载。
第二: 下载编码器驱动和API github.com/Teknoman117/beaglebot 下载
第三: 将编码器驱动文件 tieqep.c 拷贝到 /home/Beaglebone/CanMake/kernel/kernel/drivers/misc 目录下,并且将设备树文件/home/Beaglebone/beaglebot-master/encoders/dts/bone_eqep0.dts 。。。。等4个设备树文件拷贝到/home/Beaglebone/CanMake/kernel/kernel/firmware/capes目录下。更改在/home/Beaglebone/CanMake/kernel/kernel/firmware/目录下的makefile,在140行# all the generic capes
fw-shipped-$(CONFIG_CAPE_BEAGLEBONE) += \附近添加设备生成文件名称,如下:
bone_eqep0.dtbo\
bone_eqep1.dtbo\
bone_eqep2.dtbo\
bone_eqep2b.dtbo
第四:在/home/Beaglebone/CanMake/kernel/kernel/drivers/misc 更改Kconfig这个文件,并在最后面添加如下:
config TIEQEP
tristate "EQEP Hardware quadrature encoder controller"
depends on SOC_AM33XX
select PWM_TIPWMSS
help
Driver support for the EQEP quadrature encoder controller AM33XX
TI SOC
To compile this driver as a module, choose M here: the module
will be called tieqep.
第五:在/home/Beaglebone/CanMake/kernel/kernel/drivers/misc 更改Makefile这个文件,并在倒数第二行后面添加如下:obj-$(CONFIG_TIEQEP) += tieqep.o
第六:回到内核源码根目录/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 menuconfig -》Device Drivers ->Misc devices -> EQEP Hardware quadrature encoder controller 。按一下空格后变成 <M> EQEP Hardware quadrature encoder controller 。模块化的生成方法。退出,保存。
第八:回到内核源码根目录,命令make。
第九:在 /home/Beaglebone/CanMake/kernel/kernel/drivers/misc 目录下会生成tieqep.ko,在/home/Beaglebone/CanMake/kernel/kernel/firmware/ 会生成bone_eqep2b.dtbo
第九:将tieqep.ko拷贝到BBB的 /lib/modules/<kernel version>/kernel/drivers/misc目录下
将bone_eqep2b.dtbo等设备树文件拷贝到BBB的 /lib/firmware目录下