git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@6281 35acf78f-673a-0410-8e92-d51de3d6d3f4
parent
69e460cf3d
commit
983ea65e86
|
@ -41,8 +41,19 @@ endif
|
||||||
# Architecture or project specific options
|
# Architecture or project specific options
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# Stack size to be allocated to the Cortex-M process stack. This stack is
|
||||||
|
# the stack used by the main() thread.
|
||||||
|
ifeq ($(USE_PROCESS_STACKSIZE),)
|
||||||
|
USE_PROCESS_STACKSIZE = 0x100
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Stack size to the allocated to the Cortex-M main/exceptions stack. This
|
||||||
|
# stack is used for processing interrupts and exceptions.
|
||||||
|
ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
|
||||||
|
USE_EXCEPTIONS_STACKSIZE = 0x400
|
||||||
|
endif
|
||||||
|
|
||||||
# Enables the use of FPU on Cortex-M4.
|
# Enables the use of FPU on Cortex-M4.
|
||||||
# Enable this if you really want to use the STM FWLib.
|
|
||||||
ifeq ($(USE_FPU),)
|
ifeq ($(USE_FPU),)
|
||||||
USE_FPU = no
|
USE_FPU = no
|
||||||
endif
|
endif
|
||||||
|
@ -160,29 +171,6 @@ CPPWARN = -Wall -Wextra
|
||||||
# Compiler settings
|
# Compiler settings
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
# Start of default section
|
|
||||||
#
|
|
||||||
|
|
||||||
# List all default C defines here, like -D_DEBUG=1
|
|
||||||
DDEFS =
|
|
||||||
|
|
||||||
# List all default ASM defines here, like -D_DEBUG=1
|
|
||||||
DADEFS =
|
|
||||||
|
|
||||||
# List all default directories to look for include files here
|
|
||||||
DINCDIR =
|
|
||||||
|
|
||||||
# List the default directory to look for the libraries here
|
|
||||||
DLIBDIR =
|
|
||||||
|
|
||||||
# List all default libraries here
|
|
||||||
DLIBS =
|
|
||||||
|
|
||||||
#
|
|
||||||
# End of default section
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# Start of user section
|
# Start of user section
|
||||||
#
|
#
|
||||||
|
@ -206,15 +194,6 @@ ULIBS =
|
||||||
# End of user defines
|
# End of user defines
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
ifeq ($(USE_FPU),yes)
|
|
||||||
USE_OPT += -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -fsingle-precision-constant
|
|
||||||
DDEFS += -DCORTEX_USE_FPU=TRUE
|
|
||||||
DADEFS += -DCORTEX_USE_FPU=TRUE
|
|
||||||
else
|
|
||||||
DDEFS += -DCORTEX_USE_FPU=FALSE
|
|
||||||
DADEFS += -DCORTEX_USE_FPU=FALSE
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(USE_FWLIB),yes)
|
ifeq ($(USE_FWLIB),yes)
|
||||||
include $(CHIBIOS)/ext/stm32lib/stm32lib.mk
|
include $(CHIBIOS)/ext/stm32lib/stm32lib.mk
|
||||||
CSRC += $(STM32SRC)
|
CSRC += $(STM32SRC)
|
||||||
|
@ -222,4 +201,5 @@ ifeq ($(USE_FWLIB),yes)
|
||||||
USE_OPT += -DUSE_STDPERIPH_DRIVER
|
USE_OPT += -DUSE_STDPERIPH_DRIVER
|
||||||
endif
|
endif
|
||||||
|
|
||||||
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/rules.mk
|
RULESPATH = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC
|
||||||
|
include $(RULESPATH)/rules.mk
|
||||||
|
|
|
@ -21,133 +21,10 @@
|
||||||
/*
|
/*
|
||||||
* ST32F051x8 memory setup.
|
* ST32F051x8 memory setup.
|
||||||
*/
|
*/
|
||||||
__main_stack_size__ = 0x0400;
|
|
||||||
__process_stack_size__ = 0x0200;
|
|
||||||
|
|
||||||
MEMORY
|
MEMORY
|
||||||
{
|
{
|
||||||
flash : org = 0x08000000, len = 64k
|
flash : org = 0x08000000, len = 64k
|
||||||
ram : org = 0x20000000, len = 8k
|
ram : org = 0x20000000, len = 8k
|
||||||
}
|
}
|
||||||
|
|
||||||
__ram_start__ = ORIGIN(ram);
|
INCLUDE rules.ld
|
||||||
__ram_size__ = LENGTH(ram);
|
|
||||||
__ram_end__ = __ram_start__ + __ram_size__;
|
|
||||||
|
|
||||||
ENTRY(Reset_Handler)
|
|
||||||
|
|
||||||
SECTIONS
|
|
||||||
{
|
|
||||||
. = 0;
|
|
||||||
_text = .;
|
|
||||||
|
|
||||||
startup : ALIGN(16) SUBALIGN(16)
|
|
||||||
{
|
|
||||||
KEEP(*(vectors))
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
constructors : ALIGN(4) SUBALIGN(4)
|
|
||||||
{
|
|
||||||
PROVIDE(__init_array_start = .);
|
|
||||||
KEEP(*(SORT(.init_array.*)))
|
|
||||||
KEEP(*(.init_array))
|
|
||||||
PROVIDE(__init_array_end = .);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
destructors : ALIGN(4) SUBALIGN(4)
|
|
||||||
{
|
|
||||||
PROVIDE(__fini_array_start = .);
|
|
||||||
KEEP(*(.fini_array))
|
|
||||||
KEEP(*(SORT(.fini_array.*)))
|
|
||||||
PROVIDE(__fini_array_end = .);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.text : ALIGN(16) SUBALIGN(16)
|
|
||||||
{
|
|
||||||
*(.text.startup.*)
|
|
||||||
*(.text)
|
|
||||||
*(.text.*)
|
|
||||||
*(.rodata)
|
|
||||||
*(.rodata.*)
|
|
||||||
*(.glue_7t)
|
|
||||||
*(.glue_7)
|
|
||||||
*(.gcc*)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.ARM.extab :
|
|
||||||
{
|
|
||||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.ARM.exidx : {
|
|
||||||
PROVIDE(__exidx_start = .);
|
|
||||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
|
||||||
PROVIDE(__exidx_end = .);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.eh_frame_hdr :
|
|
||||||
{
|
|
||||||
*(.eh_frame_hdr)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.eh_frame : ONLY_IF_RO
|
|
||||||
{
|
|
||||||
*(.eh_frame)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.textalign : ONLY_IF_RO
|
|
||||||
{
|
|
||||||
. = ALIGN(8);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
_etext = .;
|
|
||||||
_textdata = _etext;
|
|
||||||
|
|
||||||
.stacks :
|
|
||||||
{
|
|
||||||
. = ALIGN(8);
|
|
||||||
__main_stack_base__ = .;
|
|
||||||
. += __main_stack_size__;
|
|
||||||
. = ALIGN(8);
|
|
||||||
__main_stack_end__ = .;
|
|
||||||
__process_stack_base__ = .;
|
|
||||||
__main_thread_stack_base__ = .;
|
|
||||||
. += __process_stack_size__;
|
|
||||||
. = ALIGN(8);
|
|
||||||
__process_stack_end__ = .;
|
|
||||||
__main_thread_stack_end__ = .;
|
|
||||||
} > ram
|
|
||||||
|
|
||||||
.data :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_data = .);
|
|
||||||
*(.data)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.data.*)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.ramtext)
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_edata = .);
|
|
||||||
} > ram AT > flash
|
|
||||||
|
|
||||||
.bss :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_bss_start = .);
|
|
||||||
*(.bss)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.bss.*)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(COMMON)
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_bss_end = .);
|
|
||||||
} > ram
|
|
||||||
}
|
|
||||||
|
|
||||||
PROVIDE(end = .);
|
|
||||||
_end = .;
|
|
||||||
|
|
||||||
__heap_base__ = _end;
|
|
||||||
__heap_end__ = __ram_end__;
|
|
||||||
|
|
|
@ -21,9 +21,6 @@
|
||||||
/*
|
/*
|
||||||
* ST32F303xC memory setup.
|
* ST32F303xC memory setup.
|
||||||
*/
|
*/
|
||||||
__main_stack_size__ = 0x0400;
|
|
||||||
__process_stack_size__ = 0x0200;
|
|
||||||
|
|
||||||
MEMORY
|
MEMORY
|
||||||
{
|
{
|
||||||
flash : org = 0x08000000, len = 256k
|
flash : org = 0x08000000, len = 256k
|
||||||
|
@ -31,124 +28,4 @@ MEMORY
|
||||||
ccmram : org = 0x10000000, len = 8k
|
ccmram : org = 0x10000000, len = 8k
|
||||||
}
|
}
|
||||||
|
|
||||||
__ram_start__ = ORIGIN(ram);
|
INCLUDE rules.ld
|
||||||
__ram_size__ = LENGTH(ram);
|
|
||||||
__ram_end__ = __ram_start__ + __ram_size__;
|
|
||||||
|
|
||||||
ENTRY(Reset_Handler)
|
|
||||||
|
|
||||||
SECTIONS
|
|
||||||
{
|
|
||||||
. = 0;
|
|
||||||
_text = .;
|
|
||||||
|
|
||||||
startup : ALIGN(16) SUBALIGN(16)
|
|
||||||
{
|
|
||||||
KEEP(*(vectors))
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
constructors : ALIGN(4) SUBALIGN(4)
|
|
||||||
{
|
|
||||||
PROVIDE(__init_array_start = .);
|
|
||||||
KEEP(*(SORT(.init_array.*)))
|
|
||||||
KEEP(*(.init_array))
|
|
||||||
PROVIDE(__init_array_end = .);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
destructors : ALIGN(4) SUBALIGN(4)
|
|
||||||
{
|
|
||||||
PROVIDE(__fini_array_start = .);
|
|
||||||
KEEP(*(.fini_array))
|
|
||||||
KEEP(*(SORT(.fini_array.*)))
|
|
||||||
PROVIDE(__fini_array_end = .);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.text : ALIGN(16) SUBALIGN(16)
|
|
||||||
{
|
|
||||||
*(.text.startup.*)
|
|
||||||
*(.text)
|
|
||||||
*(.text.*)
|
|
||||||
*(.rodata)
|
|
||||||
*(.rodata.*)
|
|
||||||
*(.glue_7t)
|
|
||||||
*(.glue_7)
|
|
||||||
*(.gcc*)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.ARM.extab :
|
|
||||||
{
|
|
||||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.ARM.exidx : {
|
|
||||||
PROVIDE(__exidx_start = .);
|
|
||||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
|
||||||
PROVIDE(__exidx_end = .);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.eh_frame_hdr :
|
|
||||||
{
|
|
||||||
*(.eh_frame_hdr)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.eh_frame : ONLY_IF_RO
|
|
||||||
{
|
|
||||||
*(.eh_frame)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.textalign : ONLY_IF_RO
|
|
||||||
{
|
|
||||||
. = ALIGN(8);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
_etext = .;
|
|
||||||
_textdata = _etext;
|
|
||||||
|
|
||||||
.stacks :
|
|
||||||
{
|
|
||||||
. = ALIGN(8);
|
|
||||||
__main_stack_base__ = .;
|
|
||||||
. += __main_stack_size__;
|
|
||||||
. = ALIGN(8);
|
|
||||||
__main_stack_end__ = .;
|
|
||||||
__process_stack_base__ = .;
|
|
||||||
__main_thread_stack_base__ = .;
|
|
||||||
. += __process_stack_size__;
|
|
||||||
. = ALIGN(8);
|
|
||||||
__process_stack_end__ = .;
|
|
||||||
__main_thread_stack_end__ = .;
|
|
||||||
} > ram
|
|
||||||
|
|
||||||
.data :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_data = .);
|
|
||||||
*(.data)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.data.*)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.ramtext)
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_edata = .);
|
|
||||||
} > ram AT > flash
|
|
||||||
|
|
||||||
.bss :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_bss_start = .);
|
|
||||||
*(.bss)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.bss.*)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(COMMON)
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_bss_end = .);
|
|
||||||
} > ram
|
|
||||||
}
|
|
||||||
|
|
||||||
PROVIDE(end = .);
|
|
||||||
_end = .;
|
|
||||||
|
|
||||||
__heap_base__ = _end;
|
|
||||||
__heap_end__ = __ram_end__;
|
|
||||||
|
|
|
@ -21,133 +21,10 @@
|
||||||
/*
|
/*
|
||||||
* ST32F373xC memory setup.
|
* ST32F373xC memory setup.
|
||||||
*/
|
*/
|
||||||
__main_stack_size__ = 0x0400;
|
|
||||||
__process_stack_size__ = 0x0200;
|
|
||||||
|
|
||||||
MEMORY
|
MEMORY
|
||||||
{
|
{
|
||||||
flash : org = 0x08000000, len = 256k
|
flash : org = 0x08000000, len = 256k
|
||||||
ram : org = 0x20000000, len = 32k
|
ram : org = 0x20000000, len = 32k
|
||||||
}
|
}
|
||||||
|
|
||||||
__ram_start__ = ORIGIN(ram);
|
INCLUDE rules.ld
|
||||||
__ram_size__ = LENGTH(ram);
|
|
||||||
__ram_end__ = __ram_start__ + __ram_size__;
|
|
||||||
|
|
||||||
ENTRY(Reset_Handler)
|
|
||||||
|
|
||||||
SECTIONS
|
|
||||||
{
|
|
||||||
. = 0;
|
|
||||||
_text = .;
|
|
||||||
|
|
||||||
startup : ALIGN(16) SUBALIGN(16)
|
|
||||||
{
|
|
||||||
KEEP(*(vectors))
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
constructors : ALIGN(4) SUBALIGN(4)
|
|
||||||
{
|
|
||||||
PROVIDE(__init_array_start = .);
|
|
||||||
KEEP(*(SORT(.init_array.*)))
|
|
||||||
KEEP(*(.init_array))
|
|
||||||
PROVIDE(__init_array_end = .);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
destructors : ALIGN(4) SUBALIGN(4)
|
|
||||||
{
|
|
||||||
PROVIDE(__fini_array_start = .);
|
|
||||||
KEEP(*(.fini_array))
|
|
||||||
KEEP(*(SORT(.fini_array.*)))
|
|
||||||
PROVIDE(__fini_array_end = .);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.text : ALIGN(16) SUBALIGN(16)
|
|
||||||
{
|
|
||||||
*(.text.startup.*)
|
|
||||||
*(.text)
|
|
||||||
*(.text.*)
|
|
||||||
*(.rodata)
|
|
||||||
*(.rodata.*)
|
|
||||||
*(.glue_7t)
|
|
||||||
*(.glue_7)
|
|
||||||
*(.gcc*)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.ARM.extab :
|
|
||||||
{
|
|
||||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.ARM.exidx : {
|
|
||||||
PROVIDE(__exidx_start = .);
|
|
||||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
|
||||||
PROVIDE(__exidx_end = .);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.eh_frame_hdr :
|
|
||||||
{
|
|
||||||
*(.eh_frame_hdr)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.eh_frame : ONLY_IF_RO
|
|
||||||
{
|
|
||||||
*(.eh_frame)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.textalign : ONLY_IF_RO
|
|
||||||
{
|
|
||||||
. = ALIGN(8);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
_etext = .;
|
|
||||||
_textdata = _etext;
|
|
||||||
|
|
||||||
.stacks :
|
|
||||||
{
|
|
||||||
. = ALIGN(8);
|
|
||||||
__main_stack_base__ = .;
|
|
||||||
. += __main_stack_size__;
|
|
||||||
. = ALIGN(8);
|
|
||||||
__main_stack_end__ = .;
|
|
||||||
__process_stack_base__ = .;
|
|
||||||
__main_thread_stack_base__ = .;
|
|
||||||
. += __process_stack_size__;
|
|
||||||
. = ALIGN(8);
|
|
||||||
__process_stack_end__ = .;
|
|
||||||
__main_thread_stack_end__ = .;
|
|
||||||
} > ram
|
|
||||||
|
|
||||||
.data :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_data = .);
|
|
||||||
*(.data)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.data.*)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.ramtext)
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_edata = .);
|
|
||||||
} > ram AT > flash
|
|
||||||
|
|
||||||
.bss :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_bss_start = .);
|
|
||||||
*(.bss)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.bss.*)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(COMMON)
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_bss_end = .);
|
|
||||||
} > ram
|
|
||||||
}
|
|
||||||
|
|
||||||
PROVIDE(end = .);
|
|
||||||
_end = .;
|
|
||||||
|
|
||||||
__heap_base__ = _end;
|
|
||||||
__heap_end__ = __ram_end__;
|
|
||||||
|
|
|
@ -21,9 +21,6 @@
|
||||||
/*
|
/*
|
||||||
* ST32F405xG memory setup.
|
* ST32F405xG memory setup.
|
||||||
*/
|
*/
|
||||||
__main_stack_size__ = 0x0400;
|
|
||||||
__process_stack_size__ = 0x0200;
|
|
||||||
|
|
||||||
MEMORY
|
MEMORY
|
||||||
{
|
{
|
||||||
flash : org = 0x08000000, len = 1M
|
flash : org = 0x08000000, len = 1M
|
||||||
|
@ -32,124 +29,4 @@ MEMORY
|
||||||
ccmram : org = 0x10000000, len = 64k
|
ccmram : org = 0x10000000, len = 64k
|
||||||
}
|
}
|
||||||
|
|
||||||
__ram_start__ = ORIGIN(ram);
|
INCLUDE rules.ld
|
||||||
__ram_size__ = LENGTH(ram);
|
|
||||||
__ram_end__ = __ram_start__ + __ram_size__;
|
|
||||||
|
|
||||||
ENTRY(ResetHandler)
|
|
||||||
|
|
||||||
SECTIONS
|
|
||||||
{
|
|
||||||
. = 0;
|
|
||||||
_text = .;
|
|
||||||
|
|
||||||
startup : ALIGN(16) SUBALIGN(16)
|
|
||||||
{
|
|
||||||
KEEP(*(vectors))
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
constructors : ALIGN(4) SUBALIGN(4)
|
|
||||||
{
|
|
||||||
PROVIDE(__init_array_start = .);
|
|
||||||
KEEP(*(SORT(.init_array.*)))
|
|
||||||
KEEP(*(.init_array))
|
|
||||||
PROVIDE(__init_array_end = .);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
destructors : ALIGN(4) SUBALIGN(4)
|
|
||||||
{
|
|
||||||
PROVIDE(__fini_array_start = .);
|
|
||||||
KEEP(*(.fini_array))
|
|
||||||
KEEP(*(SORT(.fini_array.*)))
|
|
||||||
PROVIDE(__fini_array_end = .);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.text : ALIGN(16) SUBALIGN(16)
|
|
||||||
{
|
|
||||||
*(.text.startup.*)
|
|
||||||
*(.text)
|
|
||||||
*(.text.*)
|
|
||||||
*(.rodata)
|
|
||||||
*(.rodata.*)
|
|
||||||
*(.glue_7t)
|
|
||||||
*(.glue_7)
|
|
||||||
*(.gcc*)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.ARM.extab :
|
|
||||||
{
|
|
||||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.ARM.exidx : {
|
|
||||||
PROVIDE(__exidx_start = .);
|
|
||||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
|
||||||
PROVIDE(__exidx_end = .);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.eh_frame_hdr :
|
|
||||||
{
|
|
||||||
*(.eh_frame_hdr)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.eh_frame : ONLY_IF_RO
|
|
||||||
{
|
|
||||||
*(.eh_frame)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.textalign : ONLY_IF_RO
|
|
||||||
{
|
|
||||||
. = ALIGN(8);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
_etext = .;
|
|
||||||
_textdata = _etext;
|
|
||||||
|
|
||||||
.stacks :
|
|
||||||
{
|
|
||||||
. = ALIGN(8);
|
|
||||||
__main_stack_base__ = .;
|
|
||||||
. += __main_stack_size__;
|
|
||||||
. = ALIGN(8);
|
|
||||||
__main_stack_end__ = .;
|
|
||||||
__process_stack_base__ = .;
|
|
||||||
__main_thread_stack_base__ = .;
|
|
||||||
. += __process_stack_size__;
|
|
||||||
. = ALIGN(8);
|
|
||||||
__process_stack_end__ = .;
|
|
||||||
__main_thread_stack_end__ = .;
|
|
||||||
} > ram
|
|
||||||
|
|
||||||
.data :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_data = .);
|
|
||||||
*(.data)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.data.*)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.ramtext)
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_edata = .);
|
|
||||||
} > ram AT > flash
|
|
||||||
|
|
||||||
.bss :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_bss_start = .);
|
|
||||||
*(.bss)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.bss.*)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(COMMON)
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_bss_end = .);
|
|
||||||
} > ram
|
|
||||||
}
|
|
||||||
|
|
||||||
PROVIDE(end = .);
|
|
||||||
_end = .;
|
|
||||||
|
|
||||||
__heap_base__ = _end;
|
|
||||||
__heap_end__ = __ram_end__;
|
|
||||||
|
|
|
@ -21,9 +21,6 @@
|
||||||
/*
|
/*
|
||||||
* ST32F407xG memory setup.
|
* ST32F407xG memory setup.
|
||||||
*/
|
*/
|
||||||
__main_stack_size__ = 0x0400;
|
|
||||||
__process_stack_size__ = 0x0200;
|
|
||||||
|
|
||||||
MEMORY
|
MEMORY
|
||||||
{
|
{
|
||||||
flash : org = 0x08000000, len = 1M
|
flash : org = 0x08000000, len = 1M
|
||||||
|
@ -32,124 +29,4 @@ MEMORY
|
||||||
ccmram : org = 0x10000000, len = 64k
|
ccmram : org = 0x10000000, len = 64k
|
||||||
}
|
}
|
||||||
|
|
||||||
__ram_start__ = ORIGIN(ram);
|
INCLUDE rules.ld
|
||||||
__ram_size__ = LENGTH(ram);
|
|
||||||
__ram_end__ = __ram_start__ + __ram_size__;
|
|
||||||
|
|
||||||
ENTRY(Reset_Handler)
|
|
||||||
|
|
||||||
SECTIONS
|
|
||||||
{
|
|
||||||
. = 0;
|
|
||||||
_text = .;
|
|
||||||
|
|
||||||
startup : ALIGN(16) SUBALIGN(16)
|
|
||||||
{
|
|
||||||
KEEP(*(vectors))
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
constructors : ALIGN(4) SUBALIGN(4)
|
|
||||||
{
|
|
||||||
PROVIDE(__init_array_start = .);
|
|
||||||
KEEP(*(SORT(.init_array.*)))
|
|
||||||
KEEP(*(.init_array))
|
|
||||||
PROVIDE(__init_array_end = .);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
destructors : ALIGN(4) SUBALIGN(4)
|
|
||||||
{
|
|
||||||
PROVIDE(__fini_array_start = .);
|
|
||||||
KEEP(*(.fini_array))
|
|
||||||
KEEP(*(SORT(.fini_array.*)))
|
|
||||||
PROVIDE(__fini_array_end = .);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.text : ALIGN(16) SUBALIGN(16)
|
|
||||||
{
|
|
||||||
*(.text.startup.*)
|
|
||||||
*(.text)
|
|
||||||
*(.text.*)
|
|
||||||
*(.rodata)
|
|
||||||
*(.rodata.*)
|
|
||||||
*(.glue_7t)
|
|
||||||
*(.glue_7)
|
|
||||||
*(.gcc*)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.ARM.extab :
|
|
||||||
{
|
|
||||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.ARM.exidx : {
|
|
||||||
PROVIDE(__exidx_start = .);
|
|
||||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
|
||||||
PROVIDE(__exidx_end = .);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.eh_frame_hdr :
|
|
||||||
{
|
|
||||||
*(.eh_frame_hdr)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.eh_frame : ONLY_IF_RO
|
|
||||||
{
|
|
||||||
*(.eh_frame)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.textalign : ONLY_IF_RO
|
|
||||||
{
|
|
||||||
. = ALIGN(8);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
_etext = .;
|
|
||||||
_textdata = _etext;
|
|
||||||
|
|
||||||
.stacks :
|
|
||||||
{
|
|
||||||
. = ALIGN(8);
|
|
||||||
__main_stack_base__ = .;
|
|
||||||
. += __main_stack_size__;
|
|
||||||
. = ALIGN(8);
|
|
||||||
__main_stack_end__ = .;
|
|
||||||
__process_stack_base__ = .;
|
|
||||||
__main_thread_stack_base__ = .;
|
|
||||||
. += __process_stack_size__;
|
|
||||||
. = ALIGN(8);
|
|
||||||
__process_stack_end__ = .;
|
|
||||||
__main_thread_stack_end__ = .;
|
|
||||||
} > ram
|
|
||||||
|
|
||||||
.data :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_data = .);
|
|
||||||
*(.data)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.data.*)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.ramtext)
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_edata = .);
|
|
||||||
} > ram AT > flash
|
|
||||||
|
|
||||||
.bss :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_bss_start = .);
|
|
||||||
*(.bss)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.bss.*)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(COMMON)
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_bss_end = .);
|
|
||||||
} > ram
|
|
||||||
}
|
|
||||||
|
|
||||||
PROVIDE(end = .);
|
|
||||||
_end = .;
|
|
||||||
|
|
||||||
__heap_base__ = _end;
|
|
||||||
__heap_end__ = __ram_end__;
|
|
||||||
|
|
|
@ -21,133 +21,10 @@
|
||||||
/*
|
/*
|
||||||
* ST32L152xB memory setup.
|
* ST32L152xB memory setup.
|
||||||
*/
|
*/
|
||||||
__main_stack_size__ = 0x0400;
|
|
||||||
__process_stack_size__ = 0x0200;
|
|
||||||
|
|
||||||
MEMORY
|
MEMORY
|
||||||
{
|
{
|
||||||
flash : org = 0x08000000, len = 128k
|
flash : org = 0x08000000, len = 128k
|
||||||
ram : org = 0x20000000, len = 16k
|
ram : org = 0x20000000, len = 16k
|
||||||
}
|
}
|
||||||
|
|
||||||
__ram_start__ = ORIGIN(ram);
|
INCLUDE rules.ld
|
||||||
__ram_size__ = LENGTH(ram);
|
|
||||||
__ram_end__ = __ram_start__ + __ram_size__;
|
|
||||||
|
|
||||||
ENTRY(ResetHandler)
|
|
||||||
|
|
||||||
SECTIONS
|
|
||||||
{
|
|
||||||
. = 0;
|
|
||||||
_text = .;
|
|
||||||
|
|
||||||
startup : ALIGN(16) SUBALIGN(16)
|
|
||||||
{
|
|
||||||
KEEP(*(vectors))
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
constructors : ALIGN(4) SUBALIGN(4)
|
|
||||||
{
|
|
||||||
PROVIDE(__init_array_start = .);
|
|
||||||
KEEP(*(SORT(.init_array.*)))
|
|
||||||
KEEP(*(.init_array))
|
|
||||||
PROVIDE(__init_array_end = .);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
destructors : ALIGN(4) SUBALIGN(4)
|
|
||||||
{
|
|
||||||
PROVIDE(__fini_array_start = .);
|
|
||||||
KEEP(*(.fini_array))
|
|
||||||
KEEP(*(SORT(.fini_array.*)))
|
|
||||||
PROVIDE(__fini_array_end = .);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.text : ALIGN(16) SUBALIGN(16)
|
|
||||||
{
|
|
||||||
*(.text.startup.*)
|
|
||||||
*(.text)
|
|
||||||
*(.text.*)
|
|
||||||
*(.rodata)
|
|
||||||
*(.rodata.*)
|
|
||||||
*(.glue_7t)
|
|
||||||
*(.glue_7)
|
|
||||||
*(.gcc*)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.ARM.extab :
|
|
||||||
{
|
|
||||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.ARM.exidx : {
|
|
||||||
PROVIDE(__exidx_start = .);
|
|
||||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
|
||||||
PROVIDE(__exidx_end = .);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.eh_frame_hdr :
|
|
||||||
{
|
|
||||||
*(.eh_frame_hdr)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.eh_frame : ONLY_IF_RO
|
|
||||||
{
|
|
||||||
*(.eh_frame)
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
.textalign : ONLY_IF_RO
|
|
||||||
{
|
|
||||||
. = ALIGN(8);
|
|
||||||
} > flash
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
_etext = .;
|
|
||||||
_textdata = _etext;
|
|
||||||
|
|
||||||
.stacks :
|
|
||||||
{
|
|
||||||
. = ALIGN(8);
|
|
||||||
__main_stack_base__ = .;
|
|
||||||
. += __main_stack_size__;
|
|
||||||
. = ALIGN(8);
|
|
||||||
__main_stack_end__ = .;
|
|
||||||
__process_stack_base__ = .;
|
|
||||||
__main_thread_stack_base__ = .;
|
|
||||||
. += __process_stack_size__;
|
|
||||||
. = ALIGN(8);
|
|
||||||
__process_stack_end__ = .;
|
|
||||||
__main_thread_stack_end__ = .;
|
|
||||||
} > ram
|
|
||||||
|
|
||||||
.data :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_data = .);
|
|
||||||
*(.data)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.data.*)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.ramtext)
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_edata = .);
|
|
||||||
} > ram AT > flash
|
|
||||||
|
|
||||||
.bss :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_bss_start = .);
|
|
||||||
*(.bss)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.bss.*)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(COMMON)
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_bss_end = .);
|
|
||||||
} > ram
|
|
||||||
}
|
|
||||||
|
|
||||||
PROVIDE(end = .);
|
|
||||||
_end = .;
|
|
||||||
|
|
||||||
__heap_base__ = _end;
|
|
||||||
__heap_end__ = __ram_end__;
|
|
||||||
|
|
|
@ -18,20 +18,6 @@
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* ST32F407xG memory setup.
|
|
||||||
*/
|
|
||||||
__main_stack_size__ = 0x0400;
|
|
||||||
__process_stack_size__ = 0x0200;
|
|
||||||
|
|
||||||
MEMORY
|
|
||||||
{
|
|
||||||
flash : org = 0x08000000, len = 1M
|
|
||||||
ram : org = 0x20000000, len = 112k
|
|
||||||
ethram : org = 0x2001C000, len = 16k
|
|
||||||
ccmram : org = 0x10000000, len = 64k
|
|
||||||
}
|
|
||||||
|
|
||||||
__ram_start__ = ORIGIN(ram);
|
__ram_start__ = ORIGIN(ram);
|
||||||
__ram_size__ = LENGTH(ram);
|
__ram_size__ = LENGTH(ram);
|
||||||
__ram_end__ = __ram_start__ + __ram_size__;
|
__ram_end__ = __ram_start__ + __ram_size__;
|
||||||
|
@ -119,28 +105,7 @@ SECTIONS
|
||||||
. = ALIGN(8);
|
. = ALIGN(8);
|
||||||
__process_stack_end__ = .;
|
__process_stack_end__ = .;
|
||||||
__main_thread_stack_end__ = .;
|
__main_thread_stack_end__ = .;
|
||||||
} > ccmram
|
} > ram
|
||||||
|
|
||||||
.ccm :
|
|
||||||
{
|
|
||||||
PROVIDE(_cmm_start = .);
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.bss.mainthread.*)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.bss._idle_thread_wa)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.bss.rlist)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.bss.vtlist)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.bss.endmem)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.bss.nextmem)
|
|
||||||
. = ALIGN(4);
|
|
||||||
*(.bss.default_heap)
|
|
||||||
. = ALIGN(4);
|
|
||||||
PROVIDE(_cmm_end = .);
|
|
||||||
} > ccmram
|
|
||||||
|
|
||||||
.data :
|
.data :
|
||||||
{
|
{
|
|
@ -1,5 +1,40 @@
|
||||||
# ARM Cortex-Mx common makefile scripts and rules.
|
# ARM Cortex-Mx common makefile scripts and rules.
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Processing options coming from the upper Makefile.
|
||||||
|
#
|
||||||
|
|
||||||
|
# FPU-related options
|
||||||
|
ifeq ($(USE_FPU),yes)
|
||||||
|
USE_OPT += -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -fsingle-precision-constant
|
||||||
|
DDEFS += -DCORTEX_USE_FPU=TRUE
|
||||||
|
DADEFS += -DCORTEX_USE_FPU=TRUE
|
||||||
|
else
|
||||||
|
DDEFS += -DCORTEX_USE_FPU=FALSE
|
||||||
|
DADEFS += -DCORTEX_USE_FPU=FALSE
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Garbage collection
|
||||||
|
ifeq ($(USE_LINK_GC),yes)
|
||||||
|
LDOPT := --gc-sections
|
||||||
|
else
|
||||||
|
LDOPT :=
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Process stack size
|
||||||
|
ifeq ($(USE_PROCESS_STACKSIZE),)
|
||||||
|
LDOPT := $(LDOPT),--defsym=__process_stack_size__=0x400
|
||||||
|
else
|
||||||
|
LDOPT := $(LDOPT),--defsym=__process_stack_size__=$(USE_PROCESS_STACKSIZE)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Exceptions stack size
|
||||||
|
ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
|
||||||
|
LDOPT := $(LDOPT),--defsym=__main_stack_size__=0x400
|
||||||
|
else
|
||||||
|
LDOPT := $(LDOPT),--defsym=__main_stack_size__=$(USE_EXCEPTIONS_STACKSIZE)
|
||||||
|
endif
|
||||||
|
|
||||||
# Output directory and files
|
# Output directory and files
|
||||||
ifeq ($(BUILDDIR),)
|
ifeq ($(BUILDDIR),)
|
||||||
BUILDDIR = build
|
BUILDDIR = build
|
||||||
|
@ -61,11 +96,7 @@ ASFLAGS = $(MCFLAGS) -Wa,-amhls=$(LSTDIR)/$(notdir $(<:.s=.lst)) $(ADEFS)
|
||||||
ASXFLAGS = $(MCFLAGS) -Wa,-amhls=$(LSTDIR)/$(notdir $(<:.S=.lst)) $(ADEFS)
|
ASXFLAGS = $(MCFLAGS) -Wa,-amhls=$(LSTDIR)/$(notdir $(<:.S=.lst)) $(ADEFS)
|
||||||
CFLAGS = $(MCFLAGS) $(OPT) $(COPT) $(CWARN) -Wa,-alms=$(LSTDIR)/$(notdir $(<:.c=.lst)) $(DEFS)
|
CFLAGS = $(MCFLAGS) $(OPT) $(COPT) $(CWARN) -Wa,-alms=$(LSTDIR)/$(notdir $(<:.c=.lst)) $(DEFS)
|
||||||
CPPFLAGS = $(MCFLAGS) $(OPT) $(CPPOPT) $(CPPWARN) -Wa,-alms=$(LSTDIR)/$(notdir $(<:.cpp=.lst)) $(DEFS)
|
CPPFLAGS = $(MCFLAGS) $(OPT) $(CPPOPT) $(CPPWARN) -Wa,-alms=$(LSTDIR)/$(notdir $(<:.cpp=.lst)) $(DEFS)
|
||||||
ifeq ($(USE_LINK_GC),yes)
|
LDFLAGS = $(MCFLAGS) -nostartfiles $(LLIBDIR) -Wl,-Map=$(BUILDDIR)/$(PROJECT).map,--cref,--no-warn-mismatch,--library-path=$(RULESPATH),--script=$(LDSCRIPT),$(LDOPT)
|
||||||
LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(BUILDDIR)/$(PROJECT).map,--cref,--no-warn-mismatch,--gc-sections $(LLIBDIR)
|
|
||||||
else
|
|
||||||
LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(BUILDDIR)/$(PROJECT).map,--cref,--no-warn-mismatch $(LLIBDIR)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Thumb interwork enabled only if needed because it kills performance.
|
# Thumb interwork enabled only if needed because it kills performance.
|
||||||
ifneq ($(TSRC),)
|
ifneq ($(TSRC),)
|
||||||
|
|
Loading…
Reference in New Issue