【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
linux内核起来的时候,不一定所有的内存都是分配给linux使用的。有的时候,我们是希望能够截留一部分内存的。为什么保留这部分内存呢?这里面可以有很多的用途。比如说,第一,如果希望给dma一块连续的区域,这样就可以把uncacheable的地址告诉dma,自己用cacheable的地址访问,两不耽误,也提高了处理速度。什么场景下使用呢?例如图像处理。第二,如果ddr里面有两个系统,一个是rtos,一个是linux,那么不可避免地也会出现我上面说的这个情况,各自都有独占内存的需要。第三,现在手机内存都很大,加上大部分人都喜欢拍照,那么可以把常用的一部分照片缓存到mem里面,就可以一下子拍摄很多张,通过技术合成出做好的那张。
1、通过boot参数的方法
实现保留内存的方法很多,一个常用的方法就是通过boot传参来实现的。还是以f1c200s为例,假设我们需要保留的内存是10M。这样本身f1c200s有64M,kernel可以使用的内存就剩下来了64M-10M=54M。因此,我们可以这么做,
setenv bootargs m