JamaicaVM -- User Documentation: The Virtual Machine for Real-time and Embedded Systems | ||
---|---|---|
Prev | Appendix A. Targets | Next |
INTEGRITY from GreenHills Software is a secure, royalty-free Real-Time Operating System intended for use in embedded systems that require maximum reliability. The JamaicaVM is available for INTEGRITY and the following target hardware:
PowerPC
The INTEGRITY-Version of Jamaica is installed like described in section "Installation". Additionally the following steps have to be done:
In the Jamaica configuration file /usr/local/jamaica/etc/jamaica.conf the path of the BSP installation has to be adjusted.
Check the include path property include.integrity-* in /usr/local/jamaica/etc/jamaica.conf. It must be set to the INTEGRITY include path. By default, this is /usr/local/integrity/INTEGRITY-include.
Check the property XCFLAGS.integrity-* for appropriate values. By default, the compiler generates code to run on the INTEGRITY PPC simulator (isimppc). The value of option -bspname may be changed accordingly to your BSP.
Check the property XLDFLAGS.integrity-* for appropriate values. By default, the linker generates an INTEGRITY kernel of your application, i.e. it can be run directly using isimppc. This is defined through :integrity_option=kernel. Changing the option to :integrity_option=dynamic would create a dynamic downloadable module of the application. To run such a module, start isimppc with a provided kernel: isimppc /usr/local/integrity/sim800/kernel. Then download the module using MULTI. See the MULTI and INTEGRITY documentation on how to connect to your target and load modules.
The files <INTEGRITY>/<BSP>/default.ld and <INTEGRITY>/INTEGRITY.ld are the default linker directives files used when building an INTEGRITY application. Alternate linker directives files can be specified by the user by adding the option -T <file> to the XLDFLAGS.integrity-* in the Jamaica configuration file. For example, some INTEGRITY installations include the file flash.ld, an alternate to default.ld that is appropriate for a flash build. The default linker directives files have comments which describe the various sections in the map.
It may be necessary for the user to create a new linker directives file. For example, the size of the run-time heap for the AddressSpace may need to be increased or decreased. Create a new linker directives file by first copying the default.ld (for KernelSpace) or INTEGRITY.ld (for virtual AddressSpaces) to a new file; e.g., myapplication.ld. Starting with the default file as a template ensures that necessary sections will not be mistakenly left out in the new file. For example, a .heap section is needed in order for the KernelSpace to support C/C++ dynamic memory allocation (e.g., malloc and new). If the default .heap is too small, it can be made larger in myapplication.ld. The KernelSpace default heap size is 64K bytes, as specified by the following default.ld directive:
.heap align(16) pad(0x10000) NOCLEAR : |
.heap align(16) pad(0x400000) NOCLEAR : |
.ramlimit 0x800000 |
The devguide manual provides detailed instructions on how to build INTEGRITY applications.