Olimex-stm32-p407: Add a NSH protected build configuration; Enable procfs/ in all configurations.

This commit is contained in:
Gregory Nutt 2017-01-23 10:38:54 -06:00
parent a06d26e044
commit 6f5a9eb451
17 changed files with 2290 additions and 16 deletions

View File

@ -30,9 +30,12 @@ The following peripherals are available in this configuration.
- CAN: Built in app 'can' works, but apart from that not really tested. - CAN: Built in app 'can' works, but apart from that not really tested.
- Ethernet: Ping to other station on the network works. - Ethernet: Ping to other station on the network works.
Configurations Configurations
============== ==============
Information Common to All Configurations
----------------------------------------
Each Olimex STM32-P407 configuration is maintained in a sub-directory and can be Each Olimex STM32-P407 configuration is maintained in a sub-directory and can be
selected as follow: selected as follow:
@ -41,12 +44,18 @@ selected as follow:
cd - cd -
. ./setenv.sh . ./setenv.sh
Where <subdir> is one of the following: Where <subdir> is one of the configuration sub-directories listed in the
following section.
nsh: Before sourcing the setenv.sh file above, you should examine it and perform
edits as necessary so that TOOLCHAIN_BIN is the correct path to the directory
than holds your toolchain binaries.
This is the NuttShell (NSH) using the NSH startup logic at And then build NuttX by simply typing the following. At the conclusion of
apps/examples/nsh. the make, the nuttx binary will reside in an ELF file called, simply, nuttx.
make oldconfig
make
NOTES: NOTES:
@ -72,7 +81,99 @@ Where <subdir> is one of the following:
buildroot toolchain. The host and/or toolchain selection can easily buildroot toolchain. The host and/or toolchain selection can easily
be changed with 'make menuconfig'. be changed with 'make menuconfig'.
4. Kernel Modules Configuration sub-directories
-----------------------------
The <subdir> that is provided above as an argument to the tools/configure.sh
must be is one of the following.
knsh:
This is identical to the nsh configuration below except that NuttX
is built as a PROTECTED mode, monolithic module and the user applications
are built separately.
It is recommends to use a special make command; not just 'make' but make
with the following two arguments:
make pass1 pass2
In the normal case (just 'make'), make will attempt to build both user-
and kernel-mode blobs more or less interleaved. That actual works!
However, for me it is very confusing so I prefer the above make command:
Make the user-space binaries first (pass1), then make the kernel-space
binaries (pass2)
NOTES:
1. At the end of the build, there will be several files in the top-level
NuttX build directory:
PASS1:
nuttx_user.elf - The pass1 user-space ELF file
nuttx_user.hex - The pass1 Intel HEX format file (selected in defconfig)
User.map - Symbols in the user-space ELF file
PASS2:
nuttx - The pass2 kernel-space ELF file
nuttx.hex - The pass2 Intel HEX file (selected in defconfig)
System.map - Symbols in the kernel-space ELF file
The J-Link programmer will except files in .hex, .mot, .srec, and .bin
formats.
2. Combining .hex files. If you plan to use the .hex files with your
debugger or FLASH utility, then you may need to combine the two hex
files into a single .hex file. Here is how you can do that.
a. The 'tail' of the nuttx.hex file should look something like this
(with my comments added):
$ tail nuttx.hex
# 00, data records
...
:10 9DC0 00 01000000000800006400020100001F0004
:10 9DD0 00 3B005A0078009700B500D400F300110151
:08 9DE0 00 30014E016D0100008D
# 05, Start Linear Address Record
:04 0000 05 0800 0419 D2
# 01, End Of File record
:00 0000 01 FF
Use an editor such as vi to remove the 05 and 01 records.
b. The 'head' of the nuttx_user.hex file should look something like
this (again with my comments added):
$ head nuttx_user.hex
# 04, Extended Linear Address Record
:02 0000 04 0801 F1
# 00, data records
:10 8000 00 BD89 01084C800108C8110208D01102087E
:10 8010 00 0010 00201C1000201C1000203C16002026
:10 8020 00 4D80 01085D80010869800108ED83010829
...
Nothing needs to be done here. The nuttx_user.hex file should
be fine.
c. Combine the edited nuttx.hex and un-edited nuttx_user.hex
file to produce a single combined hex file:
$ cat nuttx.hex nuttx_user.hex >combined.hex
Then use the combined.hex file with the to write the FLASH image.
If you do this a lot, you will probably want to invest a little time
to develop a tool to automate these steps.
nsh:
This is the NuttShell (NSH) using the NSH startup logic at
apps/examples/nsh.
NOTES:
1. Kernel Modules
I used this configuration for testing NuttX kernel modules with the I used this configuration for testing NuttX kernel modules with the
following configuration additions to the configuration file: following configuration additions to the configuration file:

View File

@ -0,0 +1,2 @@
/nuttx_user.elf

View File

@ -0,0 +1,122 @@
############################################################################
# configs/olimex-stm32-p407/kernel/Makefile
#
# Copyright (C) 2017 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)/Make.defs
# This is the directory for the board-specific header files
BOARD_INCLUDE = $(TOPDIR)$(DELIM)configs$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)include
# The entry point name (if none is provided in the .config file)
CONFIG_USER_ENTRYPOINT ?= user_start
ENTRYPT = $(patsubst "%",%,$(CONFIG_USER_ENTRYPOINT))
# Get the paths to the libraries and the links script path in format that
# is appropriate for the host OS
ifeq ($(WINTOOL),y)
# Windows-native toolchains
USER_LIBPATHS = ${shell for path in $(USERLIBS); do dir=`dirname $(TOPDIR)$(DELIM)$$path`;echo "-L\"`cygpath -w $$dir`\"";done}
USER_LDSCRIPT = -T "${shell cygpath -w $(TOPDIR)$(DELIM)configs$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)scripts$(DELIM)memory.ld}"
USER_LDSCRIPT += -T "${shell cygpath -w $(TOPDIR)$(DELIM)configs$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)scripts$(DELIM)user-space.ld}"
USER_HEXFILE += "${shell cygpath -w $(TOPDIR)$(DELIM)nuttx_user.hex}"
USER_SRECFILE += "${shell cygpath -w $(TOPDIR)$(DELIM)nuttx_user.srec}"
USER_BINFILE += "${shell cygpath -w $(TOPDIR)$(DELIM)nuttx_user.bin}"
else
# Linux/Cygwin-native toolchain
USER_LIBPATHS = $(addprefix -L$(TOPDIR)$(DELIM),$(dir $(USERLIBS)))
USER_LDSCRIPT = -T$(TOPDIR)$(DELIM)configs$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)scripts$(DELIM)memory.ld
USER_LDSCRIPT += -T$(TOPDIR)$(DELIM)configs$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)scripts$(DELIM)user-space.ld
USER_HEXFILE += "$(TOPDIR)$(DELIM)nuttx_user.hex"
USER_SRECFILE += "$(TOPDIR)$(DELIM)nuttx_user.srec"
USER_BINFILE += "$(TOPDIR)$(DELIM)nuttx_user.bin"
endif
USER_LDFLAGS = --undefined=$(ENTRYPT) --entry=$(ENTRYPT) $(USER_LDSCRIPT)
USER_LDLIBS = $(patsubst lib%,-l%,$(basename $(notdir $(USERLIBS))))
USER_LIBGCC = "${shell "$(CC)" $(ARCHCPUFLAGS) -print-libgcc-file-name}"
# Source files
CSRCS = stm32_userspace.c
COBJS = $(CSRCS:.c=$(OBJEXT))
OBJS = $(COBJS)
# Targets:
all: $(TOPDIR)$(DELIM)nuttx_user.elf $(TOPDIR)$(DELIM)User.map
.PHONY: nuttx_user.elf depend clean distclean
$(COBJS): %$(OBJEXT): %.c
$(call COMPILE, $<, $@)
# Create the nuttx_user.elf file containing all of the user-mode code
nuttx_user.elf: $(OBJS)
$(Q) $(LD) -o $@ $(USER_LDFLAGS) $(USER_LIBPATHS) $(OBJS) --start-group $(USER_LDLIBS) --end-group $(USER_LIBGCC)
$(TOPDIR)$(DELIM)nuttx_user.elf: nuttx_user.elf
@echo "LD: nuttx_user.elf"
$(Q) cp -a nuttx_user.elf $(TOPDIR)$(DELIM)nuttx_user.elf
ifeq ($(CONFIG_INTELHEX_BINARY),y)
@echo "CP: nuttx_user.hex"
$(Q) $(OBJCOPY) $(OBJCOPYARGS) -O ihex nuttx_user.elf $(USER_HEXFILE)
endif
ifeq ($(CONFIG_MOTOROLA_SREC),y)
@echo "CP: nuttx_user.srec"
$(Q) $(OBJCOPY) $(OBJCOPYARGS) -O srec nuttx_user.elf $(USER_SRECFILE)
endif
ifeq ($(CONFIG_RAW_BINARY),y)
@echo "CP: nuttx_user.bin"
$(Q) $(OBJCOPY) $(OBJCOPYARGS) -O binary nuttx_user.elf $(USER_BINFILE)
endif
$(TOPDIR)$(DELIM)User.map: nuttx_user.elf
@echo "MK: User.map"
$(Q) $(NM) nuttx_user.elf >$(TOPDIR)$(DELIM)User.map
$(Q) $(CROSSDEV)size nuttx_user.elf
.depend:
depend: .depend
clean:
$(call DELFILE, nuttx_user.elf)
$(call DELFILE, "$(TOPDIR)$(DELIM)nuttx_user.*")
$(call DELFILE, "$(TOPDIR)$(DELIM)User.map")
$(call CLEAN)
distclean: clean

View File

@ -0,0 +1,133 @@
/****************************************************************************
* configs/olimex-stm32-p407/kernel/stm32_userspace.c
*
* Copyright (C) 2017 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.
*
****************************************************************************/
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <stdlib.h>
#include <nuttx/arch.h>
#include <nuttx/mm/mm.h>
#include <nuttx/wqueue.h>
#include <nuttx/userspace.h>
#if defined(CONFIG_BUILD_PROTECTED) && !defined(__KERNEL__)
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Configuration ************************************************************/
#ifndef CONFIG_NUTTX_USERSPACE
# error "CONFIG_NUTTX_USERSPACE not defined"
#endif
#if CONFIG_NUTTX_USERSPACE != 0x08020000
# error "CONFIG_NUTTX_USERSPACE must be 0x08020000 to match memory.ld"
#endif
/****************************************************************************
* Public Data
****************************************************************************/
/* These 'addresses' of these values are setup by the linker script. They are
* not actual uint32_t storage locations! They are only used meaningfully in the
* following way:
*
* - The linker script defines, for example, the symbol_sdata.
* - The declaration extern uint32_t _sdata; makes C happy. C will believe
* that the value _sdata is the address of a uint32_t variable _data (it is
* not!).
* - We can recover the linker value then by simply taking the address of
* of _data. like: uint32_t *pdata = &_sdata;
*/
extern uint32_t _stext; /* Start of .text */
extern uint32_t _etext; /* End_1 of .text + .rodata */
extern const uint32_t _eronly; /* End+1 of read only section (.text + .rodata) */
extern uint32_t _sdata; /* Start of .data */
extern uint32_t _edata; /* End+1 of .data */
extern uint32_t _sbss; /* Start of .bss */
extern uint32_t _ebss; /* End+1 of .bss */
/* This is the user space entry point */
int CONFIG_USER_ENTRYPOINT(int argc, char *argv[]);
const struct userspace_s userspace __attribute__ ((section (".userspace"))) =
{
/* General memory map */
.us_entrypoint = (main_t)CONFIG_USER_ENTRYPOINT,
.us_textstart = (uintptr_t)&_stext,
.us_textend = (uintptr_t)&_etext,
.us_datasource = (uintptr_t)&_eronly,
.us_datastart = (uintptr_t)&_sdata,
.us_dataend = (uintptr_t)&_edata,
.us_bssstart = (uintptr_t)&_sbss,
.us_bssend = (uintptr_t)&_ebss,
/* Memory manager heap structure */
.us_heap = &g_mmheap,
/* Task/thread startup routines */
.task_startup = task_startup,
#ifndef CONFIG_DISABLE_PTHREAD
.pthread_startup = pthread_startup,
#endif
/* Signal handler trampoline */
#ifndef CONFIG_DISABLE_SIGNALS
.signal_handler = up_signal_handler,
#endif
/* User-space work queue support (declared in include/nuttx/wqueue.h) */
#ifdef CONFIG_LIB_USRWORK
.work_usrstart = work_usrstart,
#endif
};
/****************************************************************************
* Public Functions
****************************************************************************/
#endif /* CONFIG_BUILD_PROTECTED && !__KERNEL__ */

View File

@ -0,0 +1,125 @@
############################################################################
# configs/olimex-stm32-p407/knsh/Make.defs
#
# Copyright (C) 2017 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
include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs
LDSCRIPT1 = memory.ld
LDSCRIPT2 = kernel-space.ld
ifeq ($(WINTOOL),y)
# Windows-native toolchains
DIRLINK = $(TOPDIR)/tools/copydir.sh
DIRUNLINK = $(TOPDIR)/tools/unlink.sh
MKDEP = $(TOPDIR)/tools/mkwindeps.sh
ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}"
ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT1)}"
ARCHSCRIPT += -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT2)}"
else
# Linux/Cygwin-native toolchain
MKDEP = $(TOPDIR)/tools/mkdeps$(HOSTEXEEXT)
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT1)
ARCHSCRIPT += -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT2)
endif
CC = $(CROSSDEV)gcc
CXX = $(CROSSDEV)g++
CPP = $(CROSSDEV)gcc -E
LD = $(CROSSDEV)ld
AR = $(CROSSDEV)ar rcs
NM = $(CROSSDEV)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}
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
ARCHOPTIMIZATION = -g
endif
ifneq ($(CONFIG_DEBUG_NOOPT),y)
ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer
endif
ARCHCFLAGS = -fno-builtin
ARCHCXXFLAGS = -fno-builtin -fno-exceptions -fcheck-new -fno-rtti
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
ARCHWARNINGSXX = -Wall -Wshadow -Wundef
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-gotoff.ld -no-check-sections
LDNXFLATFLAGS = -e main -s 2048
# Loadable module definitions
CMODULEFLAGS = $(CFLAGS) -mlong-calls # --target1-abs
LDMODULEFLAGS = -r -e module_initialize
ifeq ($(WINTOOL),y)
LDMODULEFLAGS += -T "${shell cygpath -w $(TOPDIR)/sched/module/gnu-elf.ld}"
else
LDMODULEFLAGS += -T $(TOPDIR)/sched/module/gnu-elf.ld
endif
ASMEXT = .S
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 -Wundef -g -pipe
HOSTLDFLAGS =

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,80 @@
#!/bin/bash
# configs/olimex-stm32-p407/knsh/setenv.sh
#
# Copyright (C) 2017 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 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"
#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin"
# export TOOLCHAIN_BIN="/cygdrive/c/Users/MyName/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin"
# This is the location where I installed the ARM "GNU Tools for ARM Embedded Processors"
# You can this free toolchain here https://launchpad.net/gcc-arm-embedded
export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q2/bin"
# This is the path to the location where I installed the devkitARM toolchain
# You can get this free toolchain from http://devkitpro.org/ or http://sourceforge.net/projects/devkitpro/
#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/devkitARM/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}/../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}"

View File

@ -37,7 +37,7 @@ include ${TOPDIR}/.config
include ${TOPDIR}/tools/Config.mk include ${TOPDIR}/tools/Config.mk
include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs
LDSCRIPT = ld.script LDSCRIPT = flash.ld
ifeq ($(WINTOOL),y) ifeq ($(WINTOOL),y)
# Windows-native toolchains # Windows-native toolchains

View File

@ -106,7 +106,9 @@ CONFIG_ARCH_CHIP_STM32=y
# CONFIG_ARCH_ARM926EJS is not set # CONFIG_ARCH_ARM926EJS is not set
# CONFIG_ARCH_ARM920T is not set # CONFIG_ARCH_ARM920T is not set
# CONFIG_ARCH_CORTEXM0 is not set # CONFIG_ARCH_CORTEXM0 is not set
# CONFIG_ARCH_CORTEXM23 is not set
# CONFIG_ARCH_CORTEXM3 is not set # CONFIG_ARCH_CORTEXM3 is not set
# CONFIG_ARCH_CORTEXM33 is not set
CONFIG_ARCH_CORTEXM4=y CONFIG_ARCH_CORTEXM4=y
# CONFIG_ARCH_CORTEXM7 is not set # CONFIG_ARCH_CORTEXM7 is not set
# CONFIG_ARCH_CORTEXA5 is not set # CONFIG_ARCH_CORTEXA5 is not set
@ -857,7 +859,7 @@ CONFIG_SYSLOG_CONSOLE=y
# CONFIG_DISABLE_MOUNTPOINT is not set # CONFIG_DISABLE_MOUNTPOINT is not set
# CONFIG_FS_AUTOMOUNTER is not set # CONFIG_FS_AUTOMOUNTER is not set
# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set
# CONFIG_FS_READABLE is not set CONFIG_FS_READABLE=y
# CONFIG_FS_WRITABLE is not set # CONFIG_FS_WRITABLE is not set
# CONFIG_FS_NAMED_SEMAPHORES is not set # CONFIG_FS_NAMED_SEMAPHORES is not set
CONFIG_FS_MQUEUE_MPATH="/var/mqueue" CONFIG_FS_MQUEUE_MPATH="/var/mqueue"
@ -868,7 +870,15 @@ CONFIG_FS_MQUEUE_MPATH="/var/mqueue"
# CONFIG_FS_TMPFS is not set # CONFIG_FS_TMPFS is not set
# CONFIG_FS_SMARTFS is not set # CONFIG_FS_SMARTFS is not set
# CONFIG_FS_BINFS is not set # CONFIG_FS_BINFS is not set
# CONFIG_FS_PROCFS is not set CONFIG_FS_PROCFS=y
# CONFIG_FS_PROCFS_REGISTER is not set
#
# Exclude individual procfs entries
#
# CONFIG_FS_PROCFS_EXCLUDE_PROCESS is not set
# CONFIG_FS_PROCFS_EXCLUDE_UPTIME is not set
# CONFIG_FS_PROCFS_EXCLUDE_MOUNTS is not set
# CONFIG_FS_UNIONFS is not set # CONFIG_FS_UNIONFS is not set
# #
@ -915,10 +925,25 @@ CONFIG_STDIO_BUFFER_SIZE=64
CONFIG_STDIO_LINEBUFFER=y CONFIG_STDIO_LINEBUFFER=y
CONFIG_NUNGET_CHARS=2 CONFIG_NUNGET_CHARS=2
CONFIG_LIB_HOMEDIR="/" CONFIG_LIB_HOMEDIR="/"
# CONFIG_LIBC_DLLFCN is not set
# CONFIG_LIBM is not set # CONFIG_LIBM is not set
# CONFIG_LIBC_ARCH_MEMCPY is not set
# CONFIG_LIBC_ARCH_MEMCMP is not set
# CONFIG_LIBC_ARCH_MEMMOVE is not set
# CONFIG_LIBC_ARCH_MEMSET is not set
# CONFIG_LIBC_ARCH_STRCHR is not set
# CONFIG_LIBC_ARCH_STRCMP is not set
# CONFIG_LIBC_ARCH_STRCPY is not set
# CONFIG_LIBC_ARCH_STRNCPY is not set
# CONFIG_LIBC_ARCH_STRLEN is not set
# CONFIG_LIBC_ARCH_STRNLEN is not set
# CONFIG_LIBC_ARCH_BZERO is not set
# CONFIG_LIBC_ARCH_ELF is not set
# CONFIG_ARMV7M_MEMCPY is not set
# CONFIG_NOPRINTF_FIELDWIDTH is not set # CONFIG_NOPRINTF_FIELDWIDTH is not set
# CONFIG_LIBC_FLOATINGPOINT is not set # CONFIG_LIBC_FLOATINGPOINT is not set
CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_LONG_LONG=y
# CONFIG_LIBC_SCANSET is not set
# CONFIG_LIBC_IOCTL_VARIADIC is not set # CONFIG_LIBC_IOCTL_VARIADIC is not set
# CONFIG_LIBC_WCHAR is not set # CONFIG_LIBC_WCHAR is not set
# CONFIG_LIBC_LOCALE is not set # CONFIG_LIBC_LOCALE is not set
@ -937,11 +962,14 @@ CONFIG_ARCH_LOWPUTC=y
# CONFIG_TIME_EXTENDED is not set # CONFIG_TIME_EXTENDED is not set
CONFIG_LIB_SENDFILE_BUFSIZE=512 CONFIG_LIB_SENDFILE_BUFSIZE=512
# CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_ROMGETC is not set
# CONFIG_MEMCPY_VIK is not set
# CONFIG_MEMSET_OPTSPEED is not set
CONFIG_ARCH_HAVE_TLS=y CONFIG_ARCH_HAVE_TLS=y
# CONFIG_TLS is not set # CONFIG_TLS is not set
# CONFIG_LIBC_IPv4_ADDRCONV is not set # CONFIG_LIBC_IPv4_ADDRCONV is not set
# CONFIG_LIBC_IPv6_ADDRCONV is not set # CONFIG_LIBC_IPv6_ADDRCONV is not set
# CONFIG_LIBC_NETDB is not set # CONFIG_LIBC_NETDB is not set
# CONFIG_NETDB_HOSTFILE is not set
# #
# Non-standard Library Support # Non-standard Library Support
@ -1037,6 +1065,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y
# File System Utilities # File System Utilities
# #
# CONFIG_FSUTILS_INIFILE is not set # CONFIG_FSUTILS_INIFILE is not set
# CONFIG_FSUTILS_PASSWD is not set
# #
# GPS Utilities # GPS Utilities
@ -1052,6 +1081,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y
# #
# Interpreters # Interpreters
# #
# CONFIG_INTERPRETERS_BAS is not set
# CONFIG_INTERPRETERS_FICL is not set # CONFIG_INTERPRETERS_FICL is not set
# CONFIG_INTERPRETERS_MICROPYTHON is not set # CONFIG_INTERPRETERS_MICROPYTHON is not set
# CONFIG_INTERPRETERS_MINIBASIC is not set # CONFIG_INTERPRETERS_MINIBASIC is not set
@ -1151,6 +1181,7 @@ CONFIG_NSH_MMCSDMINOR=0
# CONFIG_NSH_CMDOPT_DD_STATS is not set # CONFIG_NSH_CMDOPT_DD_STATS is not set
CONFIG_NSH_CODECS_BUFSIZE=128 CONFIG_NSH_CODECS_BUFSIZE=128
CONFIG_NSH_CMDOPT_HEXDUMP=y CONFIG_NSH_CMDOPT_HEXDUMP=y
CONFIG_NSH_PROC_MOUNTPOINT="/proc"
CONFIG_NSH_FILEIOSIZE=512 CONFIG_NSH_FILEIOSIZE=512
# #

View File

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
* configs/olimex-stm32-p407/scripts/ld.script * configs/olimex-stm32-p407/scripts/flash.ld
* *
* Copyright (C) 2016 Gregory Nutt. All rights reserved. * Copyright (C) 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org> * Author: Gregory Nutt <gnutt@nuttx.org>

View File

@ -0,0 +1,111 @@
/****************************************************************************
* configs/olimex-stm32-p407/scripts/kernel-space.ld
*
* Copyright (C) 2017 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.
*
****************************************************************************/
/* NOTE: This depends on the memory.ld script having been included prior to
* this script.
*/
OUTPUT_ARCH(arm)
EXTERN(_vectors)
ENTRY(_stext)
SECTIONS
{
.text : {
_stext = ABSOLUTE(.);
*(.vectors)
*(.text .text.*)
*(.fixup)
*(.gnu.warning)
*(.rodata .rodata.*)
*(.gnu.linkonce.t.*)
*(.glue_7)
*(.glue_7t)
*(.got)
*(.gcc_except_table)
*(.gnu.linkonce.r.*)
_etext = ABSOLUTE(.);
} > kflash
.init_section : {
_sinit = ABSOLUTE(.);
*(.init_array .init_array.*)
_einit = ABSOLUTE(.);
} > kflash
.ARM.extab : {
*(.ARM.extab*)
} > kflash
__exidx_start = ABSOLUTE(.);
.ARM.exidx : {
*(.ARM.exidx*)
} > kflash
__exidx_end = ABSOLUTE(.);
_eronly = ABSOLUTE(.);
.data : {
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
CONSTRUCTORS
_edata = ABSOLUTE(.);
} > ksram AT > kflash
.bss : {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
_ebss = ABSOLUTE(.);
} > ksram
/* Stabs debugging sections */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_info 0 : { *(.debug_info) }
.debug_line 0 : { *(.debug_line) }
.debug_pubnames 0 : { *(.debug_pubnames) }
.debug_aranges 0 : { *(.debug_aranges) }
}

View File

@ -0,0 +1,100 @@
/****************************************************************************
* configs/olimex-stm32-p407/scripts/memory.ld
*
* Copyright (C) 2017 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.
*
****************************************************************************/
/* The STM32F407VG has 1024Kb of FLASH beginning at address 0x0800:0000 and
* 192Kb of SRAM. SRAM is split up into three blocks:
*
* 1) 112KB of SRAM beginning at address 0x2000:0000
* 2) 16KB of SRAM beginning at address 0x2001:c000
* 3) 64KB of CCM SRAM beginning at address 0x1000:0000
*
* When booting from FLASH, FLASH memory is aliased to address 0x0000:0000
* where the code expects to begin execution by jumping to the entry point in
* the 0x0800:0000 address range.
*
* For MPU support, the kernel-mode NuttX section is assumed to be 128Kb of
* FLASH and 4Kb of SRAM. That is an excessive amount for the kernel which
* should fit into 64KB and, of course, can be optimized as needed (See
* also configs/stm32f4discovery/scripts/kernel-space.ld). Allowing the
* additional does permit addition debug instrumentation to be added to the
* kernel space without overflowing the partition.
*
* Alignment of the user space FLASH partition is also a critical factor:
* The user space FLASH partition will be spanned with a single region of
* size 2**n bytes. The alignment of the user-space region must be the same.
* As a consequence, as the user-space increases in size, the alignmment
* requirement also increases.
*
* This alignment requirement means that the largest user space FLASH region
* you can have will be 512KB at it would have to be positioned at
* 0x08800000. If you change this address, don't forget to change the
* CONFIG_NUTTX_USERSPACE configuration setting to match and to modify
* the check in kernel/userspace.c.
*
* For the same reasons, the maximum size of the SRAM mapping is limited to
* 4KB. Both of these alignment limitations could be reduced by using
* multiple regions to map the FLASH/SDRAM range or perhaps with some
* clever use of subregions.
*
* A detailed memory map for the 112KB SRAM region is as follows:
*
* 0x20000 0000: Kernel .data region. Typical size: 0.1KB
* ------- ---- Kernel .bss region. Typical size: 1.8KB
* 0x20000 0800: Kernel IDLE thread stack (approximate). Size is
* determined by CONFIG_IDLETHREAD_STACKSIZE and
* adjustments for alignment. Typical is 1KB.
* ------- ---- Padded to 4KB
* 0x20000 1000: User .data region. Size is variable.
* ------- ---- User .bss region Size is variable.
* 0x20000 2000: Beginning of kernel heap. Size determined by
* CONFIG_MM_KERNEL_HEAPSIZE.
* ------- ---- Beginning of user heap. Can vary with other settings.
* 0x20001 c000: End+1 of CPU RAM
*/
MEMORY
{
/* 1024Kb FLASH */
kflash (rx) : ORIGIN = 0x08000000, LENGTH = 128K
uflash (rx) : ORIGIN = 0x08020000, LENGTH = 128K
xflash (rx) : ORIGIN = 0x08040000, LENGTH = 768K
/* 112Kb of contiguous SRAM */
ksram (rwx) : ORIGIN = 0x20000000, LENGTH = 4K
usram (rwx) : ORIGIN = 0x20001000, LENGTH = 4K
xsram (rwx) : ORIGIN = 0x20002000, LENGTH = 104K
}

View File

@ -0,0 +1,126 @@
/****************************************************************************
* configs/olimex-stm32-p407/scripts/user-space.ld
*
* Copyright (C) 2017 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.
*
****************************************************************************/
/* NOTE: This depends on the memory.ld script having been included prior to
* this script.
*/
/* Make sure that the critical memory management functions are in user-space.
* the user heap memory manager will reside in user-space but be usable both
* by kernel- and user-space code
*/
EXTERN(umm_initialize)
EXTERN(umm_addregion)
EXTERN(umm_trysemaphore)
EXTERN(umm_givesemaphore)
EXTERN(malloc)
EXTERN(realloc)
EXTERN(zalloc)
EXTERN(free)
OUTPUT_ARCH(arm)
SECTIONS
{
.userspace : {
*(.userspace)
} > uflash
.text : {
_stext = ABSOLUTE(.);
*(.text .text.*)
*(.fixup)
*(.gnu.warning)
*(.rodata .rodata.*)
*(.gnu.linkonce.t.*)
*(.glue_7)
*(.glue_7t)
*(.got)
*(.gcc_except_table)
*(.gnu.linkonce.r.*)
_etext = ABSOLUTE(.);
} > uflash
.init_section : {
_sinit = ABSOLUTE(.);
*(.init_array .init_array.*)
_einit = ABSOLUTE(.);
} > uflash
.ARM.extab : {
*(.ARM.extab*)
} > uflash
__exidx_start = ABSOLUTE(.);
.ARM.exidx : {
*(.ARM.exidx*)
} > uflash
__exidx_end = ABSOLUTE(.);
_eronly = ABSOLUTE(.);
.data : {
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
CONSTRUCTORS
_edata = ABSOLUTE(.);
} > usram AT > uflash
.bss : {
_sbss = ABSOLUTE(.);
*(.bss .bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
_ebss = ABSOLUTE(.);
} > usram
/* Stabs debugging sections */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_info 0 : { *(.debug_info) }
.debug_line 0 : { *(.debug_line) }
.debug_pubnames 0 : { *(.debug_pubnames) }
.debug_aranges 0 : { *(.debug_aranges) }
}

View File

@ -1652,7 +1652,7 @@ Configuration sub-directories
knsh: knsh:
This is identical to the nsh configuration below except that NuttX This is identical to the nsh configuration below except that NuttX
is built as a kernel-mode, monolithic module and the user applications is built as a protected mode, monolithic module and the user applications
are built separately. There are four very similar NSH configurations: are built separately. There are four very similar NSH configurations:
- knsh. This is a somewhat simplified version of the nsh configuration - knsh. This is a somewhat simplified version of the nsh configuration

View File

@ -12,8 +12,10 @@
# CONFIG_HOST_OSX is not set # CONFIG_HOST_OSX is not set
CONFIG_HOST_WINDOWS=y CONFIG_HOST_WINDOWS=y
# CONFIG_HOST_OTHER is not set # CONFIG_HOST_OTHER is not set
CONFIG_TOOLCHAIN_WINDOWS=y
# CONFIG_WINDOWS_NATIVE is not set # CONFIG_WINDOWS_NATIVE is not set
CONFIG_WINDOWS_CYGWIN=y CONFIG_WINDOWS_CYGWIN=y
# CONFIG_WINDOWS_UBUNTU is not set
# CONFIG_WINDOWS_MSYS is not set # CONFIG_WINDOWS_MSYS is not set
# CONFIG_WINDOWS_OTHER is not set # CONFIG_WINDOWS_OTHER is not set
@ -69,9 +71,12 @@ CONFIG_ARCH_ARM=y
# CONFIG_ARCH_AVR is not set # CONFIG_ARCH_AVR is not set
# CONFIG_ARCH_HC is not set # CONFIG_ARCH_HC is not set
# CONFIG_ARCH_MIPS is not set # CONFIG_ARCH_MIPS is not set
# CONFIG_ARCH_MISOC is not set
# CONFIG_ARCH_RENESAS is not set # CONFIG_ARCH_RENESAS is not set
# CONFIG_ARCH_RISCV is not set
# CONFIG_ARCH_SIM is not set # CONFIG_ARCH_SIM is not set
# CONFIG_ARCH_X86 is not set # CONFIG_ARCH_X86 is not set
# CONFIG_ARCH_XTENSA is not set
# CONFIG_ARCH_Z16 is not set # CONFIG_ARCH_Z16 is not set
# CONFIG_ARCH_Z80 is not set # CONFIG_ARCH_Z80 is not set
CONFIG_ARCH="arm" CONFIG_ARCH="arm"
@ -111,7 +116,9 @@ CONFIG_ARCH_CHIP_SAMV7=y
# CONFIG_ARCH_ARM926EJS is not set # CONFIG_ARCH_ARM926EJS is not set
# CONFIG_ARCH_ARM920T is not set # CONFIG_ARCH_ARM920T is not set
# CONFIG_ARCH_CORTEXM0 is not set # CONFIG_ARCH_CORTEXM0 is not set
# CONFIG_ARCH_CORTEXM23 is not set
# CONFIG_ARCH_CORTEXM3 is not set # CONFIG_ARCH_CORTEXM3 is not set
# CONFIG_ARCH_CORTEXM33 is not set
# CONFIG_ARCH_CORTEXM4 is not set # CONFIG_ARCH_CORTEXM4 is not set
CONFIG_ARCH_CORTEXM7=y CONFIG_ARCH_CORTEXM7=y
# CONFIG_ARCH_CORTEXA5 is not set # CONFIG_ARCH_CORTEXA5 is not set
@ -199,6 +206,7 @@ CONFIG_ARCH_CHIP_SAMV71Q=y
# CONFIG_ARCH_CHIP_SAMV71J is not set # CONFIG_ARCH_CHIP_SAMV71J is not set
# CONFIG_SAMV7_MCAN is not set # CONFIG_SAMV7_MCAN is not set
CONFIG_SAMV7_HAVE_MCAN1=y CONFIG_SAMV7_HAVE_MCAN1=y
# CONFIG_SAMV7_DAC is not set
CONFIG_SAMV7_HAVE_DAC1=y CONFIG_SAMV7_HAVE_DAC1=y
CONFIG_SAMV7_HAVE_EBI=y CONFIG_SAMV7_HAVE_EBI=y
# CONFIG_SAMV7_EMAC is not set # CONFIG_SAMV7_EMAC is not set
@ -421,6 +429,7 @@ CONFIG_PREALLOC_TIMERS=4
# #
# Tasks and Scheduling # Tasks and Scheduling
# #
# CONFIG_SPINLOCK is not set
# CONFIG_INIT_NONE is not set # CONFIG_INIT_NONE is not set
CONFIG_INIT_ENTRYPOINT=y CONFIG_INIT_ENTRYPOINT=y
# CONFIG_INIT_FILEPATH is not set # CONFIG_INIT_FILEPATH is not set
@ -437,6 +446,8 @@ CONFIG_SCHED_WAITPID=y
# #
# CONFIG_MUTEX_TYPES is not set # CONFIG_MUTEX_TYPES is not set
CONFIG_NPTHREAD_KEYS=4 CONFIG_NPTHREAD_KEYS=4
# CONFIG_PTHREAD_CLEANUP is not set
# CONFIG_CANCELLATION_POINTS is not set
# #
# Performance Monitoring # Performance Monitoring
@ -528,15 +539,15 @@ CONFIG_I2C=y
# CONFIG_I2C_TRACE is not set # CONFIG_I2C_TRACE is not set
CONFIG_I2C_DRIVER=y CONFIG_I2C_DRIVER=y
CONFIG_SPI=y CONFIG_SPI=y
# CONFIG_ARCH_HAVE_SPI_CRCGENERATION is not set
CONFIG_ARCH_HAVE_SPI_CS_CONTROL=y
# CONFIG_ARCH_HAVE_SPI_BITORDER is not set
# CONFIG_SPI_SLAVE is not set # CONFIG_SPI_SLAVE is not set
CONFIG_SPI_EXCHANGE=y CONFIG_SPI_EXCHANGE=y
# CONFIG_SPI_CMDDATA is not set # CONFIG_SPI_CMDDATA is not set
# CONFIG_SPI_CALLBACK is not set # CONFIG_SPI_CALLBACK is not set
# CONFIG_SPI_HWFEATURES is not set # CONFIG_SPI_HWFEATURES is not set
# CONFIG_ARCH_HAVE_SPI_CRCGENERATION is not set
CONFIG_ARCH_HAVE_SPI_CS_CONTROL=y
# CONFIG_SPI_CS_CONTROL is not set # CONFIG_SPI_CS_CONTROL is not set
# CONFIG_ARCH_HAVE_SPI_BITORDER is not set
# CONFIG_SPI_CS_DELAY_CONTROL is not set # CONFIG_SPI_CS_DELAY_CONTROL is not set
# CONFIG_SPI_DRIVER is not set # CONFIG_SPI_DRIVER is not set
# CONFIG_SPI_BITBANG is not set # CONFIG_SPI_BITBANG is not set
@ -546,6 +557,7 @@ CONFIG_ARCH_HAVE_SPI_CS_CONTROL=y
# Timer Driver Support # Timer Driver Support
# #
# CONFIG_TIMER is not set # CONFIG_TIMER is not set
# CONFIG_ONESHOT is not set
# CONFIG_RTC is not set # CONFIG_RTC is not set
# CONFIG_WATCHDOG is not set # CONFIG_WATCHDOG is not set
# CONFIG_TIMERS_CS2100CP is not set # CONFIG_TIMERS_CS2100CP is not set
@ -620,6 +632,7 @@ CONFIG_AT25_SPIFREQUENCY=20000000
# CONFIG_MTD_AT45DB is not set # CONFIG_MTD_AT45DB is not set
# CONFIG_MTD_IS25XP is not set # CONFIG_MTD_IS25XP is not set
# CONFIG_MTD_M25P is not set # CONFIG_MTD_M25P is not set
# CONFIG_MTD_MX25L is not set
# CONFIG_MTD_S25FL1 is not set # CONFIG_MTD_S25FL1 is not set
# CONFIG_MTD_N25QXXX is not set # CONFIG_MTD_N25QXXX is not set
# CONFIG_MTD_SMART is not set # CONFIG_MTD_SMART is not set
@ -688,6 +701,7 @@ CONFIG_UART3_2STOP=0
# CONFIG_USBHOST is not set # CONFIG_USBHOST is not set
# CONFIG_HAVE_USBTRACE is not set # CONFIG_HAVE_USBTRACE is not set
# CONFIG_DRIVERS_WIRELESS is not set # CONFIG_DRIVERS_WIRELESS is not set
# CONFIG_DRIVERS_CONTACTLESS is not set
# #
# System Logging # System Logging
@ -801,10 +815,26 @@ CONFIG_STDIO_LINEBUFFER=y
CONFIG_NUNGET_CHARS=2 CONFIG_NUNGET_CHARS=2
CONFIG_LIB_HOMEDIR="/" CONFIG_LIB_HOMEDIR="/"
# CONFIG_LIBM is not set # CONFIG_LIBM is not set
# CONFIG_LIBC_ARCH_MEMCPY is not set
# CONFIG_LIBC_ARCH_MEMCMP is not set
# CONFIG_LIBC_ARCH_MEMMOVE is not set
# CONFIG_LIBC_ARCH_MEMSET is not set
# CONFIG_LIBC_ARCH_STRCHR is not set
# CONFIG_LIBC_ARCH_STRCMP is not set
# CONFIG_LIBC_ARCH_STRCPY is not set
# CONFIG_LIBC_ARCH_STRNCPY is not set
# CONFIG_LIBC_ARCH_STRLEN is not set
# CONFIG_LIBC_ARCH_STRNLEN is not set
# CONFIG_LIBC_ARCH_BZERO is not set
# CONFIG_LIBC_ARCH_ELF is not set
# CONFIG_ARMV7M_MEMCPY is not set
# CONFIG_NOPRINTF_FIELDWIDTH is not set # CONFIG_NOPRINTF_FIELDWIDTH is not set
# CONFIG_LIBC_FLOATINGPOINT is not set # CONFIG_LIBC_FLOATINGPOINT is not set
CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_LONG_LONG=y
# CONFIG_LIBC_SCANSET is not set
# CONFIG_LIBC_IOCTL_VARIADIC is not set # CONFIG_LIBC_IOCTL_VARIADIC is not set
# CONFIG_LIBC_WCHAR is not set
# CONFIG_LIBC_LOCALE is not set
CONFIG_LIB_RAND_ORDER=1 CONFIG_LIB_RAND_ORDER=1
# CONFIG_EOL_IS_CR is not set # CONFIG_EOL_IS_CR is not set
# CONFIG_EOL_IS_LF is not set # CONFIG_EOL_IS_LF is not set
@ -822,8 +852,12 @@ CONFIG_ARCH_LOWPUTC=y
# CONFIG_TIME_EXTENDED is not set # CONFIG_TIME_EXTENDED is not set
CONFIG_LIB_SENDFILE_BUFSIZE=512 CONFIG_LIB_SENDFILE_BUFSIZE=512
# CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_ROMGETC is not set
# CONFIG_MEMCPY_VIK is not set
# CONFIG_MEMSET_OPTSPEED is not set
CONFIG_ARCH_HAVE_TLS=y CONFIG_ARCH_HAVE_TLS=y
# CONFIG_TLS is not set # CONFIG_TLS is not set
# CONFIG_LIBC_IPv4_ADDRCONV is not set
# CONFIG_LIBC_IPv6_ADDRCONV is not set
# CONFIG_LIBC_NETDB is not set # CONFIG_LIBC_NETDB is not set
# CONFIG_NETDB_HOSTFILE is not set # CONFIG_NETDB_HOSTFILE is not set
@ -853,6 +887,8 @@ CONFIG_ARCH_HAVE_TLS=y
# #
# Examples # Examples
# #
# CONFIG_EXAMPLES_BUTTONS is not set
# CONFIG_EXAMPLES_CCTYPE is not set
# CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CHAT is not set
# CONFIG_EXAMPLES_CONFIGDATA is not set # CONFIG_EXAMPLES_CONFIGDATA is not set
# CONFIG_EXAMPLES_DHCPD is not set # CONFIG_EXAMPLES_DHCPD is not set
@ -924,6 +960,7 @@ CONFIG_EXAMPLES_NSH=y
# CONFIG_INTERPRETERS_BAS is not set # CONFIG_INTERPRETERS_BAS is not set
# CONFIG_INTERPRETERS_FICL is not set # CONFIG_INTERPRETERS_FICL is not set
# CONFIG_INTERPRETERS_MICROPYTHON is not set # CONFIG_INTERPRETERS_MICROPYTHON is not set
# CONFIG_INTERPRETERS_MINIBASIC is not set
# CONFIG_INTERPRETERS_PCODE is not set # CONFIG_INTERPRETERS_PCODE is not set
# #
@ -994,6 +1031,7 @@ CONFIG_NSH_DISABLE_MKRD=y
# CONFIG_NSH_DISABLE_MOUNT is not set # CONFIG_NSH_DISABLE_MOUNT is not set
# CONFIG_NSH_DISABLE_MV is not set # CONFIG_NSH_DISABLE_MV is not set
# CONFIG_NSH_DISABLE_MW is not set # CONFIG_NSH_DISABLE_MW is not set
CONFIG_NSH_DISABLE_PRINTF=y
# CONFIG_NSH_DISABLE_PS is not set # CONFIG_NSH_DISABLE_PS is not set
# CONFIG_NSH_DISABLE_PUT is not set # CONFIG_NSH_DISABLE_PUT is not set
# CONFIG_NSH_DISABLE_PWD is not set # CONFIG_NSH_DISABLE_PWD is not set
@ -1070,6 +1108,8 @@ CONFIG_READLINE_ECHO=y
# CONFIG_READLINE_TABCOMPLETION is not set # CONFIG_READLINE_TABCOMPLETION is not set
# CONFIG_READLINE_CMD_HISTORY is not set # CONFIG_READLINE_CMD_HISTORY is not set
# CONFIG_SYSTEM_SUDOKU is not set # CONFIG_SYSTEM_SUDOKU is not set
# CONFIG_SYSTEM_SYSTEM is not set
# CONFIG_SYSTEM_TEE is not set
# CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_UBLOXMODEM is not set
# CONFIG_SYSTEM_VI is not set # CONFIG_SYSTEM_VI is not set
# CONFIG_SYSTEM_ZMODEM is not set # CONFIG_SYSTEM_ZMODEM is not set

View File

@ -12,8 +12,10 @@
# CONFIG_HOST_OSX is not set # CONFIG_HOST_OSX is not set
CONFIG_HOST_WINDOWS=y CONFIG_HOST_WINDOWS=y
# CONFIG_HOST_OTHER is not set # CONFIG_HOST_OTHER is not set
CONFIG_TOOLCHAIN_WINDOWS=y
# CONFIG_WINDOWS_NATIVE is not set # CONFIG_WINDOWS_NATIVE is not set
CONFIG_WINDOWS_CYGWIN=y CONFIG_WINDOWS_CYGWIN=y
# CONFIG_WINDOWS_UBUNTU is not set
# CONFIG_WINDOWS_MSYS is not set # CONFIG_WINDOWS_MSYS is not set
# CONFIG_WINDOWS_OTHER is not set # CONFIG_WINDOWS_OTHER is not set
@ -109,7 +111,9 @@ CONFIG_ARCH_CHIP_SAMV7=y
# CONFIG_ARCH_ARM926EJS is not set # CONFIG_ARCH_ARM926EJS is not set
# CONFIG_ARCH_ARM920T is not set # CONFIG_ARCH_ARM920T is not set
# CONFIG_ARCH_CORTEXM0 is not set # CONFIG_ARCH_CORTEXM0 is not set
# CONFIG_ARCH_CORTEXM23 is not set
# CONFIG_ARCH_CORTEXM3 is not set # CONFIG_ARCH_CORTEXM3 is not set
# CONFIG_ARCH_CORTEXM33 is not set
# CONFIG_ARCH_CORTEXM4 is not set # CONFIG_ARCH_CORTEXM4 is not set
CONFIG_ARCH_CORTEXM7=y CONFIG_ARCH_CORTEXM7=y
# CONFIG_ARCH_CORTEXA5 is not set # CONFIG_ARCH_CORTEXA5 is not set
@ -420,6 +424,7 @@ CONFIG_PREALLOC_TIMERS=4
# #
# Tasks and Scheduling # Tasks and Scheduling
# #
# CONFIG_SPINLOCK is not set
# CONFIG_INIT_NONE is not set # CONFIG_INIT_NONE is not set
CONFIG_INIT_ENTRYPOINT=y CONFIG_INIT_ENTRYPOINT=y
# CONFIG_INIT_FILEPATH is not set # CONFIG_INIT_FILEPATH is not set
@ -436,6 +441,8 @@ CONFIG_SCHED_WAITPID=y
# #
# CONFIG_MUTEX_TYPES is not set # CONFIG_MUTEX_TYPES is not set
CONFIG_NPTHREAD_KEYS=4 CONFIG_NPTHREAD_KEYS=4
# CONFIG_PTHREAD_CLEANUP is not set
# CONFIG_CANCELLATION_POINTS is not set
# #
# Performance Monitoring # Performance Monitoring
@ -800,10 +807,25 @@ CONFIG_STDIO_BUFFER_SIZE=64
CONFIG_STDIO_LINEBUFFER=y CONFIG_STDIO_LINEBUFFER=y
CONFIG_NUNGET_CHARS=2 CONFIG_NUNGET_CHARS=2
CONFIG_LIB_HOMEDIR="/" CONFIG_LIB_HOMEDIR="/"
# CONFIG_LIBC_DLLFCN is not set
# CONFIG_LIBM is not set # CONFIG_LIBM is not set
# CONFIG_LIBC_ARCH_MEMCPY is not set
# CONFIG_LIBC_ARCH_MEMCMP is not set
# CONFIG_LIBC_ARCH_MEMMOVE is not set
# CONFIG_LIBC_ARCH_MEMSET is not set
# CONFIG_LIBC_ARCH_STRCHR is not set
# CONFIG_LIBC_ARCH_STRCMP is not set
# CONFIG_LIBC_ARCH_STRCPY is not set
# CONFIG_LIBC_ARCH_STRNCPY is not set
# CONFIG_LIBC_ARCH_STRLEN is not set
# CONFIG_LIBC_ARCH_STRNLEN is not set
# CONFIG_LIBC_ARCH_BZERO is not set
# CONFIG_LIBC_ARCH_ELF is not set
# CONFIG_ARMV7M_MEMCPY is not set
# CONFIG_NOPRINTF_FIELDWIDTH is not set # CONFIG_NOPRINTF_FIELDWIDTH is not set
# CONFIG_LIBC_FLOATINGPOINT is not set # CONFIG_LIBC_FLOATINGPOINT is not set
CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_LONG_LONG=y
# CONFIG_LIBC_SCANSET is not set
# CONFIG_LIBC_IOCTL_VARIADIC is not set # CONFIG_LIBC_IOCTL_VARIADIC is not set
# CONFIG_LIBC_WCHAR is not set # CONFIG_LIBC_WCHAR is not set
# CONFIG_LIBC_LOCALE is not set # CONFIG_LIBC_LOCALE is not set
@ -824,8 +846,12 @@ CONFIG_ARCH_LOWPUTC=y
# CONFIG_TIME_EXTENDED is not set # CONFIG_TIME_EXTENDED is not set
CONFIG_LIB_SENDFILE_BUFSIZE=512 CONFIG_LIB_SENDFILE_BUFSIZE=512
# CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_ROMGETC is not set
# CONFIG_MEMCPY_VIK is not set
# CONFIG_MEMSET_OPTSPEED is not set
CONFIG_ARCH_HAVE_TLS=y CONFIG_ARCH_HAVE_TLS=y
# CONFIG_TLS is not set # CONFIG_TLS is not set
# CONFIG_LIBC_IPv4_ADDRCONV is not set
# CONFIG_LIBC_IPv6_ADDRCONV is not set
# CONFIG_LIBC_NETDB is not set # CONFIG_LIBC_NETDB is not set
# CONFIG_NETDB_HOSTFILE is not set # CONFIG_NETDB_HOSTFILE is not set
@ -1030,6 +1056,7 @@ CONFIG_NSH_MMCSDSLOTNO=0
# Configure Command Options # Configure Command Options
# #
# CONFIG_NSH_CMDOPT_DF_H is not set # CONFIG_NSH_CMDOPT_DF_H is not set
# CONFIG_NSH_CMDOPT_DD_STATS is not set
CONFIG_NSH_CODECS_BUFSIZE=128 CONFIG_NSH_CODECS_BUFSIZE=128
CONFIG_NSH_CMDOPT_HEXDUMP=y CONFIG_NSH_CMDOPT_HEXDUMP=y
CONFIG_NSH_PROC_MOUNTPOINT="/proc" CONFIG_NSH_PROC_MOUNTPOINT="/proc"

View File

@ -12,8 +12,10 @@
# CONFIG_HOST_OSX is not set # CONFIG_HOST_OSX is not set
CONFIG_HOST_WINDOWS=y CONFIG_HOST_WINDOWS=y
# CONFIG_HOST_OTHER is not set # CONFIG_HOST_OTHER is not set
CONFIG_TOOLCHAIN_WINDOWS=y
# CONFIG_WINDOWS_NATIVE is not set # CONFIG_WINDOWS_NATIVE is not set
CONFIG_WINDOWS_CYGWIN=y CONFIG_WINDOWS_CYGWIN=y
# CONFIG_WINDOWS_UBUNTU is not set
# CONFIG_WINDOWS_MSYS is not set # CONFIG_WINDOWS_MSYS is not set
# CONFIG_WINDOWS_OTHER is not set # CONFIG_WINDOWS_OTHER is not set
@ -65,9 +67,12 @@ CONFIG_ARCH_ARM=y
# CONFIG_ARCH_AVR is not set # CONFIG_ARCH_AVR is not set
# CONFIG_ARCH_HC is not set # CONFIG_ARCH_HC is not set
# CONFIG_ARCH_MIPS is not set # CONFIG_ARCH_MIPS is not set
# CONFIG_ARCH_MISOC is not set
# CONFIG_ARCH_RENESAS is not set # CONFIG_ARCH_RENESAS is not set
# CONFIG_ARCH_RISCV is not set
# CONFIG_ARCH_SIM is not set # CONFIG_ARCH_SIM is not set
# CONFIG_ARCH_X86 is not set # CONFIG_ARCH_X86 is not set
# CONFIG_ARCH_XTENSA is not set
# CONFIG_ARCH_Z16 is not set # CONFIG_ARCH_Z16 is not set
# CONFIG_ARCH_Z80 is not set # CONFIG_ARCH_Z80 is not set
CONFIG_ARCH="arm" CONFIG_ARCH="arm"
@ -107,7 +112,9 @@ CONFIG_ARCH_CHIP_STM32=y
# CONFIG_ARCH_ARM926EJS is not set # CONFIG_ARCH_ARM926EJS is not set
# CONFIG_ARCH_ARM920T is not set # CONFIG_ARCH_ARM920T is not set
# CONFIG_ARCH_CORTEXM0 is not set # CONFIG_ARCH_CORTEXM0 is not set
# CONFIG_ARCH_CORTEXM23 is not set
# CONFIG_ARCH_CORTEXM3 is not set # CONFIG_ARCH_CORTEXM3 is not set
# CONFIG_ARCH_CORTEXM33 is not set
CONFIG_ARCH_CORTEXM4=y CONFIG_ARCH_CORTEXM4=y
# CONFIG_ARCH_CORTEXM7 is not set # CONFIG_ARCH_CORTEXM7 is not set
# CONFIG_ARCH_CORTEXA5 is not set # CONFIG_ARCH_CORTEXA5 is not set
@ -356,6 +363,12 @@ CONFIG_STM32_HAVE_ADC3=y
# CONFIG_STM32_HAVE_ADC2_DMA is not set # CONFIG_STM32_HAVE_ADC2_DMA is not set
# CONFIG_STM32_HAVE_ADC3_DMA is not set # CONFIG_STM32_HAVE_ADC3_DMA is not set
# CONFIG_STM32_HAVE_ADC4_DMA is not set # CONFIG_STM32_HAVE_ADC4_DMA is not set
# CONFIG_STM32_HAVE_SDADC1 is not set
# CONFIG_STM32_HAVE_SDADC2 is not set
# CONFIG_STM32_HAVE_SDADC3 is not set
# CONFIG_STM32_HAVE_SDADC1_DMA is not set
# CONFIG_STM32_HAVE_SDADC2_DMA is not set
# CONFIG_STM32_HAVE_SDADC3_DMA is not set
CONFIG_STM32_HAVE_CAN1=y CONFIG_STM32_HAVE_CAN1=y
CONFIG_STM32_HAVE_CAN2=y CONFIG_STM32_HAVE_CAN2=y
CONFIG_STM32_HAVE_DAC1=y CONFIG_STM32_HAVE_DAC1=y
@ -615,6 +628,7 @@ CONFIG_PREALLOC_TIMERS=4
# #
# Tasks and Scheduling # Tasks and Scheduling
# #
# CONFIG_SPINLOCK is not set
# CONFIG_INIT_NONE is not set # CONFIG_INIT_NONE is not set
CONFIG_INIT_ENTRYPOINT=y CONFIG_INIT_ENTRYPOINT=y
# CONFIG_INIT_FILEPATH is not set # CONFIG_INIT_FILEPATH is not set
@ -631,6 +645,8 @@ CONFIG_SCHED_WAITPID=y
# #
# CONFIG_MUTEX_TYPES is not set # CONFIG_MUTEX_TYPES is not set
CONFIG_NPTHREAD_KEYS=4 CONFIG_NPTHREAD_KEYS=4
# CONFIG_PTHREAD_CLEANUP is not set
# CONFIG_CANCELLATION_POINTS is not set
# #
# Performance Monitoring # Performance Monitoring
@ -711,14 +727,14 @@ CONFIG_DEV_NULL=y
CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_ARCH_HAVE_I2CRESET=y
# CONFIG_I2C is not set # CONFIG_I2C is not set
CONFIG_SPI=y CONFIG_SPI=y
# CONFIG_ARCH_HAVE_SPI_CRCGENERATION is not set
# CONFIG_ARCH_HAVE_SPI_CS_CONTROL is not set
CONFIG_ARCH_HAVE_SPI_BITORDER=y
# CONFIG_SPI_SLAVE is not set # CONFIG_SPI_SLAVE is not set
CONFIG_SPI_EXCHANGE=y CONFIG_SPI_EXCHANGE=y
# CONFIG_SPI_CMDDATA is not set # CONFIG_SPI_CMDDATA is not set
# CONFIG_SPI_CALLBACK is not set # CONFIG_SPI_CALLBACK is not set
# CONFIG_SPI_HWFEATURES is not set # CONFIG_SPI_HWFEATURES is not set
# CONFIG_ARCH_HAVE_SPI_CRCGENERATION is not set
# CONFIG_ARCH_HAVE_SPI_CS_CONTROL is not set
CONFIG_ARCH_HAVE_SPI_BITORDER=y
# CONFIG_SPI_BITORDER is not set # CONFIG_SPI_BITORDER is not set
# CONFIG_SPI_CS_DELAY_CONTROL is not set # CONFIG_SPI_CS_DELAY_CONTROL is not set
# CONFIG_SPI_DRIVER is not set # CONFIG_SPI_DRIVER is not set
@ -729,6 +745,7 @@ CONFIG_ARCH_HAVE_SPI_BITORDER=y
# Timer Driver Support # Timer Driver Support
# #
# CONFIG_TIMER is not set # CONFIG_TIMER is not set
# CONFIG_ONESHOT is not set
# CONFIG_RTC is not set # CONFIG_RTC is not set
# CONFIG_WATCHDOG is not set # CONFIG_WATCHDOG is not set
# CONFIG_ANALOG is not set # CONFIG_ANALOG is not set
@ -818,6 +835,7 @@ CONFIG_USART2_2STOP=0
# CONFIG_USBHOST is not set # CONFIG_USBHOST is not set
# CONFIG_HAVE_USBTRACE is not set # CONFIG_HAVE_USBTRACE is not set
# CONFIG_DRIVERS_WIRELESS is not set # CONFIG_DRIVERS_WIRELESS is not set
# CONFIG_DRIVERS_CONTACTLESS is not set
# #
# System Logging # System Logging
@ -921,11 +939,28 @@ CONFIG_STDIO_BUFFER_SIZE=64
CONFIG_STDIO_LINEBUFFER=y CONFIG_STDIO_LINEBUFFER=y
CONFIG_NUNGET_CHARS=2 CONFIG_NUNGET_CHARS=2
CONFIG_LIB_HOMEDIR="/" CONFIG_LIB_HOMEDIR="/"
# CONFIG_LIBC_DLLFCN is not set
# CONFIG_LIBM is not set # CONFIG_LIBM is not set
# CONFIG_LIBC_ARCH_MEMCPY is not set
# CONFIG_LIBC_ARCH_MEMCMP is not set
# CONFIG_LIBC_ARCH_MEMMOVE is not set
# CONFIG_LIBC_ARCH_MEMSET is not set
# CONFIG_LIBC_ARCH_STRCHR is not set
# CONFIG_LIBC_ARCH_STRCMP is not set
# CONFIG_LIBC_ARCH_STRCPY is not set
# CONFIG_LIBC_ARCH_STRNCPY is not set
# CONFIG_LIBC_ARCH_STRLEN is not set
# CONFIG_LIBC_ARCH_STRNLEN is not set
# CONFIG_LIBC_ARCH_BZERO is not set
# CONFIG_LIBC_ARCH_ELF is not set
# CONFIG_ARMV7M_MEMCPY is not set
# CONFIG_NOPRINTF_FIELDWIDTH is not set # CONFIG_NOPRINTF_FIELDWIDTH is not set
# CONFIG_LIBC_FLOATINGPOINT is not set # CONFIG_LIBC_FLOATINGPOINT is not set
CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_LONG_LONG=y
# CONFIG_LIBC_SCANSET is not set
# CONFIG_LIBC_IOCTL_VARIADIC is not set # CONFIG_LIBC_IOCTL_VARIADIC is not set
# CONFIG_LIBC_WCHAR is not set
# CONFIG_LIBC_LOCALE is not set
CONFIG_LIB_RAND_ORDER=1 CONFIG_LIB_RAND_ORDER=1
# CONFIG_EOL_IS_CR is not set # CONFIG_EOL_IS_CR is not set
# CONFIG_EOL_IS_LF is not set # CONFIG_EOL_IS_LF is not set
@ -941,8 +976,12 @@ CONFIG_ARCH_LOWPUTC=y
# CONFIG_TIME_EXTENDED is not set # CONFIG_TIME_EXTENDED is not set
CONFIG_LIB_SENDFILE_BUFSIZE=512 CONFIG_LIB_SENDFILE_BUFSIZE=512
# CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_ROMGETC is not set
# CONFIG_MEMCPY_VIK is not set
# CONFIG_MEMSET_OPTSPEED is not set
CONFIG_ARCH_HAVE_TLS=y CONFIG_ARCH_HAVE_TLS=y
# CONFIG_TLS is not set # CONFIG_TLS is not set
# CONFIG_LIBC_IPv4_ADDRCONV is not set
# CONFIG_LIBC_IPv6_ADDRCONV is not set
# CONFIG_LIBC_NETDB is not set # CONFIG_LIBC_NETDB is not set
# CONFIG_NETDB_HOSTFILE is not set # CONFIG_NETDB_HOSTFILE is not set
@ -984,6 +1023,7 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024
# Examples # Examples
# #
# CONFIG_EXAMPLES_BUTTONS is not set # CONFIG_EXAMPLES_BUTTONS is not set
# CONFIG_EXAMPLES_CCTYPE is not set
# CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CHAT is not set
# CONFIG_EXAMPLES_CONFIGDATA is not set # CONFIG_EXAMPLES_CONFIGDATA is not set
# CONFIG_EXAMPLES_CXXTEST is not set # CONFIG_EXAMPLES_CXXTEST is not set
@ -1057,6 +1097,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y
# CONFIG_INTERPRETERS_BAS is not set # CONFIG_INTERPRETERS_BAS is not set
# CONFIG_INTERPRETERS_FICL is not set # CONFIG_INTERPRETERS_FICL is not set
# CONFIG_INTERPRETERS_MICROPYTHON is not set # CONFIG_INTERPRETERS_MICROPYTHON is not set
# CONFIG_INTERPRETERS_MINIBASIC is not set
# CONFIG_INTERPRETERS_PCODE is not set # CONFIG_INTERPRETERS_PCODE is not set
# #
@ -1127,6 +1168,7 @@ CONFIG_NSH_DISABLE_LOSMART=y
# CONFIG_NSH_DISABLE_MOUNT is not set # CONFIG_NSH_DISABLE_MOUNT is not set
# CONFIG_NSH_DISABLE_MV is not set # CONFIG_NSH_DISABLE_MV is not set
# CONFIG_NSH_DISABLE_MW is not set # CONFIG_NSH_DISABLE_MW is not set
CONFIG_NSH_DISABLE_PRINTF=y
# CONFIG_NSH_DISABLE_PS is not set # CONFIG_NSH_DISABLE_PS is not set
# CONFIG_NSH_DISABLE_PUT is not set # CONFIG_NSH_DISABLE_PUT is not set
# CONFIG_NSH_DISABLE_PWD is not set # CONFIG_NSH_DISABLE_PWD is not set
@ -1149,6 +1191,7 @@ CONFIG_NSH_MMCSDMINOR=0
# Configure Command Options # Configure Command Options
# #
# CONFIG_NSH_CMDOPT_DF_H is not set # CONFIG_NSH_CMDOPT_DF_H is not set
# CONFIG_NSH_CMDOPT_DD_STATS is not set
CONFIG_NSH_CODECS_BUFSIZE=128 CONFIG_NSH_CODECS_BUFSIZE=128
# CONFIG_NSH_CMDOPT_HEXDUMP is not set # CONFIG_NSH_CMDOPT_HEXDUMP is not set
CONFIG_NSH_PROC_MOUNTPOINT="/proc" CONFIG_NSH_PROC_MOUNTPOINT="/proc"
@ -1195,6 +1238,8 @@ CONFIG_READLINE_ECHO=y
# CONFIG_READLINE_TABCOMPLETION is not set # CONFIG_READLINE_TABCOMPLETION is not set
# CONFIG_READLINE_CMD_HISTORY is not set # CONFIG_READLINE_CMD_HISTORY is not set
# CONFIG_SYSTEM_SUDOKU is not set # CONFIG_SYSTEM_SUDOKU is not set
# CONFIG_SYSTEM_SYSTEM is not set
# CONFIG_SYSTEM_TEE is not set
# CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_UBLOXMODEM is not set
# CONFIG_SYSTEM_VI is not set # CONFIG_SYSTEM_VI is not set
# CONFIG_SYSTEM_ZMODEM is not set # CONFIG_SYSTEM_ZMODEM is not set