免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2238 | 回复: 1
打印 上一主题 下一主题

如何在Linux设备驱动分配一块连续的大内存? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-10 11:17 |只看该作者 |倒序浏览
现在驱动程序需要几M的内存,最好是连续的空间方便操作
有没有简便的方法实现

论坛徽章:
0
2 [报告]
发表于 2007-03-12 16:19 |只看该作者
#define ORD  11

void *pages = (void *) __get_free_pages(GFP_KERNEL, ORD);
...
free_pages(pages, ORD);


ORD表示分配 (1<<ORD) 个页面,一般情况下ORD最大等于11,也就是2048个页面,也就是2K x 4K = 8M
当ORD>11的时候基本上不会分配成功。

如果需要更多的内存,只能修改启动参数,将高端的内存预留出来。需要使用的时候自己映射虚地址。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP