/slots: Last updated 2022-01-20 20:37:29 by Conrad Wood

Slots in Flashs and Ram


Sections

The flash area is divided by linker scripts into the following sections:

LOADER_STAGE_BOOT (rx) : ORIGIN = 0x08000000, LENGTH = 4096

LOADER_STAGE_2 (rx) : ORIGIN = 0x08001000, LENGTH = 24576

LOADERPARTITIONS (rx) : ORIGIN = 0x08007000, LENGTH = 2K /* partition table x2 */

LOADERCONSTANTS (rw) : ORIGIN = 0x20000000, LENGTH = 256

Loader Ram

The ram during execution of the loader is divided further so that loader may execute in-ram applications:

RAM_LOADER (rwx) : ORIGIN = 0x20000C00, LENGTH = 9216 /* at 0x800 sits 1k of app permaram */

RAMAPP (rwx) : ORIGIN = 0x20003800, LENGTH = 66048

Application area

The application area is divided into slots for the SingingCat Application and User Applications. A slot is reserved (APPCONFIG) for permanent configuration of the application. Clearing that flash area removes all configuration for the application, including its nodeid and keys.

APP1 (rx) : ORIGIN = 0x08009000, LENGTH = 150K

APP2 (rx) : ORIGIN = 0x08034800, LENGTH = 150K

APPCONFIG (rx) : ORIGIN = 0x08008000, LENGTH = 4K

USERAPP1 (rx) : ORIGIN = 0x0802e800, LENGTH = 20K /* reserved for user code (src-app) */

USERAPP2 (rx) : ORIGIN = 0x805a000, LENGTH = 20K /* reserved for user code (src-app) */

Application Ram

the ram for the application(s) is divided between ram for application and user application:

RAM (rwx) : ORIGIN = 0x20000C00, LENGTH = 56496 /* total(81920 bytes) - stack - loaderconstants - appconstants = 72883 */

USERRAM (rwx) : ORIGIN = 0x2000E8B0, LENGTH = 16387 /* total(81920 bytes) - stack - loaderconstants - appconstants */