QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5310|回复: 0

DMA 空间分配

[复制链接]
发表于 2012-12-8 16:10:30 | 显示全部楼层 |阅读模式
调试一个摄像头驱动程序,系统是linux_2.6.12,其中需要分配一块DMA。
原来的实例程序是
#define YUV_IMG_BUF_SIZE PAGE_ALIGN(0x96000 + PAGE_SIZE - 1)
camif_yuv_buf = dma_alloc_coherent(NULL, YUV_IMG_BUF_SIZE, &camif_yuv_buf_dma,GFP_KERNEL);

现在我想申请大一点的空间:
#define YUV_IMG_BUF_SIZE PAGE_ALIGN(0x280000 + PAGE_SIZE - 1)

调试时系统提示:coherent allocation too big...
分析内核,发现/arch/arm/mm/consistent.c文件中
#define CONSISTENT_BASE        (0xffc00000)
#define CONSISTENT_END        (0xffe00000)
限制了分配空间。

后打算修改这个宏,但调试又出现了bug:
kernel BUG at arch/arm/mm/consistent.c :221!

刚开始搞,实在不知怎么办
现在请教有过内核或驱动开发经验的各位高人,如何才能增大申请的DMA空间?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-1 22:41 , Processed in 0.036978 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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