Two pass build for on-demand paging now works
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@2896 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
parent
f4f87bb105
commit
5b484ba4ce
|
@ -1231,3 +1231,19 @@
|
||||||
the arch/arm/src/Makefile for now.
|
the arch/arm/src/Makefile for now.
|
||||||
* arch/arm/src/lpc17xx/lpc17_internal.h - Add missing parentheses in
|
* arch/arm/src/lpc17xx/lpc17_internal.h - Add missing parentheses in
|
||||||
macros definitions (patch submitted by Tiago Maluta).
|
macros definitions (patch submitted by Tiago Maluta).
|
||||||
|
* Documents/NuttxPortingGuide.html, configs/README.txt, etc. -
|
||||||
|
Replaced CONFIG_EXAMPLE with CONFIG_APP_DIR (see documents for
|
||||||
|
desciption). This allows NuttX application code to be built
|
||||||
|
outside of the examples/ directory.
|
||||||
|
|
||||||
|
For people who have their own configurations and/or Makefiles,
|
||||||
|
you will need to make a couple of changes:
|
||||||
|
|
||||||
|
- Replace all occurrences of CONFIG_EXAMPLE=foobar with
|
||||||
|
CONFIG_APP_DIR=examples/foobar in all of the configuration
|
||||||
|
files.
|
||||||
|
- Replace any occurrences of examples/$(CONFIG_EXAMPLE) with
|
||||||
|
$(CONFIG_APP_DIR)
|
||||||
|
- Replace any occurrences of lib$(CONFIG_EXAMPLE)$(LIBEXT)
|
||||||
|
with libapp$(LIBEXT) in your Makefiles.
|
||||||
|
- Check any other occurrences of CONFIG_EXAMPLE.
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<tr align="center" bgcolor="#e4e4e4">
|
<tr align="center" bgcolor="#e4e4e4">
|
||||||
<td>
|
<td>
|
||||||
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
|
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
|
||||||
<p>Last Updated: August 27, 2010</p>
|
<p>Last Updated: August 28, 2010</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -1903,8 +1903,22 @@ nuttx-5.10 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
the arch/arm/src/Makefile for now.
|
the arch/arm/src/Makefile for now.
|
||||||
* arch/arm/src/lpc17xx/lpc17_internal.h - Add missing parentheses in
|
* arch/arm/src/lpc17xx/lpc17_internal.h - Add missing parentheses in
|
||||||
macros definitions (patch submitted by Tiago Maluta).
|
macros definitions (patch submitted by Tiago Maluta).
|
||||||
|
* Documents/NuttxPortingGuide.html, configs/README.txt, etc. -
|
||||||
|
Replaced CONFIG_EXAMPLE with CONFIG_APP_DIR (see documents for
|
||||||
|
desciption). This allows NuttX application code to be built
|
||||||
|
outside of the examples/ directory.
|
||||||
|
|
||||||
pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
For people who have their own configurations and/or Makefiles,
|
||||||
|
you will need to make a couple of changes:
|
||||||
|
|
||||||
|
- Replace all occurrences of CONFIG_EXAMPLE=foobar with
|
||||||
|
CONFIG_APP_DIR=examples/foobar in all of the configuration
|
||||||
|
files.
|
||||||
|
- Replace any occurrences of examples/$(CONFIG_EXAMPLE) with
|
||||||
|
$(CONFIG_APP_DIR)
|
||||||
|
- Replace any occurrences of lib$(CONFIG_EXAMPLE)$(LIBEXT)
|
||||||
|
with libapp$(LIBEXT) in your Makefiles.
|
||||||
|
- Check any other occurrences of CONFIG_EXAMPLE.pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
|
||||||
buildroot-1.9 2010-xx-xx <spudmonkey@racsa.co.cr>
|
buildroot-1.9 2010-xx-xx <spudmonkey@racsa.co.cr>
|
||||||
</pre></ul>
|
</pre></ul>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<h1><big><font color="#3c34ec">
|
<h1><big><font color="#3c34ec">
|
||||||
<i>NuttX RTOS Porting Guide</i>
|
<i>NuttX RTOS Porting Guide</i>
|
||||||
</font></big></h1>
|
</font></big></h1>
|
||||||
<p>Last Updated: August 27, 2010</p>
|
<p>Last Updated: August 29, 2010</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -2178,6 +2178,7 @@ extern void up_ledoff(int led);
|
||||||
The start address of DRAM (virtual)</li>
|
The start address of DRAM (virtual)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<h2>Build Options</h2>
|
||||||
<p>
|
<p>
|
||||||
General build options:
|
General build options:
|
||||||
</p>
|
</p>
|
||||||
|
@ -2206,9 +2207,9 @@ extern void up_ledoff(int led);
|
||||||
have been defined in the configurations <code>Make.defs</code> file.
|
have been defined in the configurations <code>Make.defs</code> file.
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<p>
|
||||||
<h2>General OS setup</h2>
|
Building application code:
|
||||||
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<p>
|
<p>
|
||||||
|
@ -2261,6 +2262,38 @@ build
|
||||||
It can be used, for example, to include makefile fragments (e.g., <code>.config</code> or <code>Make.defs</code>) or to set up include file paths.
|
It can be used, for example, to include makefile fragments (e.g., <code>.config</code> or <code>Make.defs</code>) or to set up include file paths.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Two-pass Build Options.
|
||||||
|
If the 2 pass build option is selected, then these options configure the make system build a extra link object.
|
||||||
|
This link object is assumed to be an incremental (relative) link object, but could be a static library (archive)
|
||||||
|
(some modification to this Makefile would be required if CONFIG_PASS1_OBJECT is an archive).
|
||||||
|
Pass 1 1ncremental (relative) link objects should be put into the processor-specific source directory
|
||||||
|
where other link objects will be created - ff the pass1 obect is an archive, it could go anywhere.
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<code>CONFIG_BUILD_2PASS</code>:
|
||||||
|
Enables the two pass build options.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
When the two pass build option is enabled, the following also apply:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<code>CONFIG_PASS1_OBJECT</code>: The name of the first pass object.
|
||||||
|
</li>
|
||||||
|
<li><code>CONFIG_PASS1_BUILDIR</code>:
|
||||||
|
The path, relative to the top NuttX build directory to directory that contains the Makefile to build the first pass object.
|
||||||
|
The Makefile must support the following targets:
|
||||||
|
<ul>
|
||||||
|
<li>The special target <code>arch/$(CONFIG_ARCH)/src/$(CONFIG_PASS1_OBJECT)</code>, and</li>
|
||||||
|
<li>The usual depend, clean, and distclean targets.</li>
|
||||||
|
</ul>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>General OS setup</h2>
|
||||||
<li>
|
<li>
|
||||||
<code>CONFIG_DEBUG</code>: enables built-in debug options
|
<code>CONFIG_DEBUG</code>: enables built-in debug options
|
||||||
</li>
|
</li>
|
||||||
|
@ -2434,7 +2467,8 @@ build
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
If CONFIG_PAGING is selected, then the following also apply:
|
If CONFIG_PAGING is selected, then you will probabaly need <code>CONFIG_BUILD_2PASS</code> to correctly position
|
||||||
|
the code and the following configuration options also apply:
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
|
|
@ -101,10 +101,15 @@ MAKEDIRS += $(FSDIRS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#
|
#
|
||||||
# Extra objects used in the final link
|
# Extra objects used in the final link.
|
||||||
|
#
|
||||||
|
# Pass 1 1ncremental (relative) link objects should be put into the
|
||||||
|
# processor-specific source directory (where other link objects will
|
||||||
|
# be created). If the pass1 obect is an archive, it could go anywhere.
|
||||||
|
|
||||||
ifeq ($(CONFIG_BUILD_2PASS),y)
|
ifeq ($(CONFIG_BUILD_2PASS),y)
|
||||||
EXTRA_OBJS = $(TOPDIR)/$(CONFIG_PASS1_DIR)/$(CONFIG_PASS1_LIB)
|
#EXTRA_OBJS = $(TOPDIR)/$(CONFIG_PASS1_BUILDIR)/$(CONFIG_PASS1_OBJECT)
|
||||||
|
EXTRA_OBJS += $(CONFIG_PASS1_OBJECT)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# LINKLIBS is the list of NuttX libraries that is passed to the
|
# LINKLIBS is the list of NuttX libraries that is passed to the
|
||||||
|
@ -256,25 +261,31 @@ graphics/libgraphics$(LIBEXT): context
|
||||||
$(CONFIG_APP_DIR)/libapp$(LIBEXT): context
|
$(CONFIG_APP_DIR)/libapp$(LIBEXT): context
|
||||||
@$(MAKE) -C $(CONFIG_APP_DIR) TOPDIR="$(TOPDIR)" libapp$(LIBEXT)
|
@$(MAKE) -C $(CONFIG_APP_DIR) TOPDIR="$(TOPDIR)" libapp$(LIBEXT)
|
||||||
|
|
||||||
|
# If the 2 pass build option is selected, then this pass1 target is
|
||||||
|
# configured be build a extra link object. This is assumed to be an
|
||||||
|
# incremental (relative) link object, but could be a static library
|
||||||
|
# (archive); some modification to this Makefile would be required if
|
||||||
|
# CONFIG_PASS1_OBJECT is an archive.
|
||||||
|
|
||||||
pass1:
|
pass1:
|
||||||
ifeq ($(CONFIG_BUILD_2PASS),y)
|
ifeq ($(CONFIG_BUILD_2PASS),y)
|
||||||
@if [ -z "$(CONFIG_PASS1_LIB)" ]; then \
|
@if [ -z "$(CONFIG_PASS1_OBJECT)" ]; then \
|
||||||
echo "ERROR: CONFIG_PASS1_LIB not defined"; \
|
echo "ERROR: CONFIG_PASS1_OBJECT not defined"; \
|
||||||
exit 1; \
|
exit 1; \
|
||||||
fi
|
fi
|
||||||
@if [ -z "$(CONFIG_PASS1_DIR)" ]; then \
|
@if [ -z "$(CONFIG_PASS1_BUILDIR)" ]; then \
|
||||||
echo "ERROR: CONFIG_PASS1_DIR not defined"; \
|
echo "ERROR: CONFIG_PASS1_BUILDIR not defined"; \
|
||||||
exit 1; \
|
exit 1; \
|
||||||
fi
|
fi
|
||||||
@if [ ! -d "$(CONFIG_PASS1_DIR)" ]; then \
|
@if [ ! -d "$(CONFIG_PASS1_BUILDIR)" ]; then \
|
||||||
echo "ERROR: CONFIG_PASS1_DIR does not exist"; \
|
echo "ERROR: CONFIG_PASS1_BUILDIR does not exist"; \
|
||||||
exit 1; \
|
exit 1; \
|
||||||
fi
|
fi
|
||||||
@if [ ! -f "$(CONFIG_PASS1_DIR)/Makefile" ]; then \
|
@if [ ! -f "$(CONFIG_PASS1_BUILDIR)/Makefile" ]; then \
|
||||||
echo "ERROR: No Makefile in CONFIG_PASS1_DIR"; \
|
echo "ERROR: No Makefile in CONFIG_PASS1_BUILDIR"; \
|
||||||
exit 1; \
|
exit 1; \
|
||||||
fi
|
fi
|
||||||
@$(MAKE) -C $(CONFIG_PASS1_DIR) TOPDIR="$(TOPDIR)" LINKLIBS="$(LINKLIBS)" $(CONFIG_PASS1_LIB)
|
@$(MAKE) -C $(CONFIG_PASS1_BUILDIR) TOPDIR="$(TOPDIR)" LINKLIBS="$(LINKLIBS)" "$(ARCH_SRC)/$(CONFIG_PASS1_OBJECT)"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(BIN): context depend $(LINKLIBS) pass1
|
$(BIN): context depend $(LINKLIBS) pass1
|
||||||
|
@ -312,7 +323,7 @@ subdir_clean:
|
||||||
@$(MAKE) -C tools -f Makefile.mkconfig TOPDIR="$(TOPDIR)" clean
|
@$(MAKE) -C tools -f Makefile.mkconfig TOPDIR="$(TOPDIR)" clean
|
||||||
@$(MAKE) -C mm -f Makefile.test TOPDIR="$(TOPDIR)" clean
|
@$(MAKE) -C mm -f Makefile.test TOPDIR="$(TOPDIR)" clean
|
||||||
ifeq ($(CONFIG_BUILD_2PASS),y)
|
ifeq ($(CONFIG_BUILD_2PASS),y)
|
||||||
@$(MAKE) -C $(CONFIG_PASS1_DIR) TOPDIR="$(TOPDIR)" clean
|
@$(MAKE) -C $(CONFIG_PASS1_BUILDIR) TOPDIR="$(TOPDIR)" clean
|
||||||
endif
|
endif
|
||||||
|
|
||||||
clean: subdir_clean
|
clean: subdir_clean
|
||||||
|
@ -328,5 +339,5 @@ subdir_distclean:
|
||||||
distclean: clean subdir_distclean clean_context
|
distclean: clean subdir_distclean clean_context
|
||||||
@rm -f Make.defs setenv.sh .config
|
@rm -f Make.defs setenv.sh .config
|
||||||
ifeq ($(CONFIG_BUILD_2PASS),y)
|
ifeq ($(CONFIG_BUILD_2PASS),y)
|
||||||
@$(MAKE) -C $(CONFIG_PASS1_DIR) TOPDIR="$(TOPDIR)" distclean
|
@$(MAKE) -C $(CONFIG_PASS1_BUILDIR) TOPDIR="$(TOPDIR)" distclean
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -139,7 +139,7 @@ defconfig -- This is a configuration file similar to the Linux
|
||||||
CONFIG_DRAM_START - The start address of DRAM (physical)
|
CONFIG_DRAM_START - The start address of DRAM (physical)
|
||||||
CONFIG_DRAM_VSTART - The start address of DRAM (virtual)
|
CONFIG_DRAM_VSTART - The start address of DRAM (virtual)
|
||||||
|
|
||||||
General build options
|
General build options:
|
||||||
|
|
||||||
CONFIG_RRLOAD_BINARY - make the rrload binary format used with
|
CONFIG_RRLOAD_BINARY - make the rrload binary format used with
|
||||||
BSPs from www.ridgerun.com using the tools/mkimage.sh script.
|
BSPs from www.ridgerun.com using the tools/mkimage.sh script.
|
||||||
|
@ -157,7 +157,7 @@ defconfig -- This is a configuration file similar to the Linux
|
||||||
COMPILEXX have been defined in the configuratins Make.defs
|
COMPILEXX have been defined in the configuratins Make.defs
|
||||||
file.
|
file.
|
||||||
|
|
||||||
General OS setup
|
Building application code:
|
||||||
|
|
||||||
CONFIG_APP_DIR - Identifies the directory that builds the
|
CONFIG_APP_DIR - Identifies the directory that builds the
|
||||||
application to link with NuttX. This symbol must be assigned
|
application to link with NuttX. This symbol must be assigned
|
||||||
|
@ -201,6 +201,28 @@ defconfig -- This is a configuration file similar to the Linux
|
||||||
example, to include makefile fragments (e.g., .config or Make.defs)
|
example, to include makefile fragments (e.g., .config or Make.defs)
|
||||||
or to set up include file paths.
|
or to set up include file paths.
|
||||||
|
|
||||||
|
Two-pass build options. If the 2 pass build option is selected, then these
|
||||||
|
options configure the make system build a extra link object. This link object
|
||||||
|
is assumed to be an incremental (relative) link object, but could be a static
|
||||||
|
library (archive) (some modification to this Makefile would be required if
|
||||||
|
CONFIG_PASS1_OBJECT is an archive). Pass 1 1ncremental (relative) link objects
|
||||||
|
should be put into the processor-specific source directory (where other
|
||||||
|
link objects will be created). If the pass1 obect is an archive, it could
|
||||||
|
go anywhere.
|
||||||
|
|
||||||
|
CONFIG_BUILD_2PASS - Enables the two pass build options.
|
||||||
|
|
||||||
|
When the two pass build option is enabled, the following also apply:
|
||||||
|
|
||||||
|
CONFIG_PASS1_OBJECT - The name of the first pass object.
|
||||||
|
CONFIG_PASS1_BUILDIR - The path, relative to the top NuttX build
|
||||||
|
directory to directory that contains the Makefile to build the
|
||||||
|
first pass object. The Makefile must support the following targets:
|
||||||
|
- The special target arch/$(CONFIG_ARCH)/src/$(CONFIG_PASS1_OBJECT)
|
||||||
|
- and the usual depend, clean, and distclean targets.
|
||||||
|
|
||||||
|
General OS setup
|
||||||
|
|
||||||
CONFIG_DEBUG - enables built-in debug options
|
CONFIG_DEBUG - enables built-in debug options
|
||||||
CONFIG_DEBUG_VERBOSE - enables verbose debug output
|
CONFIG_DEBUG_VERBOSE - enables verbose debug output
|
||||||
CONFIG_DEBUG_SYMBOLS - build without optimization and with
|
CONFIG_DEBUG_SYMBOLS - build without optimization and with
|
||||||
|
@ -308,7 +330,8 @@ defconfig -- This is a configuration file similar to the Linux
|
||||||
enable the on-demand paging feature as described in
|
enable the on-demand paging feature as described in
|
||||||
http://www.nuttx.org/NuttXDemandPaging.html.
|
http://www.nuttx.org/NuttXDemandPaging.html.
|
||||||
|
|
||||||
If CONFIG_PAGING is selected, then the following also apply:
|
If CONFIG_PAGING is selected, then you will probabaly need CONFIG_BUILD_2PASS to
|
||||||
|
correctly position the code and the following configuration options also apply:
|
||||||
|
|
||||||
CONFIG_PAGING_PAGESIZE - The size of one managed page. This must
|
CONFIG_PAGING_PAGESIZE - The size of one managed page. This must
|
||||||
be a value supported by the processor's memory management unit.
|
be a value supported by the processor's memory management unit.
|
||||||
|
|
|
@ -36,10 +36,18 @@
|
||||||
-include $(TOPDIR)/.config
|
-include $(TOPDIR)/.config
|
||||||
-include $(TOPDIR)/Make.defs
|
-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)
|
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 = $(filter-out $(PASS1_LIBAPP),$(LINKLIBS))
|
||||||
|
PASS1_LINKLIBS += $(PASS1_LIBBOARD)
|
||||||
|
|
||||||
# Get the paths to the libraries and the links script path in format that
|
# Get the paths to the libraries and the links script path in format that
|
||||||
# is appropriate for the host OS
|
# 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_LDLIBS = $(patsubst lib%,-l%,$(basename $(notdir $(PASS1_LINKLIBS))))
|
||||||
PASS1_LIBGCC = "${shell $(CC) -print-libgcc-file-name}"
|
PASS1_LIBGCC = "${shell $(CC) -print-libgcc-file-name}"
|
||||||
|
|
||||||
|
# Targets:
|
||||||
|
|
||||||
all: locked.r
|
all: locked.r
|
||||||
|
|
||||||
|
.PHONY: depend clean distclean
|
||||||
|
|
||||||
# Create include-able linker script that specifies all of the symbols to be
|
# Create include-able linker script that specifies all of the symbols to be
|
||||||
# resolved in the locked.r file.
|
# resolved in the locked.r file.
|
||||||
|
|
||||||
|
@ -67,18 +79,26 @@ ld-locked.inc: mklocked.sh $(TOPDIR)/.config
|
||||||
@echo "MK: ld-locked.inc"
|
@echo "MK: ld-locked.inc"
|
||||||
@./mklocked.sh "$(TOPDIR)"
|
@./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)
|
# Create the locked.r file containing all of the code (except the start-up code)
|
||||||
# that needs to lie in the locked text region.
|
# 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"
|
@echo "LD: locked.r"
|
||||||
@$(LD) -o $@ $(PASS1_LDFLAGS) $(PASS1_LIBPATHS) --start-group $(PASS1_LDLIBS) --end-group $(PASS1_LIBGCC)
|
@$(LD) -o $@ $(PASS1_LDFLAGS) $(PASS1_LIBPATHS) --start-group $(PASS1_LDLIBS) --end-group $(PASS1_LIBGCC)
|
||||||
@echo "NM: locked.map"
|
|
||||||
@$(NM) $@ > locked.map
|
@$(NM) $@ > locked.map
|
||||||
@fgrep " U " locked.map | grep -v os_start
|
@fgrep " U " locked.map | grep -v os_start
|
||||||
@echo "SZ:"
|
|
||||||
@$(CROSSDEV)size $@
|
@$(CROSSDEV)size $@
|
||||||
|
|
||||||
|
$(PASS1_SRCDIR)/locked.r: locked.r
|
||||||
|
@cp -a locked.r $(TOPDIR)/$(PASS1_SRCDIR)/locked.r
|
||||||
|
|
||||||
.depend:
|
.depend:
|
||||||
|
|
||||||
depend: .depend
|
depend: .depend
|
||||||
|
|
|
@ -37,8 +37,7 @@ INCLUDE ld-locked.inc
|
||||||
OUTPUT_ARCH(arm)
|
OUTPUT_ARCH(arm)
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
.locked : {
|
.text.locked : { *(.text .text.*) }
|
||||||
*(.vectors)
|
.data : { *(.data) }
|
||||||
*(.text .text.*)
|
.bss : { *(.bss) *(COMMON) }
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -202,8 +202,8 @@ CONFIG_HAVE_LIBM=n
|
||||||
# Setup for a two-pass build
|
# Setup for a two-pass build
|
||||||
#
|
#
|
||||||
CONFIG_BUILD_2PASS=y
|
CONFIG_BUILD_2PASS=y
|
||||||
CONFIG_PASS1_DIR=configs/ea3131/locked
|
CONFIG_PASS1_BUILDIR=configs/ea3131/locked
|
||||||
CONFIG_PASS1_LIB=locked.r
|
CONFIG_PASS1_OBJECT=locked.r
|
||||||
|
|
||||||
#
|
#
|
||||||
# General OS setup
|
# General OS setup
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/* The LPC3131 has 192Kb of ISRAM beginning at virtual address 0x1102:8000.
|
/* The LPC3131 has 192Kb of ISRAM beginning at virtual address 0x1102:8000.
|
||||||
* LPC313x boot ROM expects the boot image be compiled with entry point at
|
* LPC313x boot ROM expects the boot image be compiled with entry point at
|
||||||
* 0x1102:9000. A 128b header will appear at this address (applied by
|
* 0x1102:9000. A 128b header will appear at this address (applied by
|
||||||
|
@ -45,6 +45,10 @@
|
||||||
* locked - Pages locked in memory. Start: 0x1102 8000 Size: 36Kb
|
* locked - Pages locked in memory. Start: 0x1102 8000 Size: 36Kb
|
||||||
* paged - Pages in nonvolatile store. Start: 0x1103 1000 Size: 384Kb
|
* paged - Pages in nonvolatile store. Start: 0x1103 1000 Size: 384Kb
|
||||||
* data - .data/.bss/heap. Start: 0x1109 1000 Size: 44Kb
|
* data - .data/.bss/heap. Start: 0x1109 1000 Size: 44Kb
|
||||||
|
*
|
||||||
|
* These region sizes must match the size in pages specified for each region
|
||||||
|
* in the NuttX configuration file: CONFIG_PAGING_NLOCKED, CONFIG_PAGING_NVPAGED,
|
||||||
|
* and CONFIG_PAGING_NDATA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
MEMORY
|
MEMORY
|
||||||
|
@ -61,10 +65,10 @@ SECTIONS
|
||||||
.locked : {
|
.locked : {
|
||||||
_slocked = ABSOLUTE(.);
|
_slocked = ABSOLUTE(.);
|
||||||
*(.vectors)
|
*(.vectors)
|
||||||
*(.locked)
|
locked.r (.text)
|
||||||
_elocked = ABSOLUTE(.);
|
_elocked = ABSOLUTE(.);
|
||||||
} >locked
|
} >locked
|
||||||
_eronly = ABSOLUTE(.); /* See below */
|
_eronly = ABSOLUTE(.);
|
||||||
|
|
||||||
.paged : {
|
.paged : {
|
||||||
_spaged = ABSOLUTE(.);
|
_spaged = ABSOLUTE(.);
|
||||||
|
|
Loading…
Reference in New Issue