mirror of
https://github.com/apache/nuttx.git
synced 2026-06-01 16:59:28 +08:00
Create an STM32F4Discovery configuration for testing uClibc++
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5300 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
@@ -3554,3 +3554,11 @@
|
|||||||
expects. That is usually the case if parameters are passed in
|
expects. That is usually the case if parameters are passed in
|
||||||
registers.
|
registers.
|
||||||
* libxx/libxx_cxa_atexit(): Implements __cxa_atexit()
|
* libxx/libxx_cxa_atexit(): Implements __cxa_atexit()
|
||||||
|
* configs/stm32f4discovery/cxxtest: New test that will be used to
|
||||||
|
verify the uClibc++ port (eventually). The sim platform turned not
|
||||||
|
to be a good platform for testing uClibc++. The sim example will not
|
||||||
|
run because the simulator will attempt to execute the static
|
||||||
|
constructors before main() starts. BUT... NuttX is not initialized
|
||||||
|
and this results in a crash. On the STM324Discovery, I will have
|
||||||
|
better control over when the static constructors run.
|
||||||
|
|
||||||
|
|||||||
+42
-38
@@ -36,58 +36,61 @@
|
|||||||
-include $(TOPDIR)/Make.defs
|
-include $(TOPDIR)/Make.defs
|
||||||
-include chip/Make.defs
|
-include chip/Make.defs
|
||||||
|
|
||||||
ARCH_SRCDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src
|
ARCH_SRCDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src
|
||||||
ifeq ($(CONFIG_ARCH_CORTEXM3),y) # Cortex-M3 is ARMv7-M
|
ifeq ($(CONFIG_ARCH_CORTEXM3),y) # Cortex-M3 is ARMv7-M
|
||||||
ARCH_SUBDIR = armv7-m
|
ARCH_SUBDIR = armv7-m
|
||||||
else
|
else
|
||||||
ifeq ($(CONFIG_ARCH_CORTEXM4),y) # Cortex-M4 is ARMv7E-M
|
ifeq ($(CONFIG_ARCH_CORTEXM4),y) # Cortex-M4 is ARMv7E-M
|
||||||
ARCH_SUBDIR = armv7-m
|
ARCH_SUBDIR = armv7-m
|
||||||
else
|
else
|
||||||
ARCH_SUBDIR = arm
|
ARCH_SUBDIR = arm
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(WINTOOL),y)
|
ifeq ($(WINTOOL),y)
|
||||||
NUTTX = "${shell cygpath -w $(TOPDIR)/nuttx}"
|
NUTTX = "${shell cygpath -w $(TOPDIR)/nuttx}"
|
||||||
CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/chip}" \
|
CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/chip}" \
|
||||||
-I "${shell cygpath -w $(ARCH_SRCDIR)/common}" \
|
-I "${shell cygpath -w $(ARCH_SRCDIR)/common}" \
|
||||||
-I "${shell cygpath -w $(ARCH_SRCDIR)/$(ARCH_SUBDIR)}" \
|
-I "${shell cygpath -w $(ARCH_SRCDIR)/$(ARCH_SUBDIR)}" \
|
||||||
-I "${shell cygpath -w $(TOPDIR)/sched}"
|
-I "${shell cygpath -w $(TOPDIR)/sched}"
|
||||||
else
|
else
|
||||||
NUTTX = $(TOPDIR)/nuttx
|
NUTTX = $(TOPDIR)/nuttx
|
||||||
CFLAGS += -I$(ARCH_SRCDIR)/chip -I$(ARCH_SRCDIR)/common \
|
CFLAGS += -I$(ARCH_SRCDIR)/chip -I$(ARCH_SRCDIR)/common \
|
||||||
-I$(ARCH_SRCDIR)/$(ARCH_SUBDIR) -I$(TOPDIR)/sched
|
-I$(ARCH_SRCDIR)/$(ARCH_SUBDIR) -I$(TOPDIR)/sched
|
||||||
endif
|
endif
|
||||||
|
|
||||||
HEAD_OBJ = $(HEAD_ASRC:.S=$(OBJEXT))
|
HEAD_OBJ = $(HEAD_ASRC:.S=$(OBJEXT))
|
||||||
|
|
||||||
ASRCS = $(CHIP_ASRCS) $(CMN_ASRCS)
|
ASRCS = $(CHIP_ASRCS) $(CMN_ASRCS)
|
||||||
AOBJS = $(ASRCS:.S=$(OBJEXT))
|
AOBJS = $(ASRCS:.S=$(OBJEXT))
|
||||||
|
|
||||||
CSRCS = $(CHIP_CSRCS) $(CMN_CSRCS)
|
CSRCS = $(CHIP_CSRCS) $(CMN_CSRCS)
|
||||||
COBJS = $(CSRCS:.c=$(OBJEXT))
|
COBJS = $(CSRCS:.c=$(OBJEXT))
|
||||||
|
|
||||||
SRCS = $(ASRCS) $(CSRCS)
|
SRCS = $(ASRCS) $(CSRCS)
|
||||||
OBJS = $(AOBJS) $(COBJS)
|
OBJS = $(AOBJS) $(COBJS)
|
||||||
|
|
||||||
LDFLAGS = $(ARCHSCRIPT)
|
LDFLAGS = $(ARCHSCRIPT)
|
||||||
EXTRA_LIBS ?=
|
|
||||||
|
|
||||||
LINKLIBS =
|
EXTRA_LIBS ?=
|
||||||
|
EXTRA_LIBPATHS ?=
|
||||||
|
|
||||||
|
LINKLIBS =
|
||||||
ifeq ($(WINTOOL),y)
|
ifeq ($(WINTOOL),y)
|
||||||
LIBPATHS = ${shell for path in $(LINKLIBS); do dir=`dirname $(TOPDIR)/$$path`;echo "-L\"`cygpath -w $$dir`\"";done}
|
LIBPATHS = ${shell for path in $(LINKLIBS); do dir=`dirname $(TOPDIR)/$$path`;echo "-L\"`cygpath -w $$dir`\"";done}
|
||||||
LIBPATHS += -L"${shell cygpath -w $(BOARDDIR)}"
|
LIBPATHS += -L"${shell cygpath -w $(BOARDDIR)}"
|
||||||
else
|
else
|
||||||
LIBPATHS = $(addprefix -L$(TOPDIR)/,$(dir $(LINKLIBS)))
|
LIBPATHS = $(addprefix -L$(TOPDIR)/,$(dir $(LINKLIBS)))
|
||||||
LIBPATHS += -L"$(BOARDDIR)"
|
LIBPATHS += -L"$(BOARDDIR)"
|
||||||
endif
|
endif
|
||||||
LDLIBS = $(patsubst lib%,-l%,$(basename $(notdir $(LINKLIBS))))
|
LDLIBS = $(patsubst lib%,-l%,$(basename $(notdir $(LINKLIBS))))
|
||||||
|
|
||||||
BOARDDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src/board
|
BOARDDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src/board
|
||||||
|
|
||||||
LIBGCC = "${shell $(CC) $(ARCHCPUFLAGS) -print-libgcc-file-name}"
|
LIBGCC = "${shell $(CC) $(ARCHCPUFLAGS) -print-libgcc-file-name}"
|
||||||
|
GCC_LIBDIR := ${shell dirname $(LIBGCC)}
|
||||||
|
|
||||||
VPATH = chip:common:$(ARCH_SUBDIR)
|
VPATH = chip:common:$(ARCH_SUBDIR)
|
||||||
|
|
||||||
all: $(HEAD_OBJ) libarch$(LIBEXT)
|
all: $(HEAD_OBJ) libarch$(LIBEXT)
|
||||||
|
|
||||||
@@ -101,7 +104,7 @@ $(COBJS): %$(OBJEXT): %.c
|
|||||||
|
|
||||||
libarch$(LIBEXT): $(OBJS)
|
libarch$(LIBEXT): $(OBJS)
|
||||||
$(Q) ( for obj in $(OBJS) ; do \
|
$(Q) ( for obj in $(OBJS) ; do \
|
||||||
$(call ARCHIVE, $@, $${obj}); \
|
$(call ARCHIVE, $@, $${obj}); \
|
||||||
done ; )
|
done ; )
|
||||||
|
|
||||||
board/libboard$(LIBEXT):
|
board/libboard$(LIBEXT):
|
||||||
@@ -109,7 +112,8 @@ board/libboard$(LIBEXT):
|
|||||||
|
|
||||||
nuttx: $(HEAD_OBJ) board/libboard$(LIBEXT)
|
nuttx: $(HEAD_OBJ) board/libboard$(LIBEXT)
|
||||||
$(Q) echo "LD: nuttx"
|
$(Q) echo "LD: nuttx"
|
||||||
$(Q) $(LD) --entry=__start $(LDFLAGS) $(LIBPATHS) -o $(NUTTX)$(EXEEXT) $(HEAD_OBJ) $(EXTRA_OBJS) \
|
$(Q) $(LD) --entry=__start $(LDFLAGS) $(LIBPATHS) $(EXTRA_LIBPATHS) \
|
||||||
|
-o $(NUTTX)$(EXEEXT) $(HEAD_OBJ) $(EXTRA_OBJS) \
|
||||||
--start-group $(LDLIBS) -lboard $(EXTRA_LIBS) $(LIBGCC) --end-group
|
--start-group $(LDLIBS) -lboard $(EXTRA_LIBS) $(LIBGCC) --end-group
|
||||||
$(Q) $(NM) $(NUTTX)$(EXEEXT) | \
|
$(Q) $(NM) $(NUTTX)$(EXEEXT) | \
|
||||||
grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
|
grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
|
||||||
@@ -122,10 +126,10 @@ nuttx: $(HEAD_OBJ) board/libboard$(LIBEXT)
|
|||||||
export_head: board/libboard$(LIBEXT) $(HEAD_OBJ)
|
export_head: board/libboard$(LIBEXT) $(HEAD_OBJ)
|
||||||
ifneq ($(HEAD_OBJ),)
|
ifneq ($(HEAD_OBJ),)
|
||||||
$(Q) if [ -d "$(EXPORT_DIR)/startup" ]; then \
|
$(Q) if [ -d "$(EXPORT_DIR)/startup" ]; then \
|
||||||
cp -f $(HEAD_OBJ) "$(EXPORT_DIR)/startup"; \
|
cp -f $(HEAD_OBJ) "$(EXPORT_DIR)/startup"; \
|
||||||
else \
|
else \
|
||||||
echo "$(EXPORT_DIR)/startup does not exist"; \
|
echo "$(EXPORT_DIR)/startup does not exist"; \
|
||||||
exit 1; \
|
exit 1; \
|
||||||
fi
|
fi
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -133,7 +137,7 @@ endif
|
|||||||
|
|
||||||
.depend: Makefile chip/Make.defs $(SRCS)
|
.depend: Makefile chip/Make.defs $(SRCS)
|
||||||
$(Q) if [ -e board/Makefile ]; then \
|
$(Q) if [ -e board/Makefile ]; then \
|
||||||
$(MAKE) -C board TOPDIR="$(TOPDIR)" depend ; \
|
$(MAKE) -C board TOPDIR="$(TOPDIR)" depend ; \
|
||||||
fi
|
fi
|
||||||
$(Q) $(MKDEP) --dep-path chip --dep-path common --dep-path $(ARCH_SUBDIR) \
|
$(Q) $(MKDEP) --dep-path chip --dep-path common --dep-path $(ARCH_SUBDIR) \
|
||||||
$(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
|
$(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
|
||||||
@@ -143,14 +147,14 @@ depend: .depend
|
|||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(Q) if [ -e board/Makefile ]; then \
|
$(Q) if [ -e board/Makefile ]; then \
|
||||||
$(MAKE) -C board TOPDIR="$(TOPDIR)" clean ; \
|
$(MAKE) -C board TOPDIR="$(TOPDIR)" clean ; \
|
||||||
fi
|
fi
|
||||||
$(Q) rm -f libarch$(LIBEXT) *~ .*.swp
|
$(Q) rm -f libarch$(LIBEXT) *~ .*.swp
|
||||||
$(call CLEAN)
|
$(call CLEAN)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
$(Q) if [ -e board/Makefile ]; then \
|
$(Q) if [ -e board/Makefile ]; then \
|
||||||
$(MAKE) -C board TOPDIR="$(TOPDIR)" distclean ; \
|
$(MAKE) -C board TOPDIR="$(TOPDIR)" distclean ; \
|
||||||
fi
|
fi
|
||||||
$(Q) rm -f Make.dep .depend
|
$(Q) rm -f Make.dep .depend
|
||||||
|
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ endif
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
EXTRA_LIBS ?=
|
EXTRA_LIBS ?=
|
||||||
|
EXTRA_LIBPATHS ?=
|
||||||
|
|
||||||
ifeq ($(CONFIG_FS_FAT),y)
|
ifeq ($(CONFIG_FS_FAT),y)
|
||||||
STDLIBS += -lz
|
STDLIBS += -lz
|
||||||
@@ -108,9 +109,6 @@ endif
|
|||||||
|
|
||||||
STDLIBS += -lc
|
STDLIBS += -lc
|
||||||
|
|
||||||
LIBGCC := "${shell $(CC) $(ARCHCPUFLAGS) -print-libgcc-file-name}"
|
|
||||||
GCC_LIBDIR := ${shell dirname $(LIBGCC)}
|
|
||||||
|
|
||||||
# Determine which objects are required in the link. The
|
# Determine which objects are required in the link. The
|
||||||
# up_head object normally draws in all that is needed, but
|
# up_head object normally draws in all that is needed, but
|
||||||
# there are a fews that must be included because they
|
# there are a fews that must be included because they
|
||||||
@@ -134,7 +132,7 @@ LDLIBS = $(patsubst lib%,-l%,$(basename $(notdir $(LINKLIBS))))
|
|||||||
|
|
||||||
# Add the board-specific library and directory
|
# Add the board-specific library and directory
|
||||||
|
|
||||||
LDPATHS += -L board -L $(GCC_LIBDIR)
|
LDPATHS += -L board
|
||||||
LDLIBS += -lboard
|
LDLIBS += -lboard
|
||||||
|
|
||||||
# Make targets begin here
|
# Make targets begin here
|
||||||
@@ -181,7 +179,7 @@ Cygwin-names.dat: nuttx-names.dat
|
|||||||
|
|
||||||
nuttx.rel : libarch$(LIBEXT) board/libboard$(LIBEXT) $(HOSTOS)-names.dat $(LINKOBJS)
|
nuttx.rel : libarch$(LIBEXT) board/libboard$(LIBEXT) $(HOSTOS)-names.dat $(LINKOBJS)
|
||||||
$(Q) echo "LD: nuttx.rel"
|
$(Q) echo "LD: nuttx.rel"
|
||||||
$(Q) $(LD) -r $(LDLINKFLAGS) $(LDPATHS) -o $@ $(REQUIREDOBJS) --start-group $(LDLIBS) $(EXTRA_LIBS) --end-group
|
$(Q) $(LD) -r $(LDLINKFLAGS) $(LDPATHS) $(EXTRA_LIBPATHS) -o $@ $(REQUIREDOBJS) --start-group $(LDLIBS) $(EXTRA_LIBS) --end-group
|
||||||
$(Q) $(OBJCOPY) --redefine-syms=$(HOSTOS)-names.dat $@
|
$(Q) $(OBJCOPY) --redefine-syms=$(HOSTOS)-names.dat $@
|
||||||
|
|
||||||
# Generate the final NuttX binary by linking the host-specific objects with the NuttX
|
# Generate the final NuttX binary by linking the host-specific objects with the NuttX
|
||||||
|
|||||||
@@ -215,18 +215,18 @@ cxxtest
|
|||||||
b. Execute 'make menuconfig' in nuttx/ in order to start the
|
b. Execute 'make menuconfig' in nuttx/ in order to start the
|
||||||
reconfiguration process.
|
reconfiguration process.
|
||||||
|
|
||||||
3. At presenet (2012/11/02), this example builds only with exceptions
|
3. At present (2012/11/02), this example builds only with exceptions
|
||||||
disabled (CONFIG_UCLIBCXX_EXCEPTIONS=n). And even then, it will
|
disabled (CONFIG_UCLIBCXX_EXCEPTIONS=n). And even then, it will
|
||||||
not run.
|
not run.
|
||||||
|
|
||||||
The reason that the example will will not run on the simulator has
|
The reason that the example will not run on the simulator has
|
||||||
to do with when static constructors are enabled: In the simulator
|
to do with when static constructors are enabled: In the simulator
|
||||||
it will attempt to execute the static constructros before main()
|
it will attempt to execute the static constructors before main()
|
||||||
starts. BUT... NuttX is not initialized and this results in a crash.
|
starts. BUT... NuttX is not initialized and this results in a crash.
|
||||||
|
|
||||||
To really use this example, I will have to think of some way to
|
To really use this example, I will have to think of some way to
|
||||||
postpone running C++ static initializers until NuttX has been
|
postpone running C++ static initializers until NuttX has been
|
||||||
initialied.
|
initialized.
|
||||||
|
|
||||||
mount
|
mount
|
||||||
|
|
||||||
|
|||||||
@@ -93,6 +93,10 @@ LDLINKFLAGS = $(ARCHSCRIPT) # Link flags used with $(LD)
|
|||||||
CCLINKFLAGS = $(ARCHSCRIPT) # Link flags used with $(CC)
|
CCLINKFLAGS = $(ARCHSCRIPT) # Link flags used with $(CC)
|
||||||
LDFLAGS = $(ARCHSCRIPT) # For backward compatibility, same as CCLINKFLAGS
|
LDFLAGS = $(ARCHSCRIPT) # For backward compatibility, same as CCLINKFLAGS
|
||||||
|
|
||||||
|
LIBSUPXX = ${shell $(CC) --print-file-name=libsupc++.a}
|
||||||
|
EXTRA_LIBPATHS = -L "${shell dirname "$(LIBSUPXX)"}"
|
||||||
|
EXTRA_LIBS = -lsupc++
|
||||||
|
|
||||||
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
|
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||||
LDLINKFLAGS += -g
|
LDLINKFLAGS += -g
|
||||||
CCLINKFLAGS += -g
|
CCLINKFLAGS += -g
|
||||||
@@ -105,8 +109,6 @@ ifeq ($(CONFIG_SIM_M32),y)
|
|||||||
LDFLAGS += -m32
|
LDFLAGS += -m32
|
||||||
endif
|
endif
|
||||||
|
|
||||||
EXTRA_LIBS = -lsupc++
|
|
||||||
|
|
||||||
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
||||||
|
|
||||||
HOSTCC = gcc
|
HOSTCC = gcc
|
||||||
|
|||||||
@@ -288,7 +288,7 @@ CONFIG_HAVE_CXX=y
|
|||||||
# uClibc++ Standard C++ Library
|
# uClibc++ Standard C++ Library
|
||||||
#
|
#
|
||||||
CONFIG_UCLIBCXX=y
|
CONFIG_UCLIBCXX=y
|
||||||
CONFIG_UCLIBCXX_EXCEPTION=y
|
# CONFIG_UCLIBCXX_EXCEPTION is not set
|
||||||
CONFIG_UCLIBCXX_IOSTREAM_BUFSIZE=32
|
CONFIG_UCLIBCXX_IOSTREAM_BUFSIZE=32
|
||||||
CONFIG_UCLIBCXX_HAVE_LIBSUPCXX=y
|
CONFIG_UCLIBCXX_HAVE_LIBSUPCXX=y
|
||||||
|
|
||||||
|
|||||||
@@ -36,76 +36,76 @@
|
|||||||
include ${TOPDIR}/.config
|
include ${TOPDIR}/.config
|
||||||
include ${TOPDIR}/tools/Config.mk
|
include ${TOPDIR}/tools/Config.mk
|
||||||
|
|
||||||
HOSTOS = ${shell uname -o 2>/dev/null || echo "Other"}
|
HOSTOS = ${shell uname -o 2>/dev/null || echo "Other"}
|
||||||
|
|
||||||
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
|
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||||
ARCHOPTIMIZATION = -g
|
ARCHOPTIMIZATION = -g
|
||||||
else
|
else
|
||||||
ARCHOPTIMIZATION = -O2
|
ARCHOPTIMIZATION = -O2
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ARCHCPUFLAGS = -fno-builtin
|
ARCHCPUFLAGS = -fno-builtin
|
||||||
ARCHCPUFLAGSXX = -fno-builtin -fno-exceptions -fno-rtti
|
ARCHCPUFLAGSXX = -fno-builtin -fno-exceptions -fno-rtti
|
||||||
ARCHPICFLAGS = -fpic
|
ARCHPICFLAGS = -fpic
|
||||||
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
|
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
|
||||||
ARCHWARNINGSXX = -Wall -Wshadow
|
ARCHWARNINGSXX = -Wall -Wshadow
|
||||||
ARCHDEFINES =
|
ARCHDEFINES =
|
||||||
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
||||||
ARCHINCLUDESXX = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
ARCHINCLUDESXX = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
||||||
ARCHSCRIPT =
|
ARCHSCRIPT =
|
||||||
|
|
||||||
ifeq ($(CONFIG_SIM_M32),y)
|
ifeq ($(CONFIG_SIM_M32),y)
|
||||||
ARCHCPUFLAGS += -m32
|
ARCHCPUFLAGS += -m32
|
||||||
ARCHCPUFLAGSXX += -m32
|
ARCHCPUFLAGSXX += -m32
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CROSSDEV =
|
CROSSDEV =
|
||||||
CC = $(CROSSDEV)gcc
|
CC = $(CROSSDEV)gcc
|
||||||
CXX = $(CROSSDEV)g++
|
CXX = $(CROSSDEV)g++
|
||||||
CPP = $(CROSSDEV)gcc -E
|
CPP = $(CROSSDEV)gcc -E
|
||||||
LD = $(CROSSDEV)ld
|
LD = $(CROSSDEV)ld
|
||||||
AR = $(CROSSDEV)ar rcs
|
AR = $(CROSSDEV)ar rcs
|
||||||
NM = $(CROSSDEV)nm
|
NM = $(CROSSDEV)nm
|
||||||
OBJCOPY = $(CROSSDEV)objcopy
|
OBJCOPY = $(CROSSDEV)objcopy
|
||||||
OBJDUMP = $(CROSSDEV)objdump
|
OBJDUMP = $(CROSSDEV)objdump
|
||||||
|
|
||||||
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
|
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
|
||||||
$(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
|
$(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
|
||||||
CXXFLAGS = $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) \
|
CXXFLAGS = $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) \
|
||||||
$(ARCHCPUFLAGSXX) $(ARCHINCLUDESXX) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
|
$(ARCHCPUFLAGSXX) $(ARCHINCLUDESXX) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
|
||||||
CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
|
CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
|
||||||
AFLAGS = $(CFLAGS) -D__ASSEMBLY__
|
AFLAGS = $(CFLAGS) -D__ASSEMBLY__
|
||||||
|
|
||||||
OBJEXT = .o
|
OBJEXT = .o
|
||||||
LIBEXT = .a
|
LIBEXT = .a
|
||||||
|
|
||||||
ifeq ($(HOSTOS),Cygwin)
|
ifeq ($(HOSTOS),Cygwin)
|
||||||
EXEEXT = .exe
|
EXEEXT = .exe
|
||||||
else
|
else
|
||||||
EXEEXT =
|
EXEEXT =
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LDLINKFLAGS = $(ARCHSCRIPT) # Link flags used with $(LD)
|
LDLINKFLAGS = $(ARCHSCRIPT) # Link flags used with $(LD)
|
||||||
CCLINKFLAGS = $(ARCHSCRIPT) # Link flags used with $(CC)
|
CCLINKFLAGS = $(ARCHSCRIPT) # Link flags used with $(CC)
|
||||||
LDFLAGS = $(ARCHSCRIPT) # For backward compatibility, same as CCLINKFLAGS
|
LDFLAGS = $(ARCHSCRIPT) # For backward compatibility, same as CCLINKFLAGS
|
||||||
|
|
||||||
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
|
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||||
LDLINKFLAGS += -g
|
LDLINKFLAGS += -g
|
||||||
CCLINKFLAGS += -g
|
CCLINKFLAGS += -g
|
||||||
LDFLAGS += -g
|
LDFLAGS += -g
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_SIM_M32),y)
|
ifeq ($(CONFIG_SIM_M32),y)
|
||||||
LDLINKFLAGS += -melf_i386
|
LDLINKFLAGS += -melf_i386
|
||||||
CCLINKFLAGS += -m32
|
CCLINKFLAGS += -m32
|
||||||
LDFLAGS += -m32
|
LDFLAGS += -m32
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
||||||
|
|
||||||
HOSTCC = gcc
|
HOSTCC = gcc
|
||||||
HOSTINCLUDES = -I.
|
HOSTINCLUDES = -I.
|
||||||
HOSTCFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
|
HOSTCFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
|
||||||
$(ARCHCPUFLAGS) $(HOSTINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
|
$(ARCHCPUFLAGS) $(HOSTINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
|
||||||
HOSTLDFLAGS =
|
HOSTLDFLAGS =
|
||||||
|
|||||||
@@ -982,6 +982,35 @@ can be selected as follow:
|
|||||||
|
|
||||||
Where <subdir> is one of the following:
|
Where <subdir> is one of the following:
|
||||||
|
|
||||||
|
cxxtest:
|
||||||
|
-------
|
||||||
|
|
||||||
|
The C++ standard libary test at apps/examples/cxxtest configuration. This
|
||||||
|
test is used to verify the uClibc++ port to NuttX. This configuration may
|
||||||
|
be selected as follows:
|
||||||
|
|
||||||
|
cd <nuttx-directory>/tools
|
||||||
|
./configure.sh sim/cxxtest
|
||||||
|
|
||||||
|
NOTES:
|
||||||
|
|
||||||
|
1. Before you can use this example, you must first install the uClibc++
|
||||||
|
C++ library. This is located outside of the NuttX source tree at
|
||||||
|
misc/uClibc++ in SVN. See the README.txt file for instructions on
|
||||||
|
how to install uClibc++
|
||||||
|
|
||||||
|
2. This configuration uses the mconf-based configuration tool. To
|
||||||
|
change this configuration using that tool, you should:
|
||||||
|
|
||||||
|
a. Build and install the mconf tool. See nuttx/README.txt and
|
||||||
|
misc/tools/
|
||||||
|
|
||||||
|
b. Execute 'make menuconfig' in nuttx/ in order to start the
|
||||||
|
reconfiguration process.
|
||||||
|
|
||||||
|
3. At present (2012/11/02), this example builds only with exceptions
|
||||||
|
disabled (CONFIG_UCLIBCXX_EXCEPTIONS=n).
|
||||||
|
|
||||||
elf:
|
elf:
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,184 @@
|
|||||||
|
############################################################################
|
||||||
|
# configs/stm32f4discovery/cxxtest/Make.defs
|
||||||
|
#
|
||||||
|
# Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions
|
||||||
|
# are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in
|
||||||
|
# the documentation and/or other materials provided with the
|
||||||
|
# distribution.
|
||||||
|
# 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
# used to endorse or promote products derived from this software
|
||||||
|
# without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
############################################################################
|
||||||
|
|
||||||
|
include ${TOPDIR}/.config
|
||||||
|
include ${TOPDIR}/tools/Config.mk
|
||||||
|
|
||||||
|
# Setup for the selected toolchain
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_STM32_CODESOURCERYW),y)
|
||||||
|
# CodeSourcery under Windows
|
||||||
|
CROSSDEV = arm-none-eabi-
|
||||||
|
ARCROSSDEV = arm-none-eabi-
|
||||||
|
WINTOOL = y
|
||||||
|
ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
|
||||||
|
endif
|
||||||
|
ifeq ($(CONFIG_STM32_CODESOURCERYL),y)
|
||||||
|
# CodeSourcery under Linux
|
||||||
|
CROSSDEV = arm-none-eabi-
|
||||||
|
ARCROSSDEV = arm-none-eabi-
|
||||||
|
ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
|
||||||
|
MAXOPTIMIZATION = -O2
|
||||||
|
endif
|
||||||
|
ifeq ($(CONFIG_STM32_ATOLLIC_LITE),y)
|
||||||
|
# Atollic toolchain under Windows
|
||||||
|
CROSSDEV = arm-atollic-eabi-
|
||||||
|
ARCROSSDEV =
|
||||||
|
WINTOOL = y
|
||||||
|
ifeq ($(CONFIG_ARCH_FPU),y)
|
||||||
|
ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard
|
||||||
|
else
|
||||||
|
ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
ifeq ($(CONFIG_STM32_ATOLLIC_PRO),y)
|
||||||
|
# Atollic toolchain under Windows
|
||||||
|
CROSSDEV = arm-atollic-eabi-
|
||||||
|
ARCROSSDEV = arm-atollic-eabi-
|
||||||
|
WINTOOL = y
|
||||||
|
ifeq ($(CONFIG_ARCH_FPU),y)
|
||||||
|
ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard
|
||||||
|
else
|
||||||
|
ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
ifeq ($(CONFIG_STM32_DEVKITARM),y)
|
||||||
|
# devkitARM under Windows
|
||||||
|
CROSSDEV = arm-eabi-
|
||||||
|
ARCROSSDEV = arm-eabi-
|
||||||
|
WINTOOL = y
|
||||||
|
ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
|
||||||
|
endif
|
||||||
|
ifeq ($(CONFIG_STM32_RAISONANCE),y)
|
||||||
|
# Raisonance RIDE7 under Windows
|
||||||
|
CROSSDEV = arm-none-eabi-
|
||||||
|
ARCROSSDEV = arm-none-eabi-
|
||||||
|
WINTOOL = y
|
||||||
|
ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
|
||||||
|
endif
|
||||||
|
ifeq ($(CONFIG_STM32_BUILDROOT),y)
|
||||||
|
# NuttX buildroot under Linux or Cygwin
|
||||||
|
# OABI
|
||||||
|
# CROSSDEV = arm-nuttx-elf-
|
||||||
|
# ARCROSSDEV = arm-nuttx-elf-
|
||||||
|
# ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
|
||||||
|
# EABI
|
||||||
|
CROSSDEV = arm-nuttx-eabi-
|
||||||
|
ARCROSSDEV = arm-nuttx-eabi-
|
||||||
|
ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
|
||||||
|
MAXOPTIMIZATION = -Os
|
||||||
|
endif
|
||||||
|
|
||||||
|
CC = $(CROSSDEV)gcc
|
||||||
|
CXX = $(CROSSDEV)g++
|
||||||
|
CPP = $(CROSSDEV)gcc -E
|
||||||
|
LD = $(CROSSDEV)ld
|
||||||
|
AR = $(ARCROSSDEV)ar rcs
|
||||||
|
NM = $(ARCROSSDEV)nm
|
||||||
|
OBJCOPY = $(CROSSDEV)objcopy
|
||||||
|
OBJDUMP = $(CROSSDEV)objdump
|
||||||
|
|
||||||
|
ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'}
|
||||||
|
ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1}
|
||||||
|
|
||||||
|
LDSCRIPT = ld.script
|
||||||
|
LIBSUPXX = ${shell $(CC) --print-file-name=libsupc++.a}
|
||||||
|
EXTRA_LIBPATHS = -L "${shell dirname "$(LIBSUPXX)"}"
|
||||||
|
EXTRA_LIBS = -lsupc++
|
||||||
|
|
||||||
|
ifeq ($(WINTOOL),y)
|
||||||
|
# Windows-native toolchains
|
||||||
|
DIRLINK = $(TOPDIR)/tools/winlink.sh
|
||||||
|
DIRUNLINK = $(TOPDIR)/tools/unlink.sh
|
||||||
|
MKDEP = $(TOPDIR)/tools/mknulldeps.sh
|
||||||
|
ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}"
|
||||||
|
ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" \
|
||||||
|
-isystem "${shell cygpath -w $(TOPDIR)/include/cxx}" \
|
||||||
|
-isystem "${shell cygpath -w $(TOPDIR)/include/uClibc++}"
|
||||||
|
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)}"
|
||||||
|
MAXOPTIMIZATION = -O2
|
||||||
|
else
|
||||||
|
# Linux/Cygwin-native toolchain
|
||||||
|
MKDEP = $(TOPDIR)/tools/mkdeps.sh
|
||||||
|
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
||||||
|
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include \
|
||||||
|
-isystem $(TOPDIR)/include/cxx -isystem $(TOPDIR)/include/uClibc++
|
||||||
|
ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ("${CONFIG_DEBUG_SYMBOLS}","y")
|
||||||
|
ARCHOPTIMIZATION = -g
|
||||||
|
else
|
||||||
|
ARCHOPTIMIZATION = $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer
|
||||||
|
endif
|
||||||
|
|
||||||
|
ARCHCFLAGS = -fno-builtin
|
||||||
|
ifeq ($(CONFIG_UCLIBCXX_EXCEPTION),y)
|
||||||
|
ARCHCPUFLAGSXX = -fno-builtin
|
||||||
|
else
|
||||||
|
ARCHCPUFLAGSXX = -fno-builtin -fno-exceptions
|
||||||
|
endif
|
||||||
|
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
|
||||||
|
ARCHWARNINGSXX = -Wall -Wshadow
|
||||||
|
ARCHDEFINES =
|
||||||
|
ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
|
||||||
|
|
||||||
|
CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
|
||||||
|
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
|
||||||
|
CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
|
||||||
|
CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
|
||||||
|
CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
|
||||||
|
AFLAGS = $(CFLAGS) -D__ASSEMBLY__
|
||||||
|
|
||||||
|
NXFLATLDFLAGS1 = -r -d -warn-common
|
||||||
|
NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections
|
||||||
|
LDNXFLATFLAGS = -e main -s 2048
|
||||||
|
|
||||||
|
OBJEXT = .o
|
||||||
|
LIBEXT = .a
|
||||||
|
EXEEXT =
|
||||||
|
|
||||||
|
ifneq ($(CROSSDEV),arm-nuttx-elf-)
|
||||||
|
LDFLAGS += -nostartfiles -nodefaultlibs
|
||||||
|
endif
|
||||||
|
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||||
|
LDFLAGS += -g
|
||||||
|
endif
|
||||||
|
|
||||||
|
HOSTCC = gcc
|
||||||
|
HOSTINCLUDES = -I.
|
||||||
|
HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -g -pipe
|
||||||
|
HOSTLDFLAGS =
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
Executable
+75
@@ -0,0 +1,75 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# configs/stm32f4discovery/cxxtest/setenv.sh
|
||||||
|
#
|
||||||
|
# Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions
|
||||||
|
# are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in
|
||||||
|
# the documentation and/or other materials provided with the
|
||||||
|
# distribution.
|
||||||
|
# 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
# used to endorse or promote products derived from this software
|
||||||
|
# without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ "$_" = "$0" ] ; then
|
||||||
|
echo "You must source this script, not run it!" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
WD=`pwd`
|
||||||
|
if [ ! -x "setenv.sh" ]; then
|
||||||
|
echo "This script must be executed from the top-level NuttX build directory"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${PATH_ORIG}" ]; then
|
||||||
|
export PATH_ORIG="${PATH}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# This is the Cygwin path to the location where I installed the RIDE
|
||||||
|
# toolchain under windows. You will also have to edit this if you install
|
||||||
|
# the RIDE toolchain in any other location
|
||||||
|
#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/Raisonance/Ride/arm-gcc/bin"
|
||||||
|
|
||||||
|
# This is the Cygwin path to the location where I installed the CodeSourcery
|
||||||
|
# toolchain under windows. You will also have to edit this if you install
|
||||||
|
# the CodeSourcery toolchain in any other location
|
||||||
|
export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin"
|
||||||
|
|
||||||
|
# These are the Cygwin paths to the locations where I installed the Atollic
|
||||||
|
# toolchain under windows. You will also have to edit this if you install
|
||||||
|
# the Atollic toolchain in any other location. /usr/bin is added before
|
||||||
|
# the Atollic bin path because there is are binaries named gcc.exe and g++.exe
|
||||||
|
# at those locations as well.
|
||||||
|
#export TOOLCHAIN_BIN="/usr/bin:/cygdrive/c/Program Files (x86)/Atollic/TrueSTUDIO for ARM Pro 2.3.0/ARMTools/bin"
|
||||||
|
#export TOOLCHAIN_BIN="/usr/bin:/cygdrive/c/Program Files (x86)/Atollic/TrueSTUDIO for STMicroelectronics STM32 Lite 2.3.0/ARMTools/bin"
|
||||||
|
|
||||||
|
# This is the Cygwin path to the location where I build the buildroot
|
||||||
|
# toolchain.
|
||||||
|
#export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin"
|
||||||
|
|
||||||
|
# Add the path to the toolchain to the PATH varialble
|
||||||
|
export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}"
|
||||||
|
|
||||||
|
echo "PATH : ${PATH}"
|
||||||
@@ -251,7 +251,7 @@ CONFIG_SDCLONE_DISABLE=y
|
|||||||
# CONFIG_SCHED_WAITPID is not set
|
# CONFIG_SCHED_WAITPID is not set
|
||||||
# CONFIG_SCHED_ATEXIT is not set
|
# CONFIG_SCHED_ATEXIT is not set
|
||||||
# CONFIG_SCHED_ONEXIT is not set
|
# CONFIG_SCHED_ONEXIT is not set
|
||||||
CONFIG_USER_ENTRYPOINT="elf_main"
|
CONFIG_USER_ENTRYPOINT="ostest_main"
|
||||||
CONFIG_DISABLE_OS_API=y
|
CONFIG_DISABLE_OS_API=y
|
||||||
# CONFIG_DISABLE_CLOCK is not set
|
# CONFIG_DISABLE_CLOCK is not set
|
||||||
# CONFIG_DISABLE_POSIX_TIMERS is not set
|
# CONFIG_DISABLE_POSIX_TIMERS is not set
|
||||||
|
|||||||
Reference in New Issue
Block a user