文章目录
我们日常使用kmalloc最多只能动态申请到4M(2^order)内存,当我们需要大块连续内存时,就需要借助CMA申请大内存。
CMA内存分配器在系统中具有多种重要作用,包括分配连续大块内存、提高内存利用率、提供灵活性与可迁移性、优化性能以及简化内存管理等。这些作用共同使得CMA成为嵌入式系统和其他需要连续内存支持的应用场景中的重要技术之一。
前文讲了Linux几种内存预留方法,本文主要讲解Linux里预留CMA内存方法和使用。
一、预留一段内存常用方法
1.1 设备树定义reserve memory
如果需要保留一段内存,在reserved-memory
节点下定义新节点。
reserved-memory {
#address-cells = <0x2>;
#size-cells = <0x2>;
...
fb_reserved0: framebuffer{
reg = <0x1 0x10000000 0x0 0x8000000>;