QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3062|回复: 38

驱动编进内核错误指教

[复制链接]
发表于 2005-4-12 16:30:36 | 显示全部楼层 |阅读模式
我在把驱动编译内核的时候出现了问题,请各位大侠帮忙:
我已经把驱动放进/linux/drivers/char中,而且修改了mem.c和makefile文件和config.in文件,但编译内核到make romfs的时候出现了错误,如下:
mem.c697:undefined reference to 'adc_init'
mem.c697:relocation truncated to fit: R_ARM_PC24 adc_init
make[1]:***[linux] Error 1

请大侠帮忙!
发表于 2005-4-12 18:43:58 | 显示全部楼层
以往的帖子详细的说了步骤地,你去查一下先:)
回复

使用道具 举报

 楼主| 发表于 2005-4-12 21:22:43 | 显示全部楼层
收到
回复

使用道具 举报

 楼主| 发表于 2005-4-12 21:29:57 | 显示全部楼层
版主,你要出一个帖子来教会我们怎么在论坛里快速准确的定位找到我们想找的帖子。
刚才找了一下,只有几个。内容有不对。
回复

使用道具 举报

发表于 2005-4-12 21:46:55 | 显示全部楼层
两种方法解决,一是在你的mem.c中把你的驱动程序文件当头文件加进去就行了,另一种方法其他帖子里有,偶提过,其他人也提过。
回复

使用道具 举报

 楼主| 发表于 2005-4-12 22:20:05 | 显示全部楼层
可以说具体一点吗?谢谢。还有可以提供一下资料参考一下吗?谢谢
回复

使用道具 举报

发表于 2005-4-12 23:34:00 | 显示全部楼层
在你的mem.c前面加一句:
#include "×.c",×.c为你的驱动。
回复

使用道具 举报

 楼主| 发表于 2005-4-13 10:31:51 | 显示全部楼层
这样就行了吗?而makefile和config.in不用加了吗?这样在编译内核的时候就不用选择support for adcdriver了吗?
回复

使用道具 举报

发表于 2005-4-13 11:04:52 | 显示全部楼层
当然要改。
回复

使用道具 举报

 楼主| 发表于 2005-4-13 11:11:21 | 显示全部楼层
把men.c改成刚才这样#include "×.c",×.c为你的驱动。 而其他的呢?
makefile
加入ifeq ($(CONFIG_ADCDRIVER),y)
L_OBJS +=adcdriver.o
endif
而config.in加入
bool 'support for adcdriver' CONFIG_ADCDRIVER
吗?
回复

使用道具 举报

发表于 2005-4-13 11:13:13 | 显示全部楼层
当然是其他照旧。
回复

使用道具 举报

 楼主| 发表于 2005-4-13 11:20:59 | 显示全部楼层
还有,请教一下:怎样在应用程序中用到驱动程序的函数呢?
一些书是这样的:fd=open("./adc",O_RDONLY);然后就用read()这样的。
不知道这样对不对呢?
还有大侠,可以给我你的其他联系方式吗?
例如QQ等。我的qq是20636778
回复

使用道具 举报

发表于 2005-4-13 11:31:12 | 显示全部楼层
设备操作和文件操作一样,详细的要看内核了,你按书上就行了。
回复

使用道具 举报

 楼主| 发表于 2005-4-13 17:00:55 | 显示全部楼层
大侠!内核已经编译出来了,已经烧到了目标板中了,但不知道怎么看才知道我的驱动程序已经加入了内核中?在文件/proc/devices中并没有我们想看到的那个设备。
还有如果应用程序都已经编进内核了(其实也不知道是不是编进内核了),却在bin文件夹里没有这个应用程序。
现在我们应该怎么办呢?
回复

使用道具 举报

发表于 2005-4-13 17:13:52 | 显示全部楼层
/proc/devices中没有就是没加进去,
驱动的初始化函数你是怎么写的?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-5-29 00:41 , Processed in 0.115291 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表