albert的嵌入式专栏

嵌入式是不错的一个领域!

wince内存分配

 
目前我们的实验板可用RAM空间是64M,在WINCE系统中对应的虚拟地址从0x8c000000-0x8ff00000,我们来仔细分析一下这些宝贵的RAM资源是如何使用的。
首先,系统启动时会自动将映象NK.nb0拷贝到RAM中再运行,目前我们分配给NK.nb0的空间是29M0x8c200000-0x8cdf0000)。无形当中就有29M不能使用,但是如果在定制系统的时候根据需求,以“开发出满足最大的开发需要的最小的系统内核”为标准,还是可以充分利用有限的RAM资源的。
其次,有一部分RAM可以由用户自己定义为某个外设的缓存区,比如:displaydbugcamera等等,这部分空间虽然可以修改,但是个人认为这部分空间没必要做修改。主要原因有二:一方面是这部分空间一般都是约定俗成的(比较了一个不同版本的BSP后得出来的),修改后有可能影响系统的稳定性;另一方面这部分空间是从0x8c0000000x8c200000,大概就是2M空间,修改后可能可以省出1M空间。所以考虑到系统的稳定性,和节省的空间并不是很大,对这部分就不做修改。
配置系统内存和程序内存
config.bib文件的config区有这样一个参数。
FSRAMPERCENT
  格式:FSRAMPERCENT = number
默认值为0x80808080。指定为文件系统分配的内存的百分比。number分为四个字节,由十六进制表示。
byte0的值(单位为4KB)表示在第一个2MB中,其中每1MB包含的4KB的整数倍。
byte1的值(单位为4KB)表示在第二个2MB中,其中每1MB包含的4KB的整数倍。
byte2的值(单位为4KB)表示在第三个2MB中,其中每1MB包含的4KB的整数倍。
byte3的值(单位为4KB)表示在剩下的内存中,每1MB包含的4KB的整数倍。
计算一下默认值0x80808080表示的百分比:0x80*4K/1M = 0.5,因为每个字节都等于0.5,所以整个占用的百分比是50%
默认情况下,系统内存和文件内存是各占50%的,所以程序内存就只有17M了。为了提高系统的性能可以通过修改FSRAMPERCENT值的大小,来获得较大的程序内存空间。
 
阅读更多
文章标签: wince byte c
个人分类: WinCE开发
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭