What is the minimum heap required to run a simple HelloWorld publisher and subscriber on an INTEGRITY systems?
The minimum heap required to run a simple HelloWorld publisher and subscriber on an INTEGRITY system is about 11.3MB.
Problem
You run an example HelloWorld application and create_participant()
returns NULL. When you increase the logging verbosity, you see messages such as:
!create fast buffer pool buffer
or
no space on heap for structure
Solution
Increase the size of your heap. In your kernel project directory, under the src directory, open the INTEGRITY linker control file (e.g. mykernel_INTEGRITY.ld
), and uncomment the .heap
section. Change the size from 0x10000 to at least 0xad0000 (11.3MB). Then rebuild and reload your kernel.
For example, change this:
// intex will create a heap section unless the following section is uncommented... // .heap align(16) pad(0x10000) :
To this:
// intex will create a heap section unless the following section is uncommented... .heap align(16) pad(0xad0000) :