如何指定Rx在VxWorks中可以使用的最大堆数量?
时间:2020-03-06 14:19:54 来源:igfitidea点击:
我们正在VxWorks 6.x中创建一个实时进程,我们想限制可以分配给堆的内存量。我们如何做到这一点?
解决方案
通过rtpSpawn()创建RTP时,可以指定一个环境变量来控制堆的行为。
有3个环境变量:
HEAP_INITIAL_SIZE - How much heap to allocate initially (defaults to 64K) HEAP_MAX_SIZE - Maximum heap to allocate (defaults to no limit) HEAP_INCR_SIZE - memory increment when adding to RTP heap (defaults to 1 virtual page) The following code shows how to use the environment variables: char * envp[] = {"HEAP_INITIAL_SIZE=0x20000", "HEAP_MAX_SIZE=0x100000", NULL); rtpSpawn ("myrtp.vxe", NULL, envp, 100, 0x10000, 0, 0);
这可以通过使用HEAP_MAX_SIZE环境变量来完成。如果设置,它将限制堆增长到超过该大小的能力。但是,它不限制初始堆大小。
请参阅第31页