如何指定RTP可以在VxWorks中使用的最大堆量?

时间:2008-09-18 03:57:45

标签: vxworks

我们正在VxWorks 6.x中创建一个实时进程,我们希望限制可以分配给堆的内存量。我们怎么做?

2 个答案:

答案 0 :(得分:3)

通过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);

答案 1 :(得分:0)

这可以通过使用HEAP_MAX_SIZE环境变量来完成。如果已设置,则会限制堆超出该大小的能力。但是,它不会限制初始堆大小。

See page 31