summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-12-08 23:21:34 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-12-08 23:21:34 +0000
commit9085db20b3c7ce781f807e5570ed5c8dc84a66d7 (patch)
tree83bb117870ea8382a5ffcdfb0c0eb914d552389b
parent2bef6dd877c954012f38fed920631e9f7ce2c88d (diff)
downloadnuttx-9085db20b3c7ce781f807e5570ed5c8dc84a66d7.tar.gz
nuttx-9085db20b3c7ce781f807e5570ed5c8dc84a66d7.tar.bz2
nuttx-9085db20b3c7ce781f807e5570ed5c8dc84a66d7.zip
configs/xtrs/ostest converted to kconfig-frontend and Windows native
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5421 42af7a65-404d-4744-a932-0658087f49c3
-rw-r--r--nuttx/ChangeLog3
-rw-r--r--nuttx/arch/z80/src/Makefile.sdccl3
-rw-r--r--nuttx/arch/z80/src/Makefile.sdccw3
-rw-r--r--nuttx/arch/z80/src/ez80/Kconfig9
-rw-r--r--nuttx/arch/z80/src/z8/Kconfig9
-rw-r--r--nuttx/arch/z80/src/z80/Kconfig42
-rw-r--r--nuttx/configs/Kconfig1
-rw-r--r--nuttx/configs/xtrs/README.txt30
-rw-r--r--nuttx/configs/xtrs/ostest/appconfig39
-rw-r--r--nuttx/configs/xtrs/ostest/defconfig552
-rw-r--r--nuttx/configs/xtrs/ostest/setenv.bat54
-rwxr-xr-xnuttx/configs/xtrs/scripts/setenv.sh (renamed from nuttx/configs/xtrs/ostest/setenv.sh)37
-rw-r--r--nuttx/configs/xtrs/src/xtr_lowputc.c24
-rw-r--r--nuttx/configs/xtrs/src/xtrs_head.asm240
-rw-r--r--nuttx/configs/z80sim/README.txt5
-rw-r--r--nuttx/configs/z80sim/nsh/defconfig2
-rw-r--r--nuttx/configs/z80sim/ostest/defconfig2
-rw-r--r--nuttx/configs/z80sim/pashello/defconfig2
-rw-r--r--nuttx/drivers/serial/Kconfig30
19 files changed, 742 insertions, 345 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog
index 0bf9ec971..e77c70e8f 100644
--- a/nuttx/ChangeLog
+++ b/nuttx/ChangeLog
@@ -3767,4 +3767,7 @@
* tools/copydir.sh: Rename tools/winlink.sh to tools/copydir.sh
* tools/link.bat, unlink.bat, and copydir.bat: Add Windows counterparts
to the link.sh, unlink.sh, and copydir.sh Bash scripts.
+ * configs/z80sim/pashello: Now builds correctly.
+ * configs/xtrs/ostest: Converted to (1) used the kconfig-frontends
+ configuration tool, and (2) to build natively under Windows.
diff --git a/nuttx/arch/z80/src/Makefile.sdccl b/nuttx/arch/z80/src/Makefile.sdccl
index 3ccf2e33e..cbb3f8656 100644
--- a/nuttx/arch/z80/src/Makefile.sdccl
+++ b/nuttx/arch/z80/src/Makefile.sdccl
@@ -147,6 +147,9 @@ nuttx.lnk:
echo "-l $(TOPDIR)/lib/$$LIB" >> nuttx.lnk ;\
done
@echo "-l $(SDCCLIB)" >>nuttx.lnk # Name of SDCC z80 library
+ifneq ($(CONFIG_LINKER_HOME_AREA),)
+ @echo "-b _HOME=$(CONFIG_LINKER_HOME_AREA)" >>nuttx.lnk # Start of _HOME area
+endif
ifneq ($(CONFIG_LINKER_CODE_AREA),)
@echo "-b _CODE=$(CONFIG_LINKER_CODE_AREA)" >>nuttx.lnk # Start of _CODE area
else
diff --git a/nuttx/arch/z80/src/Makefile.sdccw b/nuttx/arch/z80/src/Makefile.sdccw
index 3c36439d9..372786a87 100644
--- a/nuttx/arch/z80/src/Makefile.sdccw
+++ b/nuttx/arch/z80/src/Makefile.sdccw
@@ -145,6 +145,9 @@ nuttx.lnk:
@echo -l libboard$(LIBEXT)>>nuttx.lnk
$(Q) for %%G in ($(LINKLIBS)) do ( echo -l $(TOPDIR)\lib\%%G>> nuttx.lnk )
@echo -l $(SDCCLIB)>>nuttx.lnk
+ifneq ($(CONFIG_LINKER_HOME_AREA),)
+ @echo -b _HOME=$(CONFIG_LINKER_HOME_AREA)>>nuttx.lnk
+endif
ifneq ($(CONFIG_LINKER_CODE_AREA),)
@echo -b _CODE=$(CONFIG_LINKER_CODE_AREA)>>nuttx.lnk
else
diff --git a/nuttx/arch/z80/src/ez80/Kconfig b/nuttx/arch/z80/src/ez80/Kconfig
index d257ca285..76cdd5f9f 100644
--- a/nuttx/arch/z80/src/ez80/Kconfig
+++ b/nuttx/arch/z80/src/ez80/Kconfig
@@ -31,6 +31,15 @@ config EZ80_EMAC
endmenu
+# The ZiLOG ZDS-II Windows toolchain is the only toolchain available for
+# the ez80.
+#
+
+config EZ80_TOOLCHAIN_ZDSII
+ bool
+ default y if ARCH_CHIP_EZ80
+ default n if !ARCH_CHIP_EZ80
+
if EZ80_EMAC
config EZ80_FIAD
diff --git a/nuttx/arch/z80/src/z8/Kconfig b/nuttx/arch/z80/src/z8/Kconfig
index 2bf89905e..79bb5eb5c 100644
--- a/nuttx/arch/z80/src/z8/Kconfig
+++ b/nuttx/arch/z80/src/z8/Kconfig
@@ -17,4 +17,13 @@ config Z8_UART1
default y
select ARCH_HAVE_UART1
+# The ZiLOG ZDS-II Windows toolchain is the only toolchain available for
+# the ez80.
+#
+
+config Z8_TOOLCHAIN_ZDSII
+ bool
+ default y if ARCH_CHIP_Z8
+ default n if !ARCH_CHIP_Z8
+
endif
diff --git a/nuttx/arch/z80/src/z80/Kconfig b/nuttx/arch/z80/src/z80/Kconfig
index 233b6ec90..8bebdfae2 100644
--- a/nuttx/arch/z80/src/z80/Kconfig
+++ b/nuttx/arch/z80/src/z80/Kconfig
@@ -6,18 +6,50 @@
if ARCH_CHIP_Z80
choice
- prompt "Toolchain Selection"
- default Z80_TOOLCHAIN_SDCCW if HOST_WINDOWS
- default Z80_TOOLCHAIN_SDCCL if !HOST_WINDOWS
+ prompt "Toolchain Selection"
+ default Z80_TOOLCHAIN_SDCCW if HOST_WINDOWS
+ default Z80_TOOLCHAIN_SDCCL if !HOST_WINDOWS
config Z80_TOOLCHAIN_SDCCL
bool "SDCC for Linux, MAC OSX, or Cygwin"
depends on !WINDOWS_NATIVE
config Z80_TOOLCHAIN_SDCCW
- bool "SDCC for Windows"
- depends on HOST_WINDOWS
+ bool "SDCC for Windows"
+ depends on HOST_WINDOWS
endchoice
+config LINKER_HOME_AREA
+ hex "Start of _HOME area"
+ default 0x0000
+ ---help---
+ Start of the linker HOME area. Default: 0x0000
+
+config LINKER_CODE_AREA
+ hex "Start of _CODE area"
+ default 0x0200
+ ---help---
+ Start of the linker _CODE area. Default: 0x0200
+
+config LINKER_DATA_AREA
+ hex "Start of _DATA area"
+ default 0x8000
+ ---help---
+ Start of the linker _DATA area. Default: 0x8000
+
+config LINKER_ROM_AT_0000
+ bool "ROM at 0x0000"
+ default n
+ ---help---
+ Some architectures may have ROM located at address zero. In this
+ case, a special version of the "head" file must be used.
+
+config ARCH_HAVEHEAD
+ bool "Board-specific Head File"
+ default n
+ ---help---
+ Use a board-specific version of the "head" file in the
+ configs/<board-name>/src directory
+
endif
diff --git a/nuttx/configs/Kconfig b/nuttx/configs/Kconfig
index 7adfcee86..50e1cc600 100644
--- a/nuttx/configs/Kconfig
+++ b/nuttx/configs/Kconfig
@@ -548,6 +548,7 @@ config ARCH_BOARD_VSN
config ARCH_BOARD_XTRS
bool "XTRS TRS80 Model 3 emulation"
depends on ARCH_CHIP_Z80
+ select ARCH_HAVE_UART
---help---
TRS80 Model 3. This port uses a vintage computer based on the Z80.
An emulator for this computer is available to run TRS80 programs on a
diff --git a/nuttx/configs/xtrs/README.txt b/nuttx/configs/xtrs/README.txt
index dae8a51ba..9f94ed9ad 100644
--- a/nuttx/configs/xtrs/README.txt
+++ b/nuttx/configs/xtrs/README.txt
@@ -52,10 +52,29 @@ Configuring NuttX
This configuration performs a simple, minimal OS test using
examples/ostest. This can be configurated as follows:
+ 1) From a POSIX window:
cd tools
- ./configure.sh xtrs/ostest
- cd -
- . ./setenv.sh
+ ./configure.sh z80sim/pashello
+ 2) From a CMD.exe window
+ setenv.bat
+
+ The setenv.bat will need to be updated to include the PATH to the XTRS
+ hex2cmd program.
+
+ NOTES:
+
+ 1. This configuration uses the mconf-based configuration tool. See the
+ "Reconfiguring" section below for information about changing this
+ configuration.
+
+ 2. The default setup for this configuration uses a windows native build.
+ See the section entitled "Reconfiguring for Linux, OSX, or Cygwin"
+ which will give you the steps you would need to do to convert this
+ configuration to build in other, Unix-like environments.
+
+ 3. This configuration was last verified sucessfully prior to the
+ the configure to Kconfig/mconf tool using SDCC 2.6.0 built to run
+ natively under Cygwin. The current build requires ca. 3.2.1 SDCC.
nsh
@@ -118,8 +137,13 @@ by modifying the configuration file as follows:
You may need to first manually change the CONFIG_APPS_DIR="..\apps" definition
in the .config file because the backslash may upset some Unix-based tools.
+This configuration will require a recent version of SDCC (ca. 3.2.1) for Linux
+or custom built for Cygwin (see below).
+
You cannot use the default setenv.bat in these Unix-like enviroments because
that is a Windows batch file. Use configs/z80sim/script/setenv.sh instead.
+setenv.sh must include the path to the installation location of SDCC (probably
+/usr/local/bin).
SDCC
^^^^
diff --git a/nuttx/configs/xtrs/ostest/appconfig b/nuttx/configs/xtrs/ostest/appconfig
deleted file mode 100644
index d99892985..000000000
--- a/nuttx/configs/xtrs/ostest/appconfig
+++ /dev/null
@@ -1,39 +0,0 @@
-############################################################################
-# configs/xtrs/ostest/appconfig
-#
-# Copyright (C) 2011 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.
-#
-############################################################################
-
-# Path to example in apps/examples containing the user_start entry point
-
-CONFIGURED_APPS += examples/ostest
-
diff --git a/nuttx/configs/xtrs/ostest/defconfig b/nuttx/configs/xtrs/ostest/defconfig
index 0104deb2c..32a7711fc 100644
--- a/nuttx/configs/xtrs/ostest/defconfig
+++ b/nuttx/configs/xtrs/ostest/defconfig
@@ -1,107 +1,146 @@
-############################################################################
-# configs/xtrs/ostest/defconfig
-#
-# Copyright (C) 2008-2010, 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.
-#
-############################################################################
-#
-# Architecture selection
#
-CONFIG_ARCH="z80"
+# Automatically generated file; DO NOT EDIT.
+# Nuttx/ Configuration
+#
+CONFIG_NUTTX_NEWCONFIG=y
+
+#
+# Build Setup
+#
+# CONFIG_EXPERIMENTAL is not set
+# CONFIG_HOST_LINUX is not set
+# CONFIG_HOST_OSX is not set
+CONFIG_HOST_WINDOWS=y
+# CONFIG_HOST_OTHER is not set
+CONFIG_WINDOWS_NATIVE=y
+# CONFIG_WINDOWS_CYGWIN is not set
+# CONFIG_WINDOWS_MSYS is not set
+# CONFIG_WINDOWS_OTHER is not set
+# CONFIG_WINDOWS_MKLINK is not set
+
+#
+# Build Configuration
+#
+# CONFIG_APPS_DIR="..\apps"
+# CONFIG_BUILD_2PASS is not set
+
+#
+# Binary Output Formats
+#
+# CONFIG_RRLOAD_BINARY is not set
+# CONFIG_INTELHEX_BINARY is not set
+# CONFIG_MOTOROLA_SREC is not set
+# CONFIG_RAW_BINARY is not set
+
+#
+# Customize Header Files
+#
+# CONFIG_ARCH_STDBOOL_H is not set
+# CONFIG_ARCH_MATH_H is not set
+# CONFIG_ARCH_FLOAT_H is not set
+# CONFIG_ARCH_STDARG_H is not set
+
+#
+# Debug Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_SYMBOLS is not set
+
+#
+# System Type
+#
+# CONFIG_ARCH_8051 is not set
+# CONFIG_ARCH_ARM is not set
+# CONFIG_ARCH_AVR is not set
+# CONFIG_ARCH_HC is not set
+# CONFIG_ARCH_MIPS is not set
+# CONFIG_ARCH_RGMP is not set
+# CONFIG_ARCH_SH is not set
+# CONFIG_ARCH_SIM is not set
+# CONFIG_ARCH_X86 is not set
+# CONFIG_ARCH_Z16 is not set
CONFIG_ARCH_Z80=y
+CONFIG_ARCH="z80"
CONFIG_ARCH_CHIP="z80"
+CONFIG_BOARD_LOOPSPERMSEC=100
CONFIG_ARCH_CHIP_Z80=y
-CONFIG_ARCH_BOARD="xtrs"
-CONFIG_ARCH_BOARD_XTRS=y
+# CONFIG_ARCH_CHIP_Z8F6403 is not set
+# CONFIG_ARCH_CHIP_Z8F6423 is not set
+# CONFIG_ARCH_CHIP_EZ80F91 is not set
+# CONFIG_ARCH_CHIP_EZ80F92 is not set
+# CONFIG_ARCH_CHIP_EZ80F93 is not set
+# CONFIG_Z80_TOOLCHAIN_SDCCL is not set
+CONFIG_Z80_TOOLCHAIN_SDCCW=y
+CONFIG_LINKER_HOME_AREA=0x5200
+CONFIG_LINKER_CODE_AREA=0x5300
+CONFIG_LINKER_DATA_AREA=0x8000
+CONFIG_LINKER_ROM_AT_0000=y
+# CONFIG_ARCH_HAVEHEAD is not set
+
+#
+# Architecture Options
+#
+# CONFIG_ARCH_NOINTC is not set
+# CONFIG_ARCH_DMA is not set
+# CONFIG_ARCH_IRQPRIO is not set
+# CONFIG_ARCH_STACKDUMP is not set
+# CONFIG_ENDIAN_BIG is not set
+
+#
+# Board Settings
+#
+CONFIG_DRAM_START=
CONFIG_DRAM_SIZE=65536
#
-# xtrs specific device driver settings
+# Boot options
#
-CONFIG_UART_RXBUFSIZE=256
-CONFIG_UART_TXBUFSIZE=256
+# CONFIG_BOOT_RUNFROMEXTSRAM is not set
+CONFIG_BOOT_RUNFROMFLASH=y
+# CONFIG_BOOT_RUNFROMISRAM is not set
+# CONFIG_BOOT_RUNFROMSDRAM is not set
+# CONFIG_BOOT_COPYTORAM is not set
#
-# General build options
+# Board Selection
#
-CONFIG_RRLOAD_BINARY=n
-CONFIG_INTELHEX_BINARY=n
-CONFIG_RAW_BINARY=n
+CONFIG_ARCH_BOARD_XTRS=y
+# CONFIG_ARCH_BOARD_Z80SIM is not set
+# CONFIG_ARCH_BOARD_CUSTOM is not set
+CONFIG_ARCH_BOARD="xtrs"
-CONFIG_LINKER_START_AREA=0x5200
-CONFIG_LINKER_CODE_AREA=0x5300
-CONFIG_LINKER_ROM_AT_0000=y
+#
+# Common Board Options
+#
#
-# General OS setup
+# Board-Specific Options
#
-CONFIG_USER_ENTRYPOINT="ostest_main"
-CONFIG_DEBUG=n
-CONFIG_DEBUG_VERBOSE=n
-CONFIG_DEBUG_SYMBOLS=n
-CONFIG_MM_REGIONS=1
-CONFIG_ARCH_LOWPUTC=y
+
+#
+# RTOS Features
+#
+CONFIG_MSEC_PER_TICK=10
CONFIG_RR_INTERVAL=0
-CONFIG_SCHED_INSTRUMENTATION=n
+# CONFIG_SCHED_INSTRUMENTATION is not set
CONFIG_TASK_NAME_SIZE=0
+# CONFIG_JULIAN_TIME is not set
CONFIG_START_YEAR=2008
CONFIG_START_MONTH=2
CONFIG_START_DAY=21
-CONFIG_JULIAN_TIME=n
-CONFIG_HAVE_LOWUARTINIT=n
-CONFIG_DEV_CONSOLE=n
-CONFIG_DEV_LOWCONSOLE=n
-CONFIG_MUTEX_TYPES=n
-CONFIG_PRIORITY_INHERITANCE=n
-CONFIG_SEM_PREALLOCHOLDERS=0
-CONFIG_SEM_NNESTPRIO=0
-CONFIG_FDCLONE_DISABLE=n
-CONFIG_FDCLONE_STDIO=n
+# CONFIG_DEV_CONSOLE is not set
+# CONFIG_DEV_LOWCONSOLE is not set
+# CONFIG_MUTEX_TYPES is not set
+# CONFIG_PRIORITY_INHERITANCE is not set
+# CONFIG_FDCLONE_DISABLE is not set
+# CONFIG_FDCLONE_STDIO is not set
CONFIG_SDCLONE_DISABLE=y
-
-#
-# The following can be used to disable categories of
-# APIs supported by the OS. If the compiler supports
-# weak functions, then it should not be necessary to
-# disable functions unless you want to restrict usage
-# of those APIs.
-#
-# There are certain dependency relationships in these
-# features.
-#
-# o mq_notify logic depends on signals to awaken tasks
-# waiting for queues to become full or empty.
-# o pthread_condtimedwait() depends on signals to wake
-# up waiting tasks.
-#
+# CONFIG_SCHED_WORKQUEUE is not set
+# CONFIG_SCHED_WAITPID is not set
+# CONFIG_SCHED_ATEXIT is not set
+# CONFIG_SCHED_ONEXIT is not set
+CONFIG_USER_ENTRYPOINT="ostest_main"
+CONFIG_DISABLE_OS_API=y
CONFIG_DISABLE_CLOCK=y
CONFIG_DISABLE_POSIX_TIMERS=y
CONFIG_DISABLE_PTHREAD=y
@@ -112,28 +151,6 @@ CONFIG_DISABLE_ENVIRON=y
CONFIG_DISABLE_POLL=y
#
-# Misc libc settings
-#
-CONFIG_NOPRINTF_FIELDWIDTH=y
-
-#
-# Allow for architecture optimized implementations
-#
-# The architecture can provide optimized versions of the
-# following to improve sysem performance
-#
-CONFIG_ARCH_MEMCPY=n
-CONFIG_ARCH_MEMCMP=n
-CONFIG_ARCH_MEMMOVE=n
-CONFIG_ARCH_MEMSET=n
-CONFIG_ARCH_STRCMP=n
-CONFIG_ARCH_STRCPY=n
-CONFIG_ARCH_STRNCPY=n
-CONFIG_ARCH_STRLEN=n
-CONFIG_ARCH_STRNLEN=n
-CONFIG_ARCH_BZERO=n
-
-#
# Sizes of configurable things (0 disables)
#
CONFIG_MAX_TASKS=8
@@ -142,8 +159,6 @@ CONFIG_NPTHREAD_KEYS=0
CONFIG_NFILE_DESCRIPTORS=0
CONFIG_NFILE_STREAMS=0
CONFIG_NAME_MAX=32
-CONFIG_STDIO_BUFFER_SIZE=0
-CONFIG_NUNGET_CHARS=0
CONFIG_PREALLOC_MQ_MSGS=0
CONFIG_MQ_MAXMSGSIZE=0
CONFIG_MAX_WDOGPARMS=2
@@ -151,62 +166,293 @@ CONFIG_PREALLOC_WDOGS=4
CONFIG_PREALLOC_TIMERS=0
#
-# TCP/IP and UDP support via uIP
+# Stack and heap information
#
-CONFIG_NET=n
-CONFIG_NET_IPv6=n
-CONFIG_NSOCKET_DESCRIPTORS=0
-CONFIG_NET_SOCKOPTS=y
-CONFIG_NET_BUFSIZE=420
-CONFIG_NET_TCP=n
-CONFIG_NET_TCP_CONNS=40
-CONFIG_NET_MAX_LISTENPORTS=40
-CONFIG_NET_UDP=n
-CONFIG_NET_UDP_CHECKSUMS=y
-#CONFIG_NET_UDP_CONNS=10
-CONFIG_NET_ICMP=n
-CONFIG_NET_ICMP_PING=n
-#CONFIG_NET_PINGADDRCONF=0
-CONFIG_NET_STATISTICS=y
-#CONFIG_NET_RECEIVE_WINDOW=
-#CONFIG_NET_ARPTAB_SIZE=8
-CONFIG_NET_BROADCAST=n
+# CONFIG_CUSTOM_STACK is not set
+CONFIG_IDLETHREAD_STACKSIZE=1024
+CONFIG_USERMAIN_STACKSIZE=1024
+CONFIG_PTHREAD_STACK_MIN=256
+CONFIG_PTHREAD_STACK_DEFAULT=1024
#
-# UIP Network Utilities
+# Device Drivers
+#
+CONFIG_DEV_NULL=y
+# CONFIG_DEV_ZERO is not set
+# CONFIG_LOOP is not set
+# CONFIG_RAMDISK is not set
+# CONFIG_CAN is not set
+# CONFIG_PWM is not set
+# CONFIG_I2C is not set
+# CONFIG_SPI is not set
+# CONFIG_RTC is not set
+# CONFIG_WATCHDOG is not set
+# CONFIG_ANALOG is not set
+# CONFIG_BCH is not set
+# CONFIG_INPUT is not set
+# CONFIG_LCD is not set
+# CONFIG_MMCSD is not set
+# CONFIG_MTD is not set
+# CONFIG_PIPES is not set
+# CONFIG_PM is not set
+# CONFIG_POWER is not set
+# CONFIG_SENSORS is not set
+# CONFIG_SERCOMM_CONSOLE is not set
+CONFIG_SERIAL=y
+# CONFIG_LOWLEVEL_CONSOLE is not set
+# CONFIG_16550_UART is not set
+CONFIG_ARCH_HAVE_UART=y
+CONFIG_MCU_SERIAL=y
+CONFIG_STANDARD_SERIAL=y
+CONFIG_UART_SERIAL_CONSOLE=y
+# CONFIG_NO_SERIAL_CONSOLE is not set
+
#
-CONFIG_NET_DHCP_LIGHT=n
-CONFIG_NET_RESOLV_ENTRIES=4
+# UART Configuration
+#
+CONFIG_UART_RXBUFSIZE=64
+CONFIG_UART_TXBUFSIZE=64
+CONFIG_UART_BAUD=115200
+CONFIG_UART_BITS=8
+CONFIG_UART_PARITY=0
+CONFIG_UART_2STOP=0
+# CONFIG_USBDEV is not set
+# CONFIG_USBHOST is not set
+# CONFIG_WIRELESS is not set
#
-# Settings for examples/nsh
-CONFIG_NSH_CONSOLE=y
-CONFIG_NSH_TELNET=n
-CONFIG_NSH_IOBUFFER_SIZE=512
-CONFIG_NSH_CMD_SIZE=40
-CONFIG_NSH_DHCPC=n
-CONFIG_NSH_NOMAC=n
-CONFIG_NSH_IPADDR=0x0a000002
-CONFIG_NSH_DRIPADDR=0x0a000001
-CONFIG_NSH_NETMASK=0xffffff00
+# System Logging Device Options
+#
#
-# Stack and heap information
+# System Logging
#
-CONFIG_BOOT_RUNFROMFLASH=n
-CONFIG_BOOT_COPYTORAM=n
-CONFIG_CUSTOM_STACK=n
-CONFIG_IDLETHREAD_STACKSIZE=1024
-CONFIG_USERMAIN_STACKSIZE=1024
-CONFIG_PTHREAD_STACK_MIN=256
-CONFIG_PTHREAD_STACK_DEFAULT=1024
-CONFIG_HEAP_SIZE=
-CONFIG_HEAP_BASE=
+# CONFIG_RAMLOG is not set
+
+#
+# Networking Support
+#
+# CONFIG_NET is not set
+
+#
+# File Systems
+#
+
+#
+# File system configuration
+#
+# CONFIG_FS_RAMMAP is not set
#
-# Maintain legacy build behavior (revisit)
+# System Logging
#
+# CONFIG_SYSLOG is not set
-CONFIG_MMCSD=y
-CONFIG_MMCSD_SPI=y
-CONFIG_MMCSD_SDIO=y
+#
+# Graphics Support
+#
+# CONFIG_NX is not set
+
+#
+# Memory Management
+#
+# CONFIG_MM_SMALL is not set
+CONFIG_MM_REGIONS=1
+CONFIG_ARCH_HAVE_HEAP2=y
+CONFIG_HEAP2_BASE=0x00000000
+CONFIG_HEAP2_SIZE=0
+# CONFIG_GRAN is not set
+
+#
+# Binary Formats
+#
+# CONFIG_BINFMT_DISABLE is not set
+# CONFIG_NXFLAT is not set
+# CONFIG_ELF is not set
+# CONFIG_SYMTAB_ORDEREDBYNAME is not set
+
+#
+# Library Routines
+#
+CONFIG_STDIO_BUFFER_SIZE=0
+CONFIG_STDIO_LINEBUFFER=y
+CONFIG_NUNGET_CHARS=0
+# CONFIG_LIBM is not set
+CONFIG_NOPRINTF_FIELDWIDTH=y
+# CONFIG_LIBC_FLOATINGPOINT is not set
+# CONFIG_EOL_IS_CR is not set
+# CONFIG_EOL_IS_LF is not set
+# CONFIG_EOL_IS_BOTH_CRLF is not set
+CONFIG_EOL_IS_EITHER_CRLF=y
+# CONFIG_LIBC_STRERROR is not set
+# CONFIG_LIBC_PERROR_STDOUT is not set
+CONFIG_ARCH_LOWPUTC=y
+CONFIG_LIB_SENDFILE_BUFSIZE=512
+# CONFIG_ARCH_ROMGETC is not set
+# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set
+
+#
+# Basic CXX Support
+#
+# CONFIG_C99_BOOL8 is not set
+# CONFIG_HAVE_CXX is not set
+
+#
+# Application Configuration
+#
+
+#
+# Named Applications
+#
+# CONFIG_NAMEDAPP is not set
+
+#
+# Examples
+#
+# CONFIG_EXAMPLES_BUTTONS is not set
+# CONFIG_EXAMPLES_CAN is not set
+# CONFIG_EXAMPLES_CDCACM is not set
+# CONFIG_EXAMPLES_COMPOSITE is not set
+# CONFIG_EXAMPLES_DHCPD is not set
+# CONFIG_EXAMPLES_ELF is not set
+# CONFIG_EXAMPLES_FTPC is not set
+# CONFIG_EXAMPLES_FTPD is not set
+# CONFIG_EXAMPLES_HELLO is not set
+# CONFIG_EXAMPLES_HELLOXX is not set
+# CONFIG_EXAMPLES_JSON is not set
+# CONFIG_EXAMPLES_HIDKBD is not set
+# CONFIG_EXAMPLES_KEYPADTEST is not set
+# CONFIG_EXAMPLES_IGMP is not set
+# CONFIG_EXAMPLES_LCDRW is not set
+# CONFIG_EXAMPLES_MM is not set
+# CONFIG_EXAMPLES_MOUNT is not set
+# CONFIG_EXAMPLES_MODBUS is not set
+# CONFIG_EXAMPLES_NETTEST is not set
+# CONFIG_EXAMPLES_NSH is not set
+# CONFIG_EXAMPLES_NULL is not set
+# CONFIG_EXAMPLES_NX is not set
+# CONFIG_EXAMPLES_NXCONSOLE is not set
+# CONFIG_EXAMPLES_NXFFS is not set
+# CONFIG_EXAMPLES_NXFLAT is not set
+# CONFIG_EXAMPLES_NXHELLO is not set
+# CONFIG_EXAMPLES_NXIMAGE is not set
+# CONFIG_EXAMPLES_NXLINES is not set
+# CONFIG_EXAMPLES_NXTEXT is not set
+CONFIG_EXAMPLES_OSTEST=y
+# CONFIG_EXAMPLES_OSTEST_BUILTIN is not set
+CONFIG_EXAMPLES_OSTEST_LOOPS=1
+CONFIG_EXAMPLES_OSTEST_STACKSIZE=1024
+CONFIG_EXAMPLES_OSTEST_NBARRIER_THREADS=4
+CONFIG_EXAMPLES_OSTEST_RR_RANGE=10000
+CONFIG_EXAMPLES_OSTEST_RR_RUNS=10
+# CONFIG_EXAMPLES_PASHELLO is not set
+# CONFIG_EXAMPLES_PIPE is not set
+# CONFIG_EXAMPLES_POLL is not set
+# CONFIG_EXAMPLES_QENCODER is not set
+# CONFIG_EXAMPLES_RGMP is not set
+# CONFIG_EXAMPLES_ROMFS is not set
+# CONFIG_EXAMPLES_SENDMAIL is not set
+# CONFIG_EXAMPLES_SERLOOP is not set
+# CONFIG_EXAMPLES_TELNETD is not set
+# CONFIG_EXAMPLES_THTTPD is not set
+# CONFIG_EXAMPLES_TIFF is not set
+# CONFIG_EXAMPLES_TOUCHSCREEN is not set
+# CONFIG_EXAMPLES_UDP is not set
+# CONFIG_EXAMPLES_UIP is not set
+# CONFIG_EXAMPLES_USBSERIAL is not set
+# CONFIG_EXAMPLES_USBMSC is not set
+# CONFIG_EXAMPLES_USBTERM is not set
+# CONFIG_EXAMPLES_WATCHDOG is not set
+# CONFIG_EXAMPLES_WLAN is not set
+
+#
+# Interpreters
+#
+
+#
+# Interpreters
+#
+# CONFIG_INTERPRETERS_FICL is not set
+# CONFIG_INTERPRETERS_PCODE is not set
+
+#
+# Network Utilities
+#
+
+#
+# Networking Utilities
+#
+# CONFIG_NETUTILS_CODECS is not set
+# CONFIG_NETUTILS_DHCPC is not set
+# CONFIG_NETUTILS_DHCPD is not set
+# CONFIG_NETUTILS_FTPC is not set
+# CONFIG_NETUTILS_FTPD is not set
+# CONFIG_NETUTILS_JSON is not set
+# CONFIG_NETUTILS_RESOLV is not set
+# CONFIG_NETUTILS_SMTP is not set
+# CONFIG_NETUTILS_TELNETD is not set
+# CONFIG_NETUTILS_TFTPC is not set
+# CONFIG_NETUTILS_THTTPD is not set
+# CONFIG_NETUTILS_UIPLIB is not set
+# CONFIG_NETUTILS_WEBCLIENT is not set
+
+#
+# ModBus
+#
+
+#
+# FreeModbus
+#
+# CONFIG_MODBUS is not set
+
+#
+# NSH Library
+#
+# CONFIG_NSH_LIBRARY is not set
+
+#
+# NxWidgets/NxWM
+#
+
+#
+# System NSH Add-Ons
+#
+
+#
+# Custom Free Memory Command
+#
+# CONFIG_SYSTEM_FREE is not set
+
+#
+# I2C tool
+#
+
+#
+# FLASH Program Installation
+#
+# CONFIG_SYSTEM_INSTALL is not set
+
+#
+# readline()
+#
+# CONFIG_SYSTEM_READLINE is not set
+
+#
+# Power Off
+#
+# CONFIG_SYSTEM_POWEROFF is not set
+
+#
+# RAMTRON
+#
+# CONFIG_SYSTEM_RAMTRON is not set
+
+#
+# SD Card
+#
+# CONFIG_SYSTEM_SDCARD is not set
+
+#
+# Sysinfo
+#
+# CONFIG_SYSTEM_SYSINFO is not set
diff --git a/nuttx/configs/xtrs/ostest/setenv.bat b/nuttx/configs/xtrs/ostest/setenv.bat
new file mode 100644
index 000000000..38822dcc2
--- /dev/null
+++ b/nuttx/configs/xtrs/ostest/setenv.bat
@@ -0,0 +1,54 @@
+@echo off
+
+rem configs/xtrs/ostest/setenv.bat
+rem
+rem Copyright (C) 2012 Gregory Nutt. All rights reserved.
+rem Author: Gregory Nutt <gnutt@nuttx.org>
+rem
+rem Redistribution and use in source and binary forms, with or without
+rem modification, are permitted provided that the following conditions
+rem are met:
+rem
+rem 1. Redistributions of source code must retain the above copyright
+rem notice, this list of conditions and the following disclaimer.
+rem 2. Redistributions in binary form must reproduce the above copyright
+rem notice, this list of conditions and the following disclaimer in
+rem the documentation and/or other materials provided with the
+rem distribution.
+rem 3. Neither the name NuttX nor the names of its contributors may be
+rem used to endorse or promote products derived from this software
+rem without specific prior written permission.
+rem
+rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+rem FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+rem COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+rem INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+rem BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+rem OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+rem AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+rem LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+rem ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+rem POSSIBILITY OF SUCH DAMAGE.
+
+rem This is the location where I installed in the MinGW compiler. With
+rem this configuration, it is recommended that you do NOT install the
+rem MSYS tools; they conflict with the GNUWin32 tools. See
+rem http://www.mingw.org/ for further info.
+
+set PATH=C:\MinGW\bin;%PATH%
+
+rem This is the location where I installed the SDCC toolchain for windows.
+
+set PATH=C:\Program Files (x86)\SDCC/bin;%PATH%
+
+rem This is the location where I installed the GNUWin32 tools. See
+rem http://gnuwin32.sourceforge.net/.
+
+set PATH=C:\gnuwin32\bin;%PATH%
+
+rem This is the location where the XTRS hex2cmd program is available
+rem set PATH=????:%PATH%
+
+echo %PATH%
diff --git a/nuttx/configs/xtrs/ostest/setenv.sh b/nuttx/configs/xtrs/scripts/setenv.sh
index 73454b772..8dc863ba5 100755
--- a/nuttx/configs/xtrs/ostest/setenv.sh
+++ b/nuttx/configs/xtrs/scripts/setenv.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# configs/xtrs/ostest/setenv.sh
#
-# Copyright (C) 2008 Gregory Nutt. All rights reserved.
+# 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
@@ -32,14 +32,41 @@
# POSSIBILITY OF SUCH DAMAGE.
#
-if [ "$(basename $0)" = "setenv.sh" ] ; then
+if [ "$_" = "$0" ] ; then
echo "You must source this script, not run it!" 1>&2
exit 1
fi
-if [ -z ${PATH_ORIG} ]; then export PATH_ORIG=${PATH}; 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
-export SDCC_BIN=/usr/local/bin
-export PATH=${SDCC_BIN}:/sbin:/usr/sbin:${PATH_ORIG}
+#
+# This is the normal installation directory for SDCC under Linux, OSX
+# or Linux:
+#
+export TOOLCHAIN_BIN=/usr/local/bin
+
+#
+# This is the normal installation directory for SDCC under Windows
+#
+#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/SDCC/bin"
+
+#
+# Add the path to the toolchain to the PATH varialble
+#
+export PATH="${TOOLCHAIN_BIN}":/sbin:/usr/sbin:${PATH_ORIG}
+
+#
+# This is the location where the XTRS hex2cmd program is available
+#
+# export HEX2CMD_BIN=????
+# export PATH="${HEX2CMD_BIN}":${PATH}
echo "PATH : ${PATH}"
diff --git a/nuttx/configs/xtrs/src/xtr_lowputc.c b/nuttx/configs/xtrs/src/xtr_lowputc.c
index 8ed166211..60f4db049 100644
--- a/nuttx/configs/xtrs/src/xtr_lowputc.c
+++ b/nuttx/configs/xtrs/src/xtr_lowputc.c
@@ -53,7 +53,7 @@
/* Includes trs80-m3.h for assembler call addresses */
-#include <board/board.h>
+#include <arch/board/board.h>
/********************************************************************************
* Definitions
@@ -81,13 +81,13 @@
void z80_lowputc(char ch) __naked
{
- _asm
- ld hl, #2
- add hl, sp
- ld a, (hl)
- call _TRS80_M3_VDCHAR ;0x0033
+ __asm
+ ld hl, #2
+ add hl, sp
+ ld a, (hl)
+ call _TRS80_M3_VDCHAR ;0x0033
ret
- _endasm;
+ __endasm;
}
/********************************************************************************
@@ -96,10 +96,10 @@ void z80_lowputc(char ch) __naked
char z80_lowgetc(void) __naked
{
- _asm
- call _TRS80_M3_KBDSCN ;0x002b
- ld l, a
- ld h, #0
+ __asm
+ call _TRS80_M3_KBDSCN ;0x002b
+ ld l, a
+ ld h, #0
ret
- _endasm;
+ __endasm;
}
diff --git a/nuttx/configs/xtrs/src/xtrs_head.asm b/nuttx/configs/xtrs/src/xtrs_head.asm
index bd7156f59..c2122898e 100644
--- a/nuttx/configs/xtrs/src/xtrs_head.asm
+++ b/nuttx/configs/xtrs/src/xtrs_head.asm
@@ -1,7 +1,7 @@
;**************************************************************************
; configs/xtrs/src/xtrs_head.asm
;
-; Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
+; Copyright (C) 2008-2009, 2012 Gregory Nutt. All rights reserved.
; Author: Gregory Nutt <gnutt@nuttx.org>
;
; Redistribution and use in source and binary forms, with or without
@@ -42,15 +42,15 @@
; Register save area layout
- XCPT_I == 0 ; Offset 0: Saved I w/interrupt state in parity
- XCPT_BC == 2 ; Offset 1: Saved BC register
- XCPT_DE == 4 ; Offset 2: Saved DE register
- XCPT_IX == 6 ; Offset 3: Saved IX register
- XCPT_IY == 8 ; Offset 4: Saved IY register
- XCPT_SP == 10 ; Offset 5: Offset to SP at time of interrupt
- XCPT_HL == 12 ; Offset 6: Saved HL register
- XCPT_AF == 14 ; Offset 7: Saved AF register
- XCPT_PC == 16 ; Offset 8: Offset to PC at time of interrupt
+ XCPT_I == 0 ; Offset 0: Saved I w/interrupt state in parity
+ XCPT_BC == 2 ; Offset 1: Saved BC register
+ XCPT_DE == 4 ; Offset 2: Saved DE register
+ XCPT_IX == 6 ; Offset 3: Saved IX register
+ XCPT_IY == 8 ; Offset 4: Saved IY register
+ XCPT_SP == 10 ; Offset 5: Offset to SP at time of interrupt
+ XCPT_HL == 12 ; Offset 6: Saved HL register
+ XCPT_AF == 14 ; Offset 7: Saved AF register
+ XCPT_PC == 16 ; Offset 8: Offset to PC at time of interrupt
; Default stack base (needs to be fixed)
@@ -60,8 +60,8 @@
; Global symbols used
;**************************************************************************
- .globl _os_start ; OS entry point
- .globl _up_doirq ; Interrupt decoding logic
+ .globl _os_start ; OS entry point
+ .globl _up_doirq ; Interrupt decoding logic
;**************************************************************************
; System start logic
@@ -71,39 +71,39 @@ _up_reset:
; Set up the stack pointer at the location determined the Makefile
; and stored in asm_mem.h
- ld SP, #CONFIG_STACK_END ; Set stack pointer
+ ld SP, #CONFIG_STACK_END ; Set stack pointer
; Performed initialization unique to the SDCC toolchain
- call gsinit ; Initialize the data section
+ call gsinit ; Initialize the data section
; Copy the reset vectors
- ld hl, #_up_rstvectors ; code for RAM
- ld de, #0x4000 ; move it here
- ld bc, #3*7 ; 7 vectors / 3 bytes each
+ ld hl, #_up_rstvectors ; code for RAM
+ ld de, #0x4000 ; move it here
+ ld bc, #3*7 ; 7 vectors / 3 bytes each
ldir
; Then start NuttX
- call _os_start ; jump to the OS entry point
+ call _os_start ; jump to the OS entry point
; NuttX will never return, but just in case...
_up_halt::
- halt ; We should never get here
- jp _up_halt
+ halt ; We should never get here
+ jp _up_halt
; Data to copy to address 0x4000
_up_rstvectors:
- jp _up_rst1 ; 0x4000 : RST 1
- jp _up_rst2 ; 0x4003 : RST 2
- jp _up_rst3 ; 0x4006 : RST 3
- jp _up_rst4 ; 0x4009 : RST 4
- jp _up_rst5 ; 0x400c : RST 5
- jp _up_rst6 ; 0x400f : RST 6
- jp _up_rst7 ; 0x4012 : RST 7
+ jp _up_rst1 ; 0x4000 : RST 1
+ jp _up_rst2 ; 0x4003 : RST 2
+ jp _up_rst3 ; 0x4006 : RST 3
+ jp _up_rst4 ; 0x4009 : RST 4
+ jp _up_rst5 ; 0x400c : RST 5
+ jp _up_rst6 ; 0x400f : RST 6
+ jp _up_rst7 ; 0x4012 : RST 7
;**************************************************************************
; Other reset handlers
@@ -119,61 +119,61 @@ _up_rstvectors:
;
;**************************************************************************
-_up_rst1: ; RST 1
+_up_rst1: ; RST 1
; Save AF on the stack, set the interrupt number and jump to the
; common reset handling logic.
- ; Offset 8: Return PC is already on the stack
- push af ; Offset 7: AF (retaining flags)
- ld a, #1 ; 1 = Z80_RST1
- jr _up_rstcommon ; Remaining RST handling is common
+ ; Offset 8: Return PC is already on the stack
+ push af ; Offset 7: AF (retaining flags)
+ ld a, #1 ; 1 = Z80_RST1
+ jr _up_rstcommon ; Remaining RST handling is common
-_up_rst2: ; RST 2
+_up_rst2: ; RST 2
; Save AF on the stack, set the interrupt number and jump to the
; common reset handling logic.
- ; Offset 8: Return PC is already on the stack
- push af ; Offset 7: AF (retaining flags)
- ld a, #2 ; 2 = Z80_RST2
- jr _up_rstcommon ; Remaining RST handling is common
+ ; Offset 8: Return PC is already on the stack
+ push af ; Offset 7: AF (retaining flags)
+ ld a, #2 ; 2 = Z80_RST2
+ jr _up_rstcommon ; Remaining RST handling is common
-_up_rst3: ; RST 3
+_up_rst3: ; RST 3
; Save AF on the stack, set the interrupt number and jump to the
; common reset handling logic.
- ; Offset 8: Return PC is already on the stack
- push af ; Offset 7: AF (retaining flags)
- ld a, #3 ; 1 = Z80_RST3
- jr _up_rstcommon ; Remaining RST handling is common
+ ; Offset 8: Return PC is already on the stack
+ push af ; Offset 7: AF (retaining flags)
+ ld a, #3 ; 1 = Z80_RST3
+ jr _up_rstcommon ; Remaining RST handling is common
-_up_rst4: ; RST 4
+_up_rst4: ; RST 4
; Save AF on the stack, set the interrupt number and jump to the
; common reset handling logic.
- ; Offset 8: Return PC is already on the stack
- push af ; Offset 7: AF (retaining flags)
- ld a, #4 ; 1 = Z80_RST4
- jr _up_rstcommon ; Remaining RST handling is common
+ ; Offset 8: Return PC is already on the stack
+ push af ; Offset 7: AF (retaining flags)
+ ld a, #4 ; 1 = Z80_RST4
+ jr _up_rstcommon ; Remaining RST handling is common
-_up_rst5: ; RST 5
+_up_rst5: ; RST 5
; Save AF on the stack, set the interrupt number and jump to the
; common reset handling logic.
- ; Offset 8: Return PC is already on the stack
- push af ; Offset 7: AF (retaining flags)
- ld a, #5 ; 1 = Z80_RST5
- jr _up_rstcommon ; Remaining RST handling is common
+ ; Offset 8: Return PC is already on the stack
+ push af ; Offset 7: AF (retaining flags)
+ ld a, #5 ; 1 = Z80_RST5
+ jr _up_rstcommon ; Remaining RST handling is common
-_up_rst6: ; RST 6
+_up_rst6: ; RST 6
; Save AF on the stack, set the interrupt number and jump to the
; common reset handling logic.
- ; Offset 8: Return PC is already on the stack
- push af ; Offset 7: AF (retaining flags)
- ld a, #6 ; 1 = Z80_RST6
- jr _up_rstcommon ; Remaining RST handling is common
+ ; Offset 8: Return PC is already on the stack
+ push af ; Offset 7: AF (retaining flags)
+ ld a, #6 ; 1 = Z80_RST6
+ jr _up_rstcommon ; Remaining RST handling is common
-_up_rst7: ; RST 7
+_up_rst7: ; RST 7
; Save AF on the stack, set the interrupt number and jump to the
; common reset handling logic.
- ; Offset 8: Return PC is already on the stack
- push af ; Offset 7: AF (retaining flags)
- ld a, #7 ; 7 = Z80_RST7
- jr _up_rstcommon ; Remaining RST handling is common
+ ; Offset 8: Return PC is already on the stack
+ push af ; Offset 7: AF (retaining flags)
+ ld a, #7 ; 7 = Z80_RST7
+ jr _up_rstcommon ; Remaining RST handling is common
;**************************************************************************
; Common Interrupt handler
@@ -188,27 +188,27 @@ _up_rstcommon:
;
; IRQ number is in A
- push hl ; Offset 6: HL
- ld hl, #(3*2) ; HL is the value of the stack pointer before
- add hl, sp ; the interrupt occurred
- push hl ; Offset 5: Stack pointer
- push iy ; Offset 4: IY
- push ix ; Offset 3: IX
- push de ; Offset 2: DE
- push bc ; Offset 1: BC
-
- ld b, a ; Save the reset number in B
- ld a, i ; Parity bit holds interrupt state
- push af ; Offset 0: I with interrupt state in parity
+ push hl ; Offset 6: HL
+ ld hl, #(3*2) ; HL is the value of the stack pointer before
+ add hl, sp ; the interrupt occurred
+ push hl ; Offset 5: Stack pointer
+ push iy ; Offset 4: IY
+ push ix ; Offset 3: IX
+ push de ; Offset 2: DE
+ push bc ; Offset 1: BC
+
+ ld b, a ; Save the reset number in B
+ ld a, i ; Parity bit holds interrupt state
+ push af ; Offset 0: I with interrupt state in parity
di
; Call the interrupt decode logic. SP points to the beggining of the reg structure
- ld hl, #0 ; Argument #2 is the beginning of the reg structure
- add hl, sp ;
- push hl ; Place argument #2 at the top of stack
- push bc ; Argument #1 is the Reset number
- inc sp ; (make byte sized)
+ ld hl, #0 ; Argument #2 is the beginning of the reg structure
+ add hl, sp ;
+ push hl ; Place argument #2 at the top of stack
+ push bc ; Argument #1 is the Reset number
+ inc sp ; (make byte sized)
call _up_doirq ; Decode the IRQ
; On return, HL points to the beginning of the reg structure to restore
@@ -216,61 +216,81 @@ _up_rstcommon:
; original stack pointer is lost. In the normal case (no context switch),
; HL will contain the value of the SP before the arguments wer pushed.
- ld sp, hl ; Use the new stack pointer
+ ld sp, hl ; Use the new stack pointer
; Restore registers. HL points to the beginning of the reg structure to restore
- ex af, af' ; Select alternate AF
- pop af ; Offset 0: AF' = I with interrupt state in parity
- ex af, af' ; Restore original AF
- pop bc ; Offset 1: BC
- pop de ; Offset 2: DE
- pop ix ; Offset 3: IX
- pop iy ; Offset 4: IY
- exx ; Use alternate BC/DE/HL
- ld hl, #-2 ; Offset of SP to account for ret addr on stack
- pop de ; Offset 5: HL' = Stack pointer after return
- add hl, de ; HL = Stack pointer value before return
- exx ; Restore original BC/DE/HL
- pop hl ; Offset 6: HL
- pop af ; Offset 7: AF
+ ex af, af' ; Select alternate AF
+ pop af ; Offset 0: AF' = I with interrupt state in parity
+ ex af, af' ; Restore original AF
+ pop bc ; Offset 1: BC
+ pop de ; Offset 2: DE
+ pop ix ; Offset 3: IX
+ pop iy ; Offset 4: IY
+ exx ; Use alternate BC/DE/HL
+ ld hl, #-2 ; Offset of SP to account for ret addr on stack
+ pop de ; Offset 5: HL' = Stack pointer after return
+ add hl, de ; HL = Stack pointer value before return
+ exx ; Restore original BC/DE/HL
+ pop hl ; Offset 6: HL
+ pop af ; Offset 7: AF
; Restore the stack pointer
- exx ; Use alternate BC/DE/HL
- ld sp, hl ; Set SP = saved stack pointer value before return
- exx ; Restore original BC/DE/HL
+ exx ; Use alternate BC/DE/HL
+ ld sp, hl ; Set SP = saved stack pointer value before return
+ exx ; Restore original BC/DE/HL
; Restore interrupt state
- ex af, af' ; Recover interrupt state
- jp po, nointenable ; Odd parity, IFF2=0, means disabled
- ex af, af' ; Restore AF (before enabling interrupts)
- ei ; yes
+ ex af, af' ; Recover interrupt state
+ jp po, nointenable ; Odd parity, IFF2=0, means disabled
+ ex af, af' ; Restore AF (before enabling interrupts)
+ ei ; yes
reti
nointenable::
- ex af, af' ; Restore AF
+ ex af, af' ; Restore AF
reti
;**************************************************************************
; Ordering of segments for the linker (SDCC only)
;**************************************************************************
- .area _HOME
- .area _CODE
- .area _GSINIT
- .area _GSFINAL
+ .area _HOME
+ .area _CODE
+ .area _INITIALIZER
+ .area _GSINIT
+ .area _GSFINAL
- .area _DATA
- .area _BSS
- .area _HEAP
+ .area _DATA
+ .area _INITIALIZED
+ .area _BSEG
+ .area _BSS
+ .area _HEAP
;**************************************************************************
; Global data initialization logic (SDCC only)
;**************************************************************************
- .area _GSINIT
+ .area _GSINIT
gsinit::
+ ld bc, #l__INITIALIZER
+ ld a, b
+ or a, c
+ jr Z, gsinit_next
+ ld de, #s__INITIALIZED
+ ld hl, #s__INITIALIZER
+ ldir
+gsinit_next:
+
.area _GSFINAL
ret
+;**************************************************************************
+; The start of the heap (SDCC only). Note that is actually resides in
+; the _CODE area (which may be FLASH or ROM)
+;**************************************************************************
+
+ .area _CODE
+_g_heapbase::
+ .dw #s__HEAP
diff --git a/nuttx/configs/z80sim/README.txt b/nuttx/configs/z80sim/README.txt
index 8b90f3095..50e2c7028 100644
--- a/nuttx/configs/z80sim/README.txt
+++ b/nuttx/configs/z80sim/README.txt
@@ -139,8 +139,13 @@ by modifying the configuration file as follows:
You may need to first manually change the CONFIG_APPS_DIR="..\apps" definition
in the .config file because the backslash may upset some Unix-based tools.
+This configuration will require a recent version of SDCC (ca. 3.2.1) for Linux
+or custom built for Cygwin (see below).
+
You cannot use the default setenv.bat in these Unix-like enviroments because
that is a Windows batch file. Use configs/z80sim/script/setenv.sh instead.
+setenv.sh must include the path to the installation location of SDCC (probably
+/usr/local/bin).
SDCC
^^^^
diff --git a/nuttx/configs/z80sim/nsh/defconfig b/nuttx/configs/z80sim/nsh/defconfig
index ff9a90344..5b21b97bf 100644
--- a/nuttx/configs/z80sim/nsh/defconfig
+++ b/nuttx/configs/z80sim/nsh/defconfig
@@ -208,7 +208,7 @@ CONFIG_NO_SERIAL_CONSOLE=y
#
CONFIG_UART_RXBUFSIZE=64
CONFIG_UART_TXBUFSIZE=64
-CONFIG_UART_BAUD=11520
+CONFIG_UART_BAUD=115200
CONFIG_UART_BITS=8
CONFIG_UART_PARITY=0
CONFIG_UART_2STOP=0
diff --git a/nuttx/configs/z80sim/ostest/defconfig b/nuttx/configs/z80sim/ostest/defconfig
index 0697d8bba..656f71fd1 100644
--- a/nuttx/configs/z80sim/ostest/defconfig
+++ b/nuttx/configs/z80sim/ostest/defconfig
@@ -207,7 +207,7 @@ CONFIG_UART_SERIAL_CONSOLE=y
#
CONFIG_UART_RXBUFSIZE=0
CONFIG_UART_TXBUFSIZE=0
-CONFIG_UART_BAUD=11520
+CONFIG_UART_BAUD=115200
CONFIG_UART_BITS=8
CONFIG_UART_PARITY=0
CONFIG_UART_2STOP=0
diff --git a/nuttx/configs/z80sim/pashello/defconfig b/nuttx/configs/z80sim/pashello/defconfig
index b0ff5ce16..16124f39b 100644
--- a/nuttx/configs/z80sim/pashello/defconfig
+++ b/nuttx/configs/z80sim/pashello/defconfig
@@ -207,7 +207,7 @@ CONFIG_NO_SERIAL_CONSOLE=y
#
CONFIG_UART_RXBUFSIZE=64
CONFIG_UART_TXBUFSIZE=64
-CONFIG_UART_BAUD=11520
+CONFIG_UART_BAUD=115200
CONFIG_UART_BITS=8
CONFIG_UART_PARITY=0
CONFIG_UART_2STOP=0
diff --git a/nuttx/drivers/serial/Kconfig b/nuttx/drivers/serial/Kconfig
index 43869fdec..3dfd23dd1 100644
--- a/nuttx/drivers/serial/Kconfig
+++ b/nuttx/drivers/serial/Kconfig
@@ -422,7 +422,7 @@ config UART_TXBUFSIZE
config UART_BAUD
int "baud rate"
- default 11520
+ default 115200
help
The configured BAUD of the UART.
@@ -465,7 +465,7 @@ config UART0_TXBUFSIZE
config UART0_BAUD
int "baud rate"
- default 11520
+ default 115200
help
The configured BAUD of the UART.
@@ -508,7 +508,7 @@ config USART0_TXBUFSIZE
config USART0_BAUD
int "baud rate"
- default 11520
+ default 115200
help
The configured BAUD of the USART.
@@ -551,7 +551,7 @@ config UART1_TXBUFSIZE
config UART1_BAUD
int "baud rate"
- default 11520
+ default 115200
help
The configured BAUD of the UART.
@@ -594,7 +594,7 @@ config USART1_TXBUFSIZE
config USART1_BAUD
int "baud rate"
- default 11520
+ default 115200
help
The configured BAUD of the USART.
@@ -637,7 +637,7 @@ config UART2_TXBUFSIZE
config UART2_BAUD
int "baud rate"
- default 11520
+ default 115200
help
The configured BAUD of the UART.
@@ -680,7 +680,7 @@ config USART2_TXBUFSIZE
config USART2_BAUD
int "baud rate"
- default 11520
+ default 115200
help
The configured BAUD of the USART.
@@ -723,7 +723,7 @@ config UART3_TXBUFSIZE
config UART3_BAUD
int "baud rate"
- default 11520
+ default 115200
help
The configured BAUD of the UART.
@@ -766,7 +766,7 @@ config USART3_TXBUFSIZE
config USART3_BAUD
int "baud rate"
- default 11520
+ default 115200
help
The configured BAUD of the USART.
@@ -809,7 +809,7 @@ config UART4_TXBUFSIZE
config UART4_BAUD
int "baud rate"
- default 11520
+ default 115200
help
The configured BAUD of the UART.
@@ -852,7 +852,7 @@ config USART4_TXBUFSIZE
config USART4_BAUD
int "baud rate"
- default 11520
+ default 115200
help
The configured BAUD of the USART.
@@ -895,7 +895,7 @@ config UART5_TXBUFSIZE
config UART5_BAUD
int "baud rate"
- default 11520
+ default 115200
help
The configured BAUD of the UART.
@@ -938,7 +938,7 @@ config USART5_TXBUFSIZE
config USART5_BAUD
int "baud rate"
- default 11520
+ default 115200
help
The configured BAUD of the USART.
@@ -981,7 +981,7 @@ config USART6_TXBUFSIZE
config USART6_BAUD
int "baud rate"
- default 11520
+ default 115200
help
The configured BAUD of the USART.
@@ -1024,7 +1024,7 @@ config UART6_TXBUFSIZE
config UART6_BAUD
int "baud rate"
- default 11520
+ default 115200
help
The configured BAUD of the UART.