LearnSite

Simple Library Core and EEPROM Usage

This document provides a convenient list of core and EEPROM usage with links to each Simple Library that either has functions that can run code in another core or write to and read from Propeller EEPROM. You can also find this information in any given Simple Library documentation page's Details section.

IMPORTANT: Only Simple Libraries that can use one or more additional cores and/or EEPROM addresses are listed here. For the full library list, see Simple Libraries Folder Index.
For the latest, most up-to-date libraries, check Update Your Learn Folder.

EEPROM Usage Conventions

Address 65535 building downward - Portions reserved for Simple Library calibration data. As new libraries are written that use EEPROM addresses for calibration data, they are assigned to progressively lower addresses.

Address 32768 building upward - Recommended for application data. To prevent application data from overwriting library data, check EEPROM usage of each library in the application. This information is listed below and can also be found in the Details section of each library's documentation.

Addresses 0..32767 - Overwritten every time a Spin or C program is loaded into EEPROM.

Library EEPROM Usage

abcalibrate360.h - 63418..65470
cal_activityBot writes to these addresses.

abcalibrate.h - 63418..65470
cal_activityBot writes to these addresses.

abdrive.h - 63418..65470
The first call to a drive_ function that sets speed or distance loads values that were set by abcalibrate.h from EEPROM to RAM. drive_trimSet also writes to this region.

abvolts.h - 63400..63416
da_setupScale writes to and da_useScale reads from EEPROM to main RAM for da_ voltage output functions to use.

Library Additional Core Usage

abvolts.h +1
A call to either da_volts or da_out will launch 1 additional core. Both functions rely on code running in that additional core. More calls to either function will not result in more cores being launched.

adcACpropab.h +1
A call to adc_start will launch 1 additional core that repeatedly updates ADC measurements.

dacctr.h +1
A call to dac_start will launch 1 additional core that repeatedly updates DAC outputs.

vgatext.h +1
A call to vgatext_open will launch 1 additional core that supplies signaling necessary for displaying text with a VGA display.

mstimer.h +1
A call to mstime_start will launch 1 additional core. Additional calls to mstime_start will only shut down and then re-launch the process, but will not take additional cores.

servo.h +1
Launches 1 core that controls up to 14 servos on the first call to servo_set, servo_angle or servo_speed. Additional calls to any of these functions will not launch more cores. Additional servos are controlled by supplying different I/O pins to the servo_angle/speed/set function pin arguments.

servo360.h +1
Launches 1 core that controls up to 4 servos. Use servo360_connect to initialize each servo.

servoAux.h +1
Same as servo.h, but allows controlling 14 more servos if all 14 slots in servo.h are already filled.

abcalibrate360.h +1 (self-terminating)
A call to cal_activityBot launches 1 additional core that self-terminate when the function is done.

abcalibrate.h +2 (self-terminating)
A call to cal_activityBot launches 2 additional cores that self-terminate when the function is done.

abdrive360.h +1 (including servo360.h)
This library itself does not launch any cogs, but it controls and monitors Feedback 360 servos through servo360.h, which does use one additional cog..

abdrive.h +1
A single additional core takes care of ActivityBot encoder monitoring, control system.

gps.h +1
A call to gps_open launches a serial communication process into another core.

rfidser.h +1
Each call to rfid_open launches a serial communication process into another core.

soundimpact.h +1
Each call to soundImpact_run launches a monitoring loop into another core so that it can track the number of sound impacts during a certain time. The sensor can also be monitored without launching another core by simply checking its output state. See ...Documents/SimpleIDE/Learn/Examples/Devices/Sensor/Sound Impact for examples of both approaches.

fdserial.h +1
Each call to fdserial_open launches an additional cog that can support an additional UART communication process.

simpletools.h +1 for certain functions.
Any of these functions, if called, will launch a process into another cog and leave it launched for set it/forget it processes.

wavplayer.h +2 while playing, +1 between tracks
wav_play uses 2 cores while a file is playing, 1 stays alive between tracks and after a call to wav_stop. wav_close recovers both cores.

wifi.h +1 with a single call to wifi_start
The wifi_start function (+ 1 cog full duplex serial communication) has to be called before other functions can be used to exchange with the Wi-Fi module. The wifi_stop function closes the serial connection and recovers the cog.


Typos, comments, or suggestions? Email: editor@parallax.com.