明远智睿技术论坛

标题: 请教140p的板子移植git上找来的温湿度模块DHT22的驱动 [打印本页]

作者: 钟宇泉    时间: 2019-12-25 17:49
标题: 请教140p的板子移植git上找来的温湿度模块DHT22的驱动
新手请教在网上看到,驱动编译分两种静态和动态两种
静态就是编译进内核,修改板子的镜像文件
动态编译
我的理解是生成.ko文件,把该文件用TFTP传入板子,然后使用insmod这个命令手动加载驱动
.ko文件我想在虚拟机上直接make生成
但是提示错误了:

myzr@u14045:~/DHT22-master$ make
make C=2 -C /lib/modules/4.4.0-139-generic/build/ M=/home/myzr/DHT22-master modules
make[1]: 正在进入目录 `/usr/src/linux-headers-4.4.0-139-generic'
  CHECK   /home/myzr/DHT22-master/dht22.c
/bin/sh: sparse: 未找到命令
make[2]: *** [/home/myzr/DHT22-master/dht22.o] 错误 127
make[1]: *** [_module_/home/myzr/DHT22-master] 错误 2
make[1]:正在离开目录 `/usr/src/linux-headers-4.4.0-139-generic'
make: *** [all] 错误 2
myzr@u14045:~/DHT22-master$

一下是makefile的内容
obj-m+=dht22_driver.o
dht22_driver-objs+=dht22.o dht22_sm.o

all:
        make C=2 -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) modules

clean:
        make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) clean


附上源码

求指导该如何才能加载这个驱动到板子上,项目中有需要用到这个温湿度模块







作者: 钟宇泉    时间: 2019-12-26 12:20
群里大牛指导
用 find . -name arm-poky-linux-gnueabi-gcc 看下你安装到哪了
正确路径:
obj-m = dht22.o

KPATH=~/myzr/my-work/02_source/linux-4.1.15
PWD=$(shell pwd)
CROSS=~/myzr/my-work/03_toolchain/fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0/ sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi
CC=$(CROSS)gcc

all: dht22 poll

dht22: dht22.c dht22.h
        make -C $(KPATH) ARCH=arm CROSS_COMPILE=$(CROSS) SUBDIRS=$(PWD) modules

poll: poll.c
        $(CC) -o poll -lc -lpthread poll.c

clean:
        rm -rf *.o *.ko .*cmd .tmp* core *.i *.mod.c modules.* Module.* poll

作者: 软件01    时间: 2019-12-28 13:49
钟宇泉 发表于 2019-12-26 12:20
群里大牛指导
用 find . -name arm-poky-linux-gnueabi-gcc 看下你安装到哪了
正确路径:

$CC -v可以看到交叉编译工具的路径和版本,详细设置一下就行
作者: 钟宇泉    时间: 2019-12-28 18:09
软件01 发表于 2019-12-28 13:49
$CC -v可以看到交叉编译工具的路径和版本,详细设置一下就行

感谢指导
作者: 钟宇泉    时间: 2020-5-15 16:49
过来填个坑,已经移植成功了。详细过程我都写到这里了
https://blog.csdn.net/teaczjf/article/details/106143585




欢迎光临 明远智睿技术论坛 (http://bbs.myzr.com.cn/) Powered by Discuz! X3.2