我使用的是海思的Hi3520DV300,SDK包里是有携带红外的驱动以及红外的测试程序,但是该代码不能直接使用,有几个坑,修改后测试正常。从官方提供的资料来看,该驱动以及测试程序都是比较旧的,应该做一些修改可以适用于海思的其它系列芯片。
官方提供的代码在SDK中的hisi-irda目录,文件结构如下:
biao@ubuntu:~/Hi3520DV300_SDK/Hi3521A_SDK_V1.0.3.1/drv/hisi-irda$ tree
.
├── hiir.c
├── hiir_codedef.h
├── hiir.h
├── Makefile
└── test
├── hiir_codedef.h
├── hiir.h
├── hiir_test.c
└── Makefile
1 directory, 8 files
biao@ubuntu:~/Hi3520DV300_SDK/Hi3521A_SDK_V1.0.3.1/drv/hisi-irda$
SDK编译的时候并不会编译该文件夹,所以需要我们自己手动编译,修改Makefile:
obj-m := hiir.o
KDIR := /home/biao/NVR_Hi3520/linux-3.10.y_Wifi_NandFlash/
PWD ?= $(shell pwd)
#make -C $(KDIR) M=$(PWD) modules
#make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- -C $(KDIR) M=$(PWD) modules
all:
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- -C $(KDIR) M=$(PWD) modules
clean:
rm -rf *.o
Makefile注意几点:
1.KDIR表示kernel 所在的路径,按自己的实际路径填写
2.需要指定arm的架构和交叉编译工具,官方给的make -C $(KDIR) M=$(PWD) modules 需要修改为make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- -C $(KDIR) M=$(PWD) modules 交叉编译工具按自己实际使用的来配置。
3.编译模块驱动,需要配置内核,使它支持模块驱动。配置后需要全编译内核。配置如下:选择Enable loadable module support 然后再选择里面的前4个选项。 |