Skip to content

Random Access Memory

Kevin Ramharak edited this page Nov 3, 2019 · 3 revisions

From a storage point of view, the Cubot's RAM spaces are organized as identical arrays of 16-bit words. The CPU has access to its full address space: 65536 (0x10000) words of memory (total 128KB). By default, the stack base is at address 0xFFFF and grows towards lower addresses.

The memory represented in a table would look like this:

Address Description
0x0000 - 0x004F Memory used by the LiDAR GET_PATH hardware interrupt behavior
0x0050 The execution cost. Is set at the end of the tick. source
0x0051:0x0052 The number of instructions executed. Is set at the end of the tick. source
0x0053 - 0x00FF Not used, but probably not smart to use since it might be reserved for future use cases
0x0100 - 0x01FF Memory used by the LiDAR GET_MAP hardware interrupt behavior
0x0200 - 0x0200 + PROGRAM_SIZE The instructions that make up your program
... Not assigned to anything
0x.... - 0xFFFF The start of your stack, pointed to by the SP Register at the start of your program. This grows towards 0x0000