egos-2k+ memory layout (updated 09/01/2023) HIGH MEM ADDR ------- +----------------------+ <- 0x8040_0000 | | [FREE_MEM_END] DTIM | free memory | memory | (4MB - 16KB) | (4MB) +----------------------+ <- 0x8000_4000 | earth interface | [FREE_MEM_START] | (128B) | +----------------------+ <- 0x8000_3f80 | earth/grass stack | [GRASS_STACK_TOP] | (~8KB) | \/\/\/\/\/\/\/\/\/\/\/\/ /\/\/\/\/\/\/\/\/\/\/\/\ | grass interface | +----------------------+ <- 0x8000_2000 | app stack | [APPS_STACK_TOP] | (6KB) | +----------------------+ <- 0x8000_0800 | system call args | | (1KB) | +----------------------+ <- 0x8000_0400 | app args | [SYSCALL_ARG] | (1KB) | ------- +----------------------+ <- 0x8000_0000 [APPS_ARG] ... ------- +----------------------+ <- 0x20c0_0000 | read-only fs w/ | | dirs & user app elfs | | (2MB) | +----------------------+ <- 0x20a0_0000 disk | grass elf and | image | sys app elfs | (4MB) | (1MB) | +----------------------+ <- 0x2090_0000 | (1MB) | ------- +----------------------+ <- 0x2080_0000 boot | | ROM | earth code | (4MB) | | ------- +----------------------+ <- 0x2040_0000 ... ------- +----------------------+ <- 0x1001_4000 | | UART0 | | (4KB) | | | | ------- +----------------------+ <- 0x1001_3000 ... ------- +----------------------+ <- 0x0a00_0000 | | [ITIM_END] \/\/\/\/\/\/\/\/\/\/\/\/ /\/\/\/\/\/\/\/\/\/\/\/\ | | +----------------------+ <- 0x0820_4000 ITIM | app code+data | [APPS_ENTRY+APPS_SIZE] (32MB) | (16KB) | +----------------------+ <- 0x0820_0000 | grass code+data | [APPS_ENTRY] | (1 MB) | +----------------------+ <- 0x0810_0000 | earth data | [GRASS_ENTRY] | (1 MB) | ------- +----------------------+ <- 0x0800_0000 [ITIM_START] ... ------- +----------------------+ <- 0x0201_0000 | | +----------------------+ | mtime (8B) | CLINT +----------------------+ <- 0x0200_bff8 (64KB) | | +----------------------+ | mtimecp (8B) | +----------------------+ <- 0x0200_4000 | | +----------------------+ | msip (4B) | ------- +----------------------+ <- 0x0200_0000 LOW MEM ADDR