OEMV API Specifications

Exact numbers for the amount of system resources such as CPU, RAM and ROM available to the API are not possible. Any program written with the API runs concurrently, and shares resources with, the receiver's main software. Since it is not possible to allocate dedicated resources to the API, the amounts available will vary depending on a number of factors such as the receiver type (OEMV1, OEMV2, OEMV3, etc), the software model, and the firmware release (newer firmware releases have historically used more CPU, RAM and NVM). The following serves as a guideline when developing your application. CPU Usage The busier the receiver is at calculating a position, logging data, etc, the less CPU is available for user applications. The percent CPU idle time located in the message header is the most important indicator when determining how much CPU is available for your application. This figure shows how much on a percentage basis the CPU is sleeping, waiting to do something. Percent CPU idle time will vary somewhat during normal receiver operation and it is important that your application not use all remaining idle time. Sustained periods of low idle time (less than 10% for several seconds) may affect normal receiver operation and periods of 0% idle time longer than 30 seconds will cause the receiver to reset. Note that monitoring idle time is especially important when using any of the three high priority user application tasks available since these tasks run at a higher priority than many of the receiver's internal tasks. RAM Space As a general guideline, it is safe to assume 4 MB of RAM available. The amount of RAM an application is using can be found by logging APPLICATIONSTATUS when the app is running. See the API User Guide for more information on the APPLICATIONSTATUS log. ROM Space As a general guideline, it is safe to assume 1 MB of ROM space available. You can conserve ROM by specifying the compress option when using the datablk utility, reducing the amount of space required to store your application. See the API User Guide for more information on the the datablk utility. Note that it is necessary to manually examine the output S-record file (.hex file) to determine the exact amount of ROM space your application will use.