4fc2866f45
This commit simplifies and cleans up the bare-arm port, and adds just enough system and library code to make it execute on an STM32F405 MCU. The mpconfigport.h configuration is simplified to just specify those configuration values that are different from the defaults. And the addition of -fdata-sections and -ffunction-sections means the final firmware is smaller than it previously was, by about 4200 bytes. A README is also added. Signed-off-by: Damien George <damien@micropython.org>
59 lines
973 B
Plaintext
59 lines
973 B
Plaintext
/* GNU linker script for STM32F405 */
|
|
|
|
MEMORY
|
|
{
|
|
FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 0x100000 /* entire flash, 1 MiB */
|
|
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 0x020000 /* 128 KiB */
|
|
}
|
|
|
|
_estack = ORIGIN(RAM) + LENGTH(RAM);
|
|
|
|
SECTIONS
|
|
{
|
|
.isr_vector :
|
|
{
|
|
. = ALIGN(4);
|
|
KEEP(*(.isr_vector))
|
|
. = ALIGN(4);
|
|
} >FLASH
|
|
|
|
.text :
|
|
{
|
|
. = ALIGN(4);
|
|
*(.text)
|
|
*(.text*)
|
|
*(.rodata)
|
|
*(.rodata*)
|
|
. = ALIGN(4);
|
|
_etext = .;
|
|
_sidata = _etext;
|
|
} >FLASH
|
|
|
|
.data : AT ( _sidata )
|
|
{
|
|
. = ALIGN(4);
|
|
_sdata = .;
|
|
*(.data)
|
|
*(.data*)
|
|
. = ALIGN(4);
|
|
_edata = .;
|
|
} >RAM
|
|
|
|
.bss :
|
|
{
|
|
. = ALIGN(4);
|
|
_sbss = .;
|
|
*(.bss)
|
|
*(.bss*)
|
|
*(COMMON)
|
|
. = ALIGN(4);
|
|
_ebss = .;
|
|
} >RAM
|
|
|
|
.heap :
|
|
{
|
|
. = ALIGN(8);
|
|
_heap_start = .;
|
|
} >RAM
|
|
}
|