2
我們正在VxWorks 6.x中創建一個實時進程,並且我們想限制可以分配給堆的內存量。我們如何做到這一點?如何指定RTP在VxWorks中可以使用的最大堆數?
我們正在VxWorks 6.x中創建一個實時進程,並且我們想限制可以分配給堆的內存量。我們如何做到這一點?如何指定RTP在VxWorks中可以使用的最大堆數?
通過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環境變量來完成。如果它被設置,它會限制堆超出這個尺寸的能力。但是,它並不限制初始堆大小。
內核的初始堆大小爲4kb。 – Praneeth 2015-12-07 16:29:34