diff options
Diffstat (limited to 'nuttx/configs/ea3131/locked')
-rwxr-xr-x | nuttx/configs/ea3131/locked/Makefile | 28 | ||||
-rw-r--r-- | nuttx/configs/ea3131/locked/ld-locked.script | 7 |
2 files changed, 27 insertions, 8 deletions
diff --git a/nuttx/configs/ea3131/locked/Makefile b/nuttx/configs/ea3131/locked/Makefile index b4566ae40..26a62a683 100755 --- a/nuttx/configs/ea3131/locked/Makefile +++ b/nuttx/configs/ea3131/locked/Makefile @@ -36,10 +36,18 @@ -include $(TOPDIR)/.config -include $(TOPDIR)/Make.defs -# Remove the application library (libapp) from the list of libraries. +# Board-specific directory, board library, and application library +PASS1_SRCDIR = arch/$(CONFIG_ARCH)/src +PASS1_BOARDDIR = $(PASS1_SRCDIR)/board +PASS1_LIBBOARD = $(PASS1_BOARDDIR)/libboard$(LIBEXT) PASS1_LIBAPP = $(CONFIG_APP_DIR)/libapp$(LIBEXT) + +# Remove the application library (libapp) from the list of libraries. Add +# the boad library (liboard) + PASS1_LINKLIBS = $(filter-out $(PASS1_LIBAPP),$(LINKLIBS)) +PASS1_LINKLIBS += $(PASS1_LIBBOARD) # Get the paths to the libraries and the links script path in format that # is appropriate for the host OS @@ -58,8 +66,12 @@ PASS1_LDFLAGS = -r $(PASS1_LDSCRIPT) PASS1_LDLIBS = $(patsubst lib%,-l%,$(basename $(notdir $(PASS1_LINKLIBS)))) PASS1_LIBGCC = "${shell $(CC) -print-libgcc-file-name}" +# Targets: + all: locked.r +.PHONY: depend clean distclean + # Create include-able linker script that specifies all of the symbols to be # resolved in the locked.r file. @@ -67,18 +79,26 @@ ld-locked.inc: mklocked.sh $(TOPDIR)/.config @echo "MK: ld-locked.inc" @./mklocked.sh "$(TOPDIR)" +# Make the board library. This is normally done in arch/arm/src/Makefile. +# However, we need it earlier here when doing a two-pass build so that libboard.a +# is available to link against. + +$(PASS1_LIBBOARD): + @$(MAKE) -C $(TOPDIR)/configs/ea3131/src TOPDIR="$(TOPDIR)" libboard$(LIBEXT) + # Create the locked.r file containing all of the code (except the start-up code) # that needs to lie in the locked text region. -locked.r: ld-locked.inc +locked.r: ld-locked.inc $(PASS1_LIBBOARD) @echo "LD: locked.r" @$(LD) -o $@ $(PASS1_LDFLAGS) $(PASS1_LIBPATHS) --start-group $(PASS1_LDLIBS) --end-group $(PASS1_LIBGCC) - @echo "NM: locked.map" @$(NM) $@ > locked.map @fgrep " U " locked.map | grep -v os_start - @echo "SZ:" @$(CROSSDEV)size $@ +$(PASS1_SRCDIR)/locked.r: locked.r + @cp -a locked.r $(TOPDIR)/$(PASS1_SRCDIR)/locked.r + .depend: depend: .depend diff --git a/nuttx/configs/ea3131/locked/ld-locked.script b/nuttx/configs/ea3131/locked/ld-locked.script index f89d8549f..5b5feeb1a 100644 --- a/nuttx/configs/ea3131/locked/ld-locked.script +++ b/nuttx/configs/ea3131/locked/ld-locked.script @@ -37,8 +37,7 @@ INCLUDE ld-locked.inc OUTPUT_ARCH(arm) SECTIONS { - .locked : { - *(.vectors) - *(.text .text.*) - } + .text.locked : { *(.text .text.*) } + .data : { *(.data) } + .bss : { *(.bss) *(COMMON) } }
\ No newline at end of file |