+ -
当前位置:首页 → 问答吧 → uClinux下模块化驱动的编译问题

uClinux下模块化驱动的编译问题

时间:2005-12-06

来源:互联网

编了个模块化的驱动程序(44b0开发板的),但是在主机上编译不通过,错误信息是/usr/local>....../arm-elf/include/asm/arch/hardware.h:147 # error "configuration error:no cpu definde"于是我到编译工具里去看,发现我的/usr/local......../arm-elf/include/asm/arch中的arch是链接到atmel处理器的,而我的处理器samsung目录却是空的。
没办法我只好把我的uclinux源码包的uclinux/linux-2.4/include/asm-armnommu/arch-s3c44b0x下的文件拷到/usr/local>....../arm-elf/include/asm/arch-samsung下,再把我的源程序里的硬件相关的头文件改成include 然后再编译,出现一大堆信息和几个警告:warning:conflicting types for built-in function "memset" "memcpy" "memcmp" 但是生成了.o文件.
通过ftp下到开发板,下载过程中ftp有警告:warning:9 bare linefeeds received in ASCII mode .File may not have transferred correctly。执行insmod命令时有以下提示 insmod:QM_MODULES: Function not implemented。我的insmod命令应该没问题吧?我可是特意在编译的时候选中了的。

我觉得我的问题现在不是程序的问题而是没有转换成正确的。o格式。(至于程序有没有错误应该是加载运行后才能看出来吧)以下是我的makefile:
INCLUDE=/usr/src/uclinux/linux-2.4.x/include
EXTRA_CFLAGS=-D__KERNEL__-DMODULE -I$(INCLDE) -O2 -Wall -o
mydriver.mydriver.c
arm-elf-linux-gcc -elf2flt $(CFLAGS) $(EXTRA_CFLAGS) -c mydriver.c -o mydriver.o
我觉得我的包含的头文件有问题,宿主机上有3个重要的头文件 1 redhat源码包含的头文件,目录是/usr/src/linux-2.4/include 2 编译工具带的头文件,目录是/usr/local/arm-elf/include
3 uclinux源码包带的头文件,目录是/usr/src/uclinux/linux-2.4.x/include 我不能确定是上面的哪一个路径应包含进我的驱动程序的makefile中
那位大侠能从我上面的步骤看出我的错误所在了麽?不知我的问题描述清楚没有。这个问题困扰我好久了,对于高手来说,这个问题简直就是小菜一碟,但对于我们这些新手来说,却太打击我们的积极性了,非常非常盼望你们的指导。再次感谢!      

作者: pengyifu   发布时间: 2005-12-06

你的ftp把你的模块变成了文本文件      

作者: 魔芋   发布时间: 2005-12-06

请教魔芋大侠,那我该如何是好啊?你是说我的编译没有问题(包含的头文件也没问题麽)?那我该怎么办才好啊?我一点概念都没有啊?:confused:      

作者: pengyifu   发布时间: 2005-12-06

各位老师,小弟在魔芋老师的提示下,ftp下载的时候加了bin参数,现在下载的时候不报错了,但在开发板端执行insmod命令时还是错误
     insmod:QM_MODULE:Function not  implement
fault  pid  55
请各位献计献策啊!学生感激不尽!:confused:      

作者: pengyifu   发布时间: 2005-12-07

EXTRA_CFLAGS=-D__KERNEL__-DMODULE -I$(INCLDE) -O2 -Wall -o
mydriver.mydriver.c


$(INCLDE)笔误?      

作者: 魔芋   发布时间: 2005-12-07

-elf2flt 好象没有必要 :w      

作者: 魔芋   发布时间: 2005-12-07

回魔芋老师,上面的是我的笔误。我把elf2flt选项去除了,问题依然没得到解决。下面是我的截图:lt2flt      

作者: pengyifu   发布时间: 2005-12-07

截图在附件,好难搞啊:(      

作者: pengyifu   发布时间: 2005-12-07

=-D__KERNEL__-DMODULE

这2个生效了么

怎么看起来没用上      

作者: 魔芋   发布时间: 2005-12-07

高手就是高手,你一眼就能看出来,其实是这样的,我的源程序头文件已包含这两个选项了,如果在makefile再包含的话,调试信息会提醒重复了,所以我把makefile中的这两项去掉了。      

作者: pengyifu   发布时间: 2005-12-07

热门下载

更多