1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-17 03:48:09 +00:00
trezor-firmware/memory.ld
Jochen Hoenicke be64864efc
Put persistent variables at end of stack
Two variables of the bootloader are persistent:
- __stack_chk_guard is used by interrupt handlers
- system_millis is used by timer interrupt and service routines

Note that currently __stack_chk_guard is shared between unprivileged
firmware and bootloader.

If we get more variables later it may make sense to make a section for
this.
2018-03-29 01:30:40 +02:00

26 lines
511 B
Plaintext

/* STM32F205RE - 512K Flash, 128K RAM */
MEMORY
{
rom (rx) : ORIGIN = 0x08000000, LENGTH = 512K
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 128K
}
SECTIONS
{
.confidential (NOLOAD) : {
*(confidential)
ASSERT ((SIZEOF(.confidential) <= 33K), "Error: Confidential section too big!");
} >ram
}
INCLUDE libopencm3_stm32f2.ld
_ram_start = ORIGIN(ram);
_ram_end = ORIGIN(ram) + LENGTH(ram);
_stack = _ram_end - 8;
__stack_chk_guard = _ram_end - 8;
system_millis = _ram_end - 4;
_data_size = SIZEOF(.data);