阅读:1942回复:13
gcc的编译警告!!
我使用gcc -c hello.c语句编译最简单的内核模块hello.c是出现如下警告信息: ignoring changed section attributes for .modinfo
其中hello.c是最简单的内核模块,其内容如下 #define MODULE #include <linux/module.h> int init_module(void){printk(\"<1>hello world \\n\");return 0;} void cleanup_module(void){printk(\"<1>goodbye the cruel world\\n\");} 我的gcc 的版本为2.96 我的内核的版本为2.2.16-22 不知问题出自何方,请各位驱友指点!!!thinks |
|
|
沙发#
发布于:2003-06-14 11:13
现在想来应该是的吧,我问过你之后回去想了一下,猜想可能是的吧!
你说的有道理,只是一时我还不是很明白,在看看内存管理那块吧! |
|
板凳#
发布于:2003-06-13 15:02
我问别人什么是LDD的书,没人理我,后来我想LDD是不是就是Linux Device Device,现在什么都简称,其实是故弄玄虚。
我还没做这方面的驱动,但是我的理解是:我们使用inb,inw,outb这类的函数从设备的地址空间读取数据到内核空间,然后使用put_user,get_user这类的函数进行内核空间和用户空间的交互。 这是我的理解不知对不对? |
|
|
地板#
发布于:2003-06-13 14:51
fwzfwz1:
问个问题不要笑我啊,你说的ldd的书到底是那本书啊,记得你以前也是问过,现在我还是不知道,能否说一下详细的书名啊,是不是很好,我也想买一本! 还有一个问题是关于几个空间的问题,如果我把将要用到的空间分类,应该有:内核空间、用户空间、和设备空间,那么这三个空间数据的交换是个什么机制,你弄明白了吗? 如果,是读,那么驱动程序使用kmacco()申请一段内核空间,在应用程序申请一段用户空间,那么怎样和设备空间打交道啊? 多交流! |
|
地下室#
发布于:2003-06-13 13:39
zhangyanping:
我开始时还真是未包含#include<linux/uaccess.h>。现在可以传输数据了。只不过不是将板子的数据传输到用户空间,而是在驱动中直接将数据写到用户空间。我的板子的串行ROM被人弄丢了,现在还无法用板子做试验。 我编了一个读PCI的BAR0的小程序,LDD的书上说使用pci_enable_device启动指定的设备。但是我找不着含有pci_enable_device的头文件,不知是我的内核版本低,根本就不支持该函数还是它包含在别的头文件中。 |
|
|
5楼#
发布于:2003-06-12 20:22
对了,你有没有include <asm/uaccess.h>啊?
|
|
6楼#
发布于:2003-06-12 20:21
这样啊!
我还没有作到传输数据,而是显示通过应用程序调用我的驱动程序找到我的板卡,你的驱动可以找到你的板卡吗? 对于put_user()的理解,它主要是传送单个数据单位,而且在调用之前必须先调用access_ok,来验证一下你的用户空间指针是否可用。你也可以直接用__put_user(),呵呵,书上说的。。。 我可能明天才开始传送简单数据,希望问题不是很多,多交流! |
|
7楼#
发布于:2003-06-12 16:06
这个警告没有解决,但不影响大局。现在有一个问题是:我自己编写了一个简单的驱动,用来向用户空间写数据,但是insmod时提示put_user是未定义标识符;使用copy_to_user 也是提示未定义标识符。不知为何!很苦恼呀!
|
|
|
8楼#
发布于:2003-06-12 11:01
fwzfwz1,这个问题解决了没有啊,我的差不多都通过了,现在问题出在使用应用程序操作驱动程序的问题上!
|
|
9楼#
发布于:2003-06-11 14:23
用户被禁言,该主题自动屏蔽! |
|
10楼#
发布于:2003-06-11 08:44
指一下源代码的位置 什么叫源代码的位置? |
|
|
11楼#
发布于:2003-06-11 00:32
指一下源代码的位置
|
|
12楼#
发布于:2003-06-09 17:16
that\'s no problem for GCC 3.2. 这样做还是不行呀!!还是有警告出现。 |
|
|
13楼#
发布于:2003-06-09 12:24
that\'s no problem for GCC 3.2.
for your gcc 2.96, you may try: gcc -c hello.c -D__KERNEL__ |
|