这板有4G内存。我是嵌入式开发的新手,正在尝试保留 3G CMA,我首先尝试使用内核引导参数,但它不起作用,只能保留到 ~1700M。
然后决定更改设备树并添加:
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
reserved: buffer@0 {
compatible = "shared-dma-pool";
reusable;
size = <0 0x80000000>;
linux,cma-default;
};
};
它可以分配 2048M,但如果我分配得更高,它就无法工作,并且没有任何错误消息,只是说“已分配 256M”。
但是如果我执行 `free -m` 它表明我有 4G 内存,我可以用 python 分配它:
x = bytearray(3024*1024*1000)
我之前在 xilinx forum 中问过这个问题,发现 this 问题说增加内存地址但是当我这样做时它没有正确加载内核。
我的设备树文件: