9
0
Fork 0

Makesystem changes to better support different SoCs

git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@184 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
patacongo 2007-04-25 00:09:44 +00:00
parent 43d40e49e3
commit 914e17dbe8
16 changed files with 111 additions and 40 deletions

View File

@ -114,4 +114,5 @@
0.2.4 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> 0.2.4 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
* Verfied c5471 build under Cygwin on WinXP * Verfied c5471 build under Cygwin on WinXP
* Makesystem changes to better support different SoCs.
* Started m68322 * Started m68322

View File

@ -331,16 +331,24 @@
The purpose of this port is primarily to support OS feature developement. The purpose of this port is primarily to support OS feature developement.
This port does not support interrupts or a real timer (and hence no This port does not support interrupts or a real timer (and hence no
round robin scheduler) Otherwise, it is complete. round robin scheduler) Otherwise, it is complete.
<li><code>arch/c5471</code>: <li><code>arch/c5471</code>:
TI TMS320C5471 (also called TMS320DM180 or just C5471). TI TMS320C5471 (also called TMS320DM180 or just C5471).
NuttX operates on the ARM7 of this dual core processor. NuttX operates on the ARM7 of this dual core processor.
This port is complete, verified, and included in the NuttX release 0.1.1. This port is complete, verified, and included in the NuttX release 0.1.1.
<li><code>configs/mcu123-lpc214x</code>:
The mcu123.com lpc214x development board.
This is a work in progress.
<li><code>arch/dm320</code>: <li><code>arch/dm320</code>:
TI TMS320DM320 (also called just DM320). TI TMS320DM320 (also called just DM320).
NuttX operates on the ARM9EJS of this dual core processor. NuttX operates on the ARM9EJS of this dual core processor.
This port complete, verified, and included in the NuttX release 0.2.1. This port complete, verified, and included in the NuttX release 0.2.1.
<li><code>arch/m68322</code> <li><code>arch/m68322</code>
A work in progress.</li> A work in progress.</li>
<li><code>arch/pjrc-8051</code>: <li><code>arch/pjrc-8051</code>:
8051 Microcontroller. This port is not quite ready for prime time.</li> 8051 Microcontroller. This port is not quite ready for prime time.</li>
</ul> </ul>
@ -463,6 +471,10 @@
with a GNU arm-elf toolchain*. This port is complete, verified, and with a GNU arm-elf toolchain*. This port is complete, verified, and
included in the NuttX release.</li> included in the NuttX release.</li>
<li><code>configs/mcu123-lpc214x</code>:
This is a port to the mcu123.com lpc214x development board.
This OS is also built with the arm-elf toolchain*.</li>
<li><code>configs/ntosd-dm320</code>: <li><code>configs/ntosd-dm320</code>:
This port uses the Neuros OSD with a GNU arm-elf toolchain*. This port uses the Neuros OSD with a GNU arm-elf toolchain*.
See <a href="http://wiki.neurostechnology.com/index.php/Developer_Welcome">Neuros Wiki</a> See <a href="http://wiki.neurostechnology.com/index.php/Developer_Welcome">Neuros Wiki</a>
@ -1035,8 +1047,19 @@ The system can be re-made subsequently by just typing <code>make</code>.
<h2>Architecture selection</h2> <h2>Architecture selection</h2>
<ul> <ul>
<li><code>CONFIG_ARCH</code>: identifies the arch subdirectory <li><code>CONFIG_ARCH</code>:
<li><code>CONFIG_ARCH_name</code>: for use in C code Identifies the arch subdirectory</li>
<li><code>CONFIG_ARCH_name</code>:
For use in C code</li>
<li><code>CONFIG_ARCH_CHIP</code>:
Identifies the arch/*/chip subdirectory</li>
<li><code>CONFIG_ARCH_CHIP_name</code>:
For use in C code</li>
<li><code>CONFIG_ARCH_BOARD</code>:
Identifies the configs subdirectory and hence, the board that supports
the particular chip or SoC.</li>
<li><code>CONFIG_ARCH_BOARD_name</code>:
For use in C code</li>
</ul> </ul>
<h2>General OS setup</h2> <h2>General OS setup</h2>

View File

@ -40,7 +40,7 @@ TOPDIR = ${shell pwd}
ARCH_DIR = arch/$(CONFIG_ARCH) ARCH_DIR = arch/$(CONFIG_ARCH)
ARCH_SRC = $(ARCH_DIR)/src ARCH_SRC = $(ARCH_DIR)/src
ARCH_INC = $(ARCH_DIR)/include ARCH_INC = $(ARCH_DIR)/include
BOARD_DIR = configs/$(CONFIG_BOARD) BOARD_DIR = configs/$(CONFIG_ARCH_BOARD)
SUBDIRS = sched lib $(ARCH_SRC) mm fs drivers examples/$(CONFIG_EXAMPLE) SUBDIRS = sched lib $(ARCH_SRC) mm fs drivers examples/$(CONFIG_EXAMPLE)
@ -53,12 +53,15 @@ BIN = nuttx$(EXEEXT)
all: $(BIN) all: $(BIN)
.PHONY: clean context clean_context distclean .PHONY: clean context clean_context distclean
# Build the mkconfig tool used to create include/nuttx/config.h
tools/mkconfig: tools/mkconfig:
$(MAKE) -C tools -f Makefile.mkconfig TOPDIR=$(TOPDIR) mkconfig $(MAKE) -C tools -f Makefile.mkconfig TOPDIR=$(TOPDIR) mkconfig
# Create the include/nuttx/config.h file
include/nuttx/config.h: $(TOPDIR)/.config tools/mkconfig include/nuttx/config.h: $(TOPDIR)/.config tools/mkconfig
tools/mkconfig $(TOPDIR) > include/nuttx/config.h tools/mkconfig $(TOPDIR) > include/nuttx/config.h
# link the arch/<arch-name>/include dir to include/arch
include/arch: Make.defs include/arch: Make.defs
@if [ -e include/arch ]; then \ @if [ -e include/arch ]; then \
if [ -h include/arch ]; then \ if [ -h include/arch ]; then \
@ -70,6 +73,7 @@ include/arch: Make.defs
fi fi
@ln -s $(TOPDIR)/$(ARCH_DIR)/include include/arch @ln -s $(TOPDIR)/$(ARCH_DIR)/include include/arch
# Link the configs/<board-name>/include dir to include/arch/board
include/arch/board: Make.defs include/arch include/arch/board: Make.defs include/arch
@if [ -e include/arch/board ]; then \ @if [ -e include/arch/board ]; then \
if [ -h include/arch/board ]; then \ if [ -h include/arch/board ]; then \
@ -81,6 +85,7 @@ include/arch/board: Make.defs include/arch
fi fi
@ln -s $(TOPDIR)/$(BOARD_DIR)/include include/arch/board @ln -s $(TOPDIR)/$(BOARD_DIR)/include include/arch/board
# Link the configs/<board-name>/src dir to arch/<arch-name>/src/board
$(ARCH_SRC)/board: Make.defs $(ARCH_SRC)/board: Make.defs
@if [ -e $(ARCH_SRC)/board ]; then \ @if [ -e $(ARCH_SRC)/board ]; then \
if [ -h $(ARCH_SRC)/board ]; then \ if [ -h $(ARCH_SRC)/board ]; then \
@ -92,10 +97,45 @@ $(ARCH_SRC)/board: Make.defs
fi fi
@ln -s $(TOPDIR)/$(BOARD_DIR)/src $(ARCH_SRC)/board @ln -s $(TOPDIR)/$(BOARD_DIR)/src $(ARCH_SRC)/board
context: check_context include/nuttx/config.h include/arch include/arch/board $(ARCH_SRC)/board # Link arch/<arch-name>/include/<chip-name> to arch/<arch-name>/include/chip
$(ARCH_SRC)/chip: Make.defs
ifneq ($(CONFIG_ARCH_CHIP),)
@if [ -e $(ARCH_SRC)/chip ]; then \
if [ -h $(ARCH_SRC)/chip ]; then \
rm -f $(ARCH_SRC)/chip ; \
else \
echo "$(ARCH_SRC)/chip exists but is not a symbolic link" ; \
exit 1 ; \
fi ; \
fi
@ln -s $(CONFIG_ARCH_CHIP) $(ARCH_SRC)/chip
endif
# Link arch/<arch-name>/src/<chip-name> to arch/<arch-name>/src/chip
$(ARCH_INC)/chip: Make.defs
ifneq ($(CONFIG_ARCH_CHIP),)
@if [ -e $(ARCH_INC)/chip ]; then \
if [ -h $(ARCH_INC)/chip ]; then \
rm -f $(ARCH_INC)/chip ; \
else \
echo "$(ARCH_INC)/chip exists but is not a symbolic link" ; \
exit 1 ; \
fi ; \
fi
@ln -s $(CONFIG_ARCH_CHIP) $(ARCH_INC)/chip
endif
dirlinks: include/arch include/arch/board $(ARCH_SRC)/board $(ARCH_SRC)/chip $(ARCH_INC)/chip
context: check_context include/nuttx/config.h dirlinks
clean_context: clean_context:
rm -f include/nuttx/config.h include/arch $(ARCH_INC)/board $(ARCH_SRC)/board @rm -f include/nuttx/config.h include/arch
@if [ -h include/arch ]; then rm -f include/arch ; fi
@if [ -h $(ARCH_INC)/board ]; then rm -f $(ARCH_INC)/board ; fi
@if [ -h $(ARCH_SRC)/board ]; then rm -f $(ARCH_SRC)/board ; fi
@if [ -h $(ARCH_INC)/chip ]; then rm -f $(ARCH_INC)/chip ; fi
@if [ -h $(ARCH_SRC)/chip ]; then rm -f $(ARCH_SRC)/chip ; fi
check_context: check_context:
@if [ ! -e ${TOPDIR}/.config -o ! -e ${TOPDIR}/Make.defs ]; then \ @if [ ! -e ${TOPDIR}/.config -o ! -e ${TOPDIR}/Make.defs ]; then \

View File

@ -46,7 +46,7 @@
# include <sys/types.h> # include <sys/types.h>
#endif #endif
#if defined(CONFIG_BOARD_C5471EVM) #if defined(CONFIG_ARCH_BOARD_C5471EVM)
# include <arch/board/c5471evm.h> # include <arch/board/c5471evm.h>
#else #else
# warning "Undefined C5471 Board" # warning "Undefined C5471 Board"

View File

@ -42,7 +42,7 @@
#include <nuttx/config.h> #include <nuttx/config.h>
#if defined(CONFIG_BOARD_C5471EVM) #if defined(CONFIG_ARCH_BOARD_C5471EVM)
# include <arch/board/c5471evm.h> # include <arch/board/c5471evm.h>
#else #else
# warning "Undefined C5471 Board" # warning "Undefined C5471 Board"

View File

@ -47,7 +47,7 @@
#include "arm9.h" #include "arm9.h"
#if defined(CONFIG_BOARD_NTOSD_DM320) #if defined(CONFIG_ARCH_BOARD_NTOSD_DM320)
# include <arch/board/ntosd.h> # include <arch/board/ntosd.h>
#else #else
# warning "Unknown DM320 board" # warning "Unknown DM320 board"

View File

@ -43,7 +43,7 @@
#include <nuttx/config.h> #include <nuttx/config.h>
#include <arch/irq.h> #include <arch/irq.h>
#if defined(CONFIG_BOARD_PJRC_87C52) #if defined(CONFIG_ARCH_BOARD_PJRC_87C52)
# include <arch/board/pjrc.h> # include <arch/board/pjrc.h>
#else #else
# warning "805x board not recognized" # warning "805x board not recognized"

View File

@ -104,8 +104,13 @@ defconfig -- This is a configuration file similar to the Linux
Architecture selection: Architecture selection:
CONFIG_ARCH - identifies the arch/ subdirectory CONFIG_ARCH - Identifies the arch/ subdirectory
CONFIG_ARCH_name - for use in C code CONFIG_ARCH_name - For use in C code
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
CONFIG_ARCH_CHIP_name - For use in C code
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
hence, the board that supports the particular chip or SoC.
CONFIG_ARCH_BOARD_name - For use in C code
General OS setup General OS setup
@ -220,6 +225,10 @@ configs/c5471evm
with a GNU arm-elf toolchain*. This port is complete, verified, and with a GNU arm-elf toolchain*. This port is complete, verified, and
included in the NuttX release. included in the NuttX release.
configs/mcu123-lpc214x
This is a port to the mcu123.com lpc214x development board.
This OS is also built with the the arm-elf toolchain*
configs/ntosd-dm320 configs/ntosd-dm320
This port uses the Neuros OSD with a GNU arm-elf toolchain*: This port uses the Neuros OSD with a GNU arm-elf toolchain*:
see http://wiki.neurostechnology.com/index.php/Developer_Welcome . see http://wiki.neurostechnology.com/index.php/Developer_Welcome .

View File

@ -47,7 +47,7 @@ ARCHPICFLAGS = -fpic
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
ARCHDEFINES = ARCHDEFINES =
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_BOARD)/ld.script ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/ld.script
CROSSDEV = arm-elf- CROSSDEV = arm-elf-
CC = $(CROSSDEV)gcc CC = $(CROSSDEV)gcc

View File

@ -40,9 +40,9 @@
# CONFIG_ARCH_name - for use in C code. This identifies the # CONFIG_ARCH_name - for use in C code. This identifies the
# particular chip or SoC that the architecture is implemented # particular chip or SoC that the architecture is implemented
# in. # in.
# CONFIG_BOARD - identifies the configs subdirectory and, hence, # CONFIG_ARCH_BOARD - identifies the configs subdirectory and, hence,
# the board that supports the particular chip or SoC. # the board that supports the particular chip or SoC.
# CONFIG_BOARD_name - for use in C code # CONFIG_ARCH_BOARD_name - for use in C code
# CONFIG_ROM_VECTORS - unique to c5471 # CONFIG_ROM_VECTORS - unique to c5471
# CONFIG_DRAM_END - the size of installed DRAM. # CONFIG_DRAM_END - the size of installed DRAM.
# Unique to c5471 # Unique to c5471
@ -51,8 +51,8 @@
# #
CONFIG_ARCH=c5471 CONFIG_ARCH=c5471
CONFIG_ARCH_C5471=y CONFIG_ARCH_C5471=y
CONFIG_BOARD=c5471evm CONFIG_ARCH_BOARD=c5471evm
CONFIG_BOARD_C5471EVM=y CONFIG_ARCH_BOARD_C5471EVM=y
CONFIG_ROM_VECTORS=n CONFIG_ROM_VECTORS=n
CONFIG_DRAM_END=0x11000000 CONFIG_DRAM_END=0x11000000
CONFIG_ARCH_LEDS=y CONFIG_ARCH_LEDS=y

View File

@ -47,7 +47,7 @@ ARCHPICFLAGS = -pic
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
ARCHDEFINES = ARCHDEFINES =
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_BOARD)/ld.script ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/ld.script
CROSSDEV = m68k-elf- CROSSDEV = m68k-elf-
CC = $(CROSSDEV)gcc CC = $(CROSSDEV)gcc

View File

@ -40,17 +40,17 @@
# CONFIG_ARCH_name - for use in C code. This identifies the # CONFIG_ARCH_name - for use in C code. This identifies the
# particular chip or SoC that the architecture is implemented # particular chip or SoC that the architecture is implemented
# in. # in.
# CONFIG_BOARD - identifies the configs subdirectory and, hence, # CONFIG_ARCH_BOARD - identifies the configs subdirectory and, hence,
# the board that supports the particular chip or SoC. # the board that supports the particular chip or SoC.
# CONFIG_BOARD_name - for use in C code # CONFIG_ARCH_BOARD_name - for use in C code
# CONFIG_DRAM_SIZE - Describes the installed DRAM. # CONFIG_DRAM_SIZE - Describes the installed DRAM.
# CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions # CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
# #
CONFIG_ARCH=m68332evb CONFIG_ARCH=m68332evb
CONFIG_ARCH_M68332=y CONFIG_ARCH_M68332=y
CONFIG_ARCH_M68332EVB=y CONFIG_ARCH_M68332EVB=y
CONFIG_BOARD=m68332evb CONFIG_ARCH_BOARD=m68332evb
CONFIG_BOARD_M68332EVB=y CONFIG_ARCH_BOARD_M68332EVB=y
CONFIG_DRAM_SIZE=0x003000 CONFIG_DRAM_SIZE=0x003000
CONFIG_DRAM_NUTTXENTRY=0x003000 CONFIG_DRAM_NUTTXENTRY=0x003000
CONFIG_ARCH_STACKDUMP=y CONFIG_ARCH_STACKDUMP=y

View File

@ -47,7 +47,7 @@ ARCHPICFLAGS = -fpic
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
ARCHDEFINES = ARCHDEFINES =
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_BOARD)/ld.script ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/ld.script
CROSSDEV = arm-elf- CROSSDEV = arm-elf-
CC = $(CROSSDEV)gcc CC = $(CROSSDEV)gcc

View File

@ -40,17 +40,17 @@
# CONFIG_ARCH_name - for use in C code. This identifies the # CONFIG_ARCH_name - for use in C code. This identifies the
# particular chip or SoC that the architecture is implemented # particular chip or SoC that the architecture is implemented
# in. # in.
# CONFIG_BOARD - identifies the configs subdirectory and, hence, # CONFIG_ARCH_BOARD - identifies the configs subdirectory and, hence,
# the board that supports the particular chip or SoC. # the board that supports the particular chip or SoC.
# CONFIG_BOARD_name - for use in C code # CONFIG_ARCH_BOARD_name - for use in C code
# CONFIG_ROM_VECTORS - unique to dm320 # CONFIG_ROM_VECTORS - unique to dm320
# CONFIG_DRAM_SIZE - Describes the installed DRAM. # CONFIG_DRAM_SIZE - Describes the installed DRAM.
# CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions # CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
# #
CONFIG_ARCH=dm320 CONFIG_ARCH=dm320
CONFIG_ARCH_DM320=y CONFIG_ARCH_DM320=y
CONFIG_BOARD=ntosd-dm320 CONFIG_ARCH_BOARD=ntosd-dm320
CONFIG_BOARD_NTOSD_DM320=y CONFIG_ARCH_BOARD_NTOSD_DM320=y
CONFIG_ROM_VECTORS=n CONFIG_ROM_VECTORS=n
CONFIG_DRAM_SIZE=0x01000000 CONFIG_DRAM_SIZE=0x01000000
CONFIG_DRAM_NUTTXENTRY=0x01008000 CONFIG_DRAM_NUTTXENTRY=0x01008000

View File

@ -39,17 +39,15 @@
# processor architecture. # processor architecture.
# CONFIG_ARCH_8051 - Set if processor is 8051 family # CONFIG_ARCH_8051 - Set if processor is 8051 family
# CONFIG_ARCH_8052 = Set if processor is 8052 family # CONFIG_ARCH_8052 = Set if processor is 8052 family
# CONFIG_BOARD - identifies the configs subdirectory and, hence, # CONFIG_ARCH_BOARD - identifies the configs subdirectory and, hence,
# the board that supports the particular chip or SoC. # the board that supports the particular chip or SoC.
# CONFIG_BOARD_name - for use in C code # CONFIG_ARCH_BOARD_name - for use in C code
# CONFIG_BOARD - identifies the configs subdirectory
# CONFIG_BARD_name - for use in C code
# #
CONFIG_ARCH=pjrc-8051 CONFIG_ARCH=pjrc-8051
CONFIG_ARCH_8051=n CONFIG_ARCH_8051=n
CONFIG_ARCH_8052=y CONFIG_ARCH_8052=y
CONFIG_BOARD=pjrc-8051 CONFIG_ARCH_BOARD=pjrc-8051
CONFIG_BOARD_PJRC_87C52=y CONFIG_ARCH_BOARD_PJRC_87C52=y
# #
# Architecture-specific settings. These may mean nothing to # Architecture-specific settings. These may mean nothing to

View File

@ -40,14 +40,14 @@
# CONFIG_ARCH_name - for use in C code. This identifies the # CONFIG_ARCH_name - for use in C code. This identifies the
# particular chip or SoC that the architecture is implemented # particular chip or SoC that the architecture is implemented
# in. # in.
# CONFIG_BOARD - identifies the configs subdirectory and, hence, # CONFIG_ARCH_BOARD - identifies the configs subdirectory and, hence,
# the board that supports the particular chip or SoC. # the board that supports the particular chip or SoC.
# CONFIG_BOARD_name - for use in C code # CONFIG_ARCH_BOARD_name - for use in C code
# #
CONFIG_ARCH=sim CONFIG_ARCH=sim
CONFIG_ARCH_SIM=y CONFIG_ARCH_SIM=y
CONFIG_BOARD=sim CONFIG_ARCH_BOARD=sim
CONFIG_BOARD_SIM=y CONFIG_ARCH_BOARD_SIM=y
# #
# General OS setup # General OS setup