我试图在Google和此网站上搜索此主题,但找不到正确的答案。
我正在尝试在Linux引导过程中的设置的物理地址上分配一个大的连续内存块(几MB)。但是我仍然不清楚应该在哪里放置“ alloc_bootmem”函数。我在ARM处理器上运行Linux。
AFAIK,有一种方法可以创建一个包含对“ alloc_bootmem”的调用的驱动程序,然后将该驱动程序直接编译到内核中。
另一种方法是在Linux内核源代码中的某个位置添加“ alloc_bootmem”。
我认为存在的最后一种方法是创建一个设置文件,如boot.rc?(不确定),以便在引导过程中Linux将保留我要分配的内存。
如果有明确的方法或指向该问题的答案的链接,我将非常感谢大家的帮助。基本问题是“我应该在哪里调用“ alloc_bootmem”,以便它在启动期间可以正常工作?”
谢谢,Shahril
看一下:http : //lwn.net/Kernel/LDD3/第8章,它解释了早期引导阶段的内存分配。
有关启动内存分配的更多信息,可以在这里找到:
https://www.kernel.org/doc/gorman/html/understand/understand022.html
此功能用于在系统启动期间分配大内存块,它使用物理内存而不是虚拟内存。MMU启动并运行后,无法访问内存AFAIK
如果您正在寻找较大的连续内存分配,则可能应该使用其他分配器,看看:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句