Как указать максимальный объем кучи, которую RTP может использовать в VxWorks? - PullRequest
2 голосов
/ 18 сентября 2008

Мы создаем процесс реального времени в VxWorks 6.x, и мы хотели бы ограничить объем памяти, который может быть выделен для кучи. Как мы это делаем?

Ответы [ 2 ]

3 голосов
/ 18 сентября 2008

При создании RTP с помощью rtpSpawn () вы можете указать переменную среды, которая управляет поведением кучи.
Существует 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:
<code>
   char * envp[] = {"HEAP_INITIAL_SIZE=0x20000", "HEAP_MAX_SIZE=0x100000", NULL);
   rtpSpawn ("myrtp.vxe", NULL, envp, 100, 0x10000, 0, 0);
</code>
0 голосов
/ 18 сентября 2008

Это можно сделать с помощью переменной среды HEAP_MAX_SIZE. Если он установлен, он ограничивает способность кучи увеличиваться за пределы этого размера. Однако это не ограничивает начальный размер кучи.

См. Стр. 31

...