主题 : 【求助】关于I/O空间和内存空间 复制链接 | 浏览器收藏 | 打印
畅游在知识的海洋...
级别: 论坛版主
UID: 33629
精华: 4
发帖: 554
金钱: 3075 两
威望: 615 点
综合积分: 1188 分
注册时间: 2010-12-03
最后登录: 2015-09-22
楼主  发表于: 2011-11-04 21:57

 【求助】关于I/O空间和内存空间

我们知道,在linux中要用资源前需要申请资源。
这就得提到两个概念:1.内存空间,2.I/O空间
不是所有处理器都有这两个空间,比如X86有内存空间和I/O空间,而arm只有内存空间。
当我们需要申请内存空间的资源时需要使用request_mem_region()这个函数,而
申请IO空间的资源时使用request_region()。问题来了,今天在阅读cs8900的驱动代码(cs89x0.c)时,
在探测函数cs89x0_probe1()中发现如下代码:
if (!request_region(ioaddr & ~3, NETCARD_IO_EXTENT, DRV_NAME))
{
        printk(KERN_ERR "%s: request_region(0x%x, 0x%x) failed\n",
                DRV_NAME, ioaddr, NETCARD_IO_EXTENT);
        retval = -EBUSY;
        goto out1;
}
为什么该驱动是调用request_region来申请资源,arm处理器没有I/O空间啊,google未遂,希望老大们能提醒提醒,谢谢
[ 此帖被wuweidong在2012-04-05 12:23重新编辑 ]
好好学习,天天鲁管
畅游在知识的海洋...
级别: 论坛版主
UID: 33629
精华: 4
发帖: 554
金钱: 3075 两
威望: 615 点
综合积分: 1188 分
注册时间: 2010-12-03
最后登录: 2015-09-22
1楼  发表于: 2011-11-04 22:04
跪求大牛
好好学习,天天鲁管
畅游在知识的海洋...
级别: 论坛版主
UID: 33629
精华: 4
发帖: 554
金钱: 3075 两
威望: 615 点
综合积分: 1188 分
注册时间: 2010-12-03
最后登录: 2015-09-22
2楼  发表于: 2011-11-04 22:09
dm9000的驱动用的是request_mem_region(),难道cs8900的驱动不是给arm用的。。。。
好好学习,天天鲁管
畅游在知识的海洋...
级别: 论坛版主
UID: 33629
精华: 4
发帖: 554
金钱: 3075 两
威望: 615 点
综合积分: 1188 分
注册时间: 2010-12-03
最后登录: 2015-09-22
3楼  发表于: 2011-11-05 09:39
貌似cs8900自己也有内存空间和IO空间
好好学习,天天鲁管