当前位置: 技术问答>linux和unix
uClinux系统内核2.6,使用GFP_KERNEL | GFP_DMA分配内存失败!
来源: 互联网 发布时间:2015-11-24
本文导语: unsigned char *p; p = kmalloc(512,GFP_KERNEL | GFP_DMA); 分配内存失败, 但是,只用GFP_KERNEL就可以分配成功 请问这是什么问题? | 不好意思,不能解决LZ的意思,不过还是顺便说几句: uClinux好像...
unsigned char *p;
p = kmalloc(512,GFP_KERNEL | GFP_DMA);
分配内存失败,
但是,只用GFP_KERNEL就可以分配成功
请问这是什么问题?
p = kmalloc(512,GFP_KERNEL | GFP_DMA);
分配内存失败,
但是,只用GFP_KERNEL就可以分配成功
请问这是什么问题?
|
不好意思,不能解决LZ的意思,不过还是顺便说几句:
uClinux好像不支持虚拟地址的概念吧?直接用GFP_KERNEL参数,其结果与GFP_DMA相差不大,只不过GFP_DMA区获得的地址是低于16M的,不过在嵌入式芯片领域,DMA区并没有限定在16M地址之内,唯一要注意的应该是关于cache的处理,DMA是不能带cache的
uClinux好像不支持虚拟地址的概念吧?直接用GFP_KERNEL参数,其结果与GFP_DMA相差不大,只不过GFP_DMA区获得的地址是低于16M的,不过在嵌入式芯片领域,DMA区并没有限定在16M地址之内,唯一要注意的应该是关于cache的处理,DMA是不能带cache的