You are here: About the Hardware > Main Memory

Main Memory

The Main Memory is a block of 64 K bytes (16 K longs) that is accessible by all cogs as one of the mutually exclusive Shared Resources accessible through the Hub.  It consists of 32 KB of RAM and 32 KB of ROM.    

Propeller 1 Main Memory Map

Main Memory Map

 

Main RAM

The first half of Main Memory is all RAM.  This space is used for your program, data, variables and stack(s); otherwise known as your Propeller Application.

When a program is loaded into the chip, either from a host or from an external EEPROM, this entire memory space is written. The first 16 locations, $0000 – $000F, hold initialization data used by the Boot Loader & Spin Interpreter.  Your program’s executable code and data will begin at $0010 and extend for some number of longs. The area after your executable code, extending to $7FFF, is used as variable and stack space. Main RAM is byte, word, and long addressable. Words and longs are stored in little endian format with least significant byte first.

There are two values stored in the initialization area that might be of interest to your program: a long at $0000 contains the initial master clock frequency, in Hertz, and a byte following it at $0004 contains the initial value written into the CLK Register.  These two values can be read/written using their physical addresses (LONG[$0] and BYTE[$4]) and can be read by using their predefined names (CLKFREQ and CLKMODE).  If you change the CLK register without using the CLOCKSET command, you will also need to update these two locations so that objects which reference them will have current information.

Main ROM

The second half of Main Memory is all ROM.  This space is used for:

 

Propeller Help Version 1.1

Copyright © Parallax Inc.

5/13/2009