nuttx/boards/arm/sam34/sam4cmp-db
chao.an b88561299b make/expression: improving up asm/C/C++ compile times
In the current compilation environment, the recursive assignment(=) for compile
flags will be delayed until every file is actually need to be compile.

For example:
--------------------------------------------------------------------------------
arch/arm/src/Makefile:

INCLUDES += ${shell $(INCDIR) "$(CC)" $(ARCH_SRCDIR)$(DELIM)chip}
INCLUDES += ${shell $(INCDIR) "$(CC)" $(ARCH_SRCDIR)$(DELIM)common}
INCLUDES += ${shell $(INCDIR) "$(CC)" $(ARCH_SRCDIR)$(DELIM)$(ARCH_SUBDIR)}
INCLUDES += ${shell $(INCDIR) "$(CC)" $(TOPDIR)$(DELIM)sched}

CPPFLAGS += $(INCLUDES) $(EXTRAFLAGS)
CFLAGS += $(INCLUDES) $(EXTRAFLAGS)
CXXFLAGS += $(INCLUDES) $(EXTRAFLAGS)
AFLAGS += $(INCLUDES) $(EXTRAFLAGS)
--------------------------------------------------------------------------------

All compilation options will be included recursively,
which will be delayed until the compilation options are actually used:

tools/Config.mk:

--------------------------------------------------------------------------------
define COMPILE
  @echo "CC: $1"
  $(Q) $(CC) -c $(CFLAGS) $($(strip $1)_CFLAGS) $1 -o $2
endef
--------------------------------------------------------------------------------

All compile flags to be reexecuted $(INCDIR) as long as one file needs to be compiled,
but in fact, the compilation options have not changed in the current directory.

So the we recommand to change the syntax of assignment
From
    Recursive (=)
To
    Simple    (:=)

In this way, we can ensure that all compilation options are expanded only once and reducing repeated works.

Signed-off-by: chao.an <anchao@xiaomi.com>
2020-11-02 07:53:53 -08:00
..
configs/nsh libc/stdio: Allocate file_struct dynamically 2020-09-11 17:58:17 +08:00
include
scripts make/expression: improving up asm/C/C++ compile times 2020-11-02 07:53:53 -08:00
src build: Remove the empty variable assignment 2020-05-24 08:24:13 -06:00
Kconfig
README.txt Remove exra whitespace from files (#189) 2020-01-31 09:24:49 -06:00

README
^^^^^^

README for NuttX port to the SAM4CMP-DB board.

  http://www.atmel.com/tools/SAM4CMP-DB.aspx

The board is intended to test NuttX SMP features for dual Cortex-M4.


Settings
^^^^^^^^
1. Both CPUs are running at 92.160MHz with PLLB.
2. Serial console can be used via on-board USB-UART (115200/8/N/1)
3. Interrupt handlers such as timer and UART are handled on CPU0
4. Both CPUs share internal SRAM0 (128KB)
5. SRAM1 is used to boot CPU1.
6. Cache controllers are disabled because of no snooping features.

Status
^^^^^^
Currently SMP freature works on the board but is not stable.

1. "nsh> sleep 1 &" works without crash.
2. "nsh> smp " sometimes works but some assertions might happen.
3. "nsh> ostest " causes deadlocks during the test.