Obsolete support for the 8051 family. Trying to maintain compatibility with this family is too much effort and there has never really been a successful NuttX impplementation on these parts
This commit is contained in:
parent
6e6ffaf7e5
commit
e926fe8bbf
@ -1,7 +0,0 @@
|
||||
#
|
||||
# For a description of the syntax of this configuration file,
|
||||
# see misc/tools/kconfig-language.txt.
|
||||
#
|
||||
|
||||
if ARCH_BOARD_PJRC_87C52
|
||||
endif
|
@ -1,170 +0,0 @@
|
||||
############################################################################
|
||||
# configs/pjrc-8051/Make.defs
|
||||
#
|
||||
# Copyright (C) 2007, 2008, 2012 Gregory Nutt. All rights reserved.
|
||||
# Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# 3. Neither the name NuttX nor the names of its contributors may be
|
||||
# used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
############################################################################
|
||||
|
||||
include ${TOPDIR}/.config
|
||||
include ${TOPDIR}/tools/Config.mk
|
||||
|
||||
# These are the directories where the SDCC toolchain is installed. NOTE
|
||||
# that short 8.3 path names are used in order to avoid spaces. On my machine
|
||||
# I have:
|
||||
#
|
||||
# C:\PROGRA~1\ = C:\Profram Files\
|
||||
# C:\PROGRA~2\ = C:\Program Files (x86)\
|
||||
#
|
||||
# Your PC may be configured differently.
|
||||
|
||||
ifeq ($(CONFIG_WINDOWS_NATIVE),y)
|
||||
SDCC_INSTALLDIR = C:\PROGRA~2\SDCC
|
||||
SDCC_BINDIR = $(SDCC_INSTALLDIR)\bin
|
||||
SDCC_LIBDIR = $(SDCC_INSTALLDIR)\lib\large-stack-auto
|
||||
else
|
||||
SDCC_INSTALLDIR = /usr/local
|
||||
SDCC_BINDIR = $(SDCC_INSTALLDIR)/bin
|
||||
SDCC_LIBDIR = $(SDCC_INSTALLDIR)/share/sdcc/lib/large-stack-auto
|
||||
endif
|
||||
|
||||
CROSSDEV =
|
||||
CC = sdcc
|
||||
CPP = sdcpp
|
||||
LD = sdld
|
||||
AS = sdas8051
|
||||
AR = sdar -r
|
||||
|
||||
IRAM_SIZE = 0x100
|
||||
DEF_STACK_BASE = 0x24
|
||||
|
||||
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
ARCHOPTIMIZATION = --debug
|
||||
else
|
||||
ARCHOPTIMIZATION =
|
||||
endif
|
||||
|
||||
ARCHCPUFLAGS = -mmcs51 --stack-auto --model-large --int-long-reent --float-reent
|
||||
ARCHPICFLAGS =
|
||||
ARCHWARNINGS =
|
||||
ARCHDEFINES =
|
||||
ARCHINCLUDES = -I. -I$(TOPDIR)/include
|
||||
|
||||
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
|
||||
CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
|
||||
AFLAGS = -x -j -g -l -s -p
|
||||
|
||||
SDCCLIB = libsdcc.lib
|
||||
|
||||
ASMEXT = .asm
|
||||
OBJEXT = .rel
|
||||
LIBEXT = .lib
|
||||
EXEEXT = .hex
|
||||
|
||||
# Custom ASSEMBLE definition. The most common toolchain, GCC, uses the
|
||||
# compiler to assemble files because this has the advantage of running the C
|
||||
# Pre-Processor against. This is not possible with other SDCC; we need to
|
||||
# define AS and over-ride the common definition in order to use the assembler
|
||||
# directly.
|
||||
|
||||
define ASSEMBLE
|
||||
@echo "AS: $1"
|
||||
@$(AS) $(AFLAGS) $1
|
||||
endef
|
||||
|
||||
# Custom CLEAN definition
|
||||
|
||||
ifeq ($(CONFIG_WINDOWS_NATIVE),y)
|
||||
define CLEAN
|
||||
$(Q) if exist *.o (del /f /q *.o)
|
||||
$(Q) if exist *.asm (del /f /q *.asm)
|
||||
$(Q) if exist *.rel (del /f /q *.rel)
|
||||
$(Q) if exist *.lst (del /f /q *.lst)
|
||||
$(Q) if exist *.rst (del /f /q *.rst)
|
||||
$(Q) if exist *.sym (del /f /q *.sym)
|
||||
$(Q) if exist *.adb (del /f /q *.adb)
|
||||
$(Q) if exist *.lnk (del /f /q *.lnk)
|
||||
$(Q) if exist *.map (del /f /q *.map)
|
||||
$(Q) if exist *.mem (del /f /q *.mem)
|
||||
$(Q) if exist *.hex (del /f /q *.hex)
|
||||
$(Q) if exist *.cmd (del /f /q *.cmd)
|
||||
endef
|
||||
else
|
||||
define CLEAN
|
||||
$(Q) rm -f *.o *.asm *.rel *.lst *.rst *.sym *.adb *.lnk *.map *.mem *.hex *.cmd
|
||||
endef
|
||||
endif
|
||||
|
||||
# Windows native host tool definitions
|
||||
|
||||
ifeq ($(CONFIG_WINDOWS_NATIVE),y)
|
||||
HOSTCC = mingw32-gcc.exe
|
||||
HOSTINCLUDES = -I.
|
||||
HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -g -pipe
|
||||
HOSTLDFLAGS =
|
||||
HOSTEXEEXT = .exe
|
||||
|
||||
# Windows-native host tools
|
||||
|
||||
MKDEP = $(TOPDIR)\tools\mkdeps.exe --winnative
|
||||
|
||||
# Use NTFS links or directory copies
|
||||
|
||||
ifeq ($(CONFIG_WINDOWS_MKLINK),y)
|
||||
DIRLINK = $(TOPDIR)$(DELIM)tools$(DELIM)link.bat
|
||||
else
|
||||
DIRLINK = $(TOPDIR)$(DELIM)tools$(DELIM)copydir.bat
|
||||
endif
|
||||
DIRUNLINK = $(TOPDIR)$(DELIM)tools$(DELIM)unlink.bat
|
||||
|
||||
else
|
||||
|
||||
# Linux/Cygwin host tool definitions
|
||||
|
||||
HOSTCC = gcc
|
||||
HOSTINCLUDES = -I.
|
||||
HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -g -pipe
|
||||
HOSTLDFLAGS =
|
||||
|
||||
# This is the tool to use for dependencies (i.e., none)
|
||||
|
||||
MKDEP = $(TOPDIR)$(DELIM)tools$(DELIM)mknulldeps.sh
|
||||
|
||||
# SDCC for Linux, OSX, or Cygwin understands symbolic links. Windows SDCC
|
||||
# running under Cygwin does not
|
||||
|
||||
ifeq ($(WINTOOL),y)
|
||||
DIRLINK = $(TOPDIR)$(DELIM)tools$(DELIM)copydir.sh
|
||||
else
|
||||
DIRLINK = $(TOPDIR)$(DELIM)tools$(DELIM)link.sh
|
||||
endif
|
||||
DIRUNLINK = $(TOPDIR)$(DELIM)tools$(DELIM)unlink.sh
|
||||
|
||||
endif
|
@ -1,54 +0,0 @@
|
||||
pjrc-8051 README
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This port uses the PJRC 87C52 development system and the SDCC toolchain.
|
||||
|
||||
The PJRC 87C52 development system can be obtained from http://www.pjrc.com/.
|
||||
|
||||
The SDCC toolchain is available from http://sdcc.sourceforge.net/. All
|
||||
testing has been performed using verison 2.6.0 of the SDDC toolchain.
|
||||
|
||||
Building the SDCC toolchain
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The SDCC toolchain is built with the standard configure/make/make install
|
||||
sequence. However, some special actions are required to generate libraries
|
||||
compatible with this build. First start with the usual steps
|
||||
|
||||
download
|
||||
unpack
|
||||
cd sdcc
|
||||
./configure
|
||||
make
|
||||
|
||||
But before installing, we need to apply a patch to the SDCC 2.6.0 source.
|
||||
WARNING: This patch is specific to the particular combination of CFLAGS
|
||||
that are used in the compilation. If you change Make.defs, then you will
|
||||
likely have to change the patch as well.
|
||||
|
||||
Apply sdcc-2.6.0.patch
|
||||
cd sdcc/device/lib
|
||||
make model-mcs51-stack-auto
|
||||
|
||||
Then
|
||||
|
||||
cd sdcc
|
||||
make install
|
||||
|
||||
Status
|
||||
^^^^^^
|
||||
|
||||
On December 9, 2012, I made updates so that the 8051 port could use the
|
||||
newest SDCC toolchain (a pre-3.2.1 at that time). However, when I attempted
|
||||
to build the PJRC-8051 configuration, I got type incompatibility errors
|
||||
from sched/os_bringup.c. From what I gather by googling, this is a compiler
|
||||
bug related to the --stack-auto option.
|
||||
|
||||
I have not been successful working around those bugs and I believe that
|
||||
these are 8051-related bugs in the SDCC toolchain. This needs to be
|
||||
revisited with a later version of SDCC.
|
||||
|
||||
This configuration was last successfully built and tested with a ca.
|
||||
2.6.0 SDCC release. Support for that older toolchain was removed in
|
||||
NuttX revision -r5423. If you wanted to used those older toolchains,
|
||||
you would need to revert to a pre-r5423 revision.
|
@ -1,577 +0,0 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Nuttx/ Configuration
|
||||
#
|
||||
|
||||
#
|
||||
# Build Setup
|
||||
#
|
||||
# CONFIG_EXPERIMENTAL is not set
|
||||
CONFIG_DEFAULT_SMALL=y
|
||||
CONFIG_HOST_LINUX=y
|
||||
# CONFIG_HOST_OSX is not set
|
||||
# CONFIG_HOST_WINDOWS is not set
|
||||
# CONFIG_HOST_OTHER 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_ARCH_HAVE_STACKCHECK is not set
|
||||
# CONFIG_ARCH_HAVE_HEAPCHECK is not set
|
||||
# CONFIG_DEBUG_SYMBOLS is not set
|
||||
# CONFIG_ARCH_HAVE_CUSTOMOPT is not set
|
||||
# CONFIG_DEBUG_NOOPT is not set
|
||||
CONFIG_DEBUG_FULLOPT=y
|
||||
|
||||
#
|
||||
# System Type
|
||||
#
|
||||
CONFIG_ARCH_8051=y
|
||||
# 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 is not set
|
||||
CONFIG_ARCH="8051"
|
||||
|
||||
#
|
||||
# ARM Options
|
||||
#
|
||||
# CONFIG_ARCH_CHIP_8051 is not set
|
||||
CONFIG_ARCH_CHIP_8052=y
|
||||
|
||||
#
|
||||
# Bring-up Debug Options
|
||||
#
|
||||
CONFIG_ARCH_8051_BRINGUP=y
|
||||
CONFIG_ARCH_8051_NOSYSTIMER=y
|
||||
CONFIG_ARCH_8051_SUPRESS_INTERRUPTS=y
|
||||
|
||||
#
|
||||
# Architecture Options
|
||||
#
|
||||
# CONFIG_ARCH_NOINTC is not set
|
||||
# CONFIG_ARCH_VECNOTIRQ is not set
|
||||
# CONFIG_ARCH_DMA is not set
|
||||
# CONFIG_ARCH_HAVE_IRQPRIO is not set
|
||||
CONFIG_CUSTOM_STACK=y
|
||||
# CONFIG_ARCH_ADDRENV is not set
|
||||
# CONFIG_ARCH_HAVE_VFORK is not set
|
||||
# CONFIG_ARCH_HAVE_MMU is not set
|
||||
# CONFIG_ARCH_NAND_HWECC is not set
|
||||
# CONFIG_ARCH_STACKDUMP is not set
|
||||
# CONFIG_ENDIAN_BIG is not set
|
||||
# CONFIG_ARCH_IDLE_CUSTOM is not set
|
||||
# CONFIG_ARCH_HAVE_RAMFUNCS is not set
|
||||
# CONFIG_ARCH_HAVE_RAMVECTORS is not set
|
||||
|
||||
#
|
||||
# Board Settings
|
||||
#
|
||||
CONFIG_BOARD_LOOPSPERMSEC=5000
|
||||
# CONFIG_ARCH_CALIBRATION is not set
|
||||
|
||||
#
|
||||
# Interrupt options
|
||||
#
|
||||
# CONFIG_ARCH_HAVE_INTERRUPTSTACK is not set
|
||||
# CONFIG_ARCH_HAVE_HIPRI_INTERRUPT is not set
|
||||
|
||||
#
|
||||
# Boot options
|
||||
#
|
||||
# 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
|
||||
|
||||
#
|
||||
# Boot Memory Configuration
|
||||
#
|
||||
CONFIG_RAM_START=0x0
|
||||
CONFIG_RAM_SIZE=0
|
||||
# CONFIG_ARCH_HAVE_SDRAM is not set
|
||||
|
||||
#
|
||||
# Board Selection
|
||||
#
|
||||
CONFIG_ARCH_BOARD_PJRC_87C52=y
|
||||
# CONFIG_ARCH_BOARD_CUSTOM is not set
|
||||
CONFIG_ARCH_BOARD="pjrc-8051"
|
||||
|
||||
#
|
||||
# Common Board Options
|
||||
#
|
||||
CONFIG_ARCH_HAVE_LEDS=y
|
||||
CONFIG_ARCH_LEDS=y
|
||||
|
||||
#
|
||||
# Board-Specific Options
|
||||
#
|
||||
|
||||
#
|
||||
# RTOS Features
|
||||
#
|
||||
# CONFIG_BOARD_INITIALIZE is not set
|
||||
CONFIG_USEC_PER_TICK=10000
|
||||
# CONFIG_SYSTEM_TIME64 is not set
|
||||
CONFIG_RR_INTERVAL=0
|
||||
# CONFIG_SCHED_CPULOAD is not set
|
||||
# CONFIG_SCHED_INSTRUMENTATION is not set
|
||||
CONFIG_TASK_NAME_SIZE=0
|
||||
# CONFIG_SCHED_HAVE_PARENT is not set
|
||||
# CONFIG_JULIAN_TIME is not set
|
||||
CONFIG_START_YEAR=2007
|
||||
CONFIG_START_MONTH=2
|
||||
CONFIG_START_DAY=21
|
||||
# CONFIG_DEV_CONSOLE 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
|
||||
# CONFIG_SCHED_WAITPID is not set
|
||||
# CONFIG_SCHED_STARTHOOK 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_POSIX_TIMERS=y
|
||||
CONFIG_DISABLE_PTHREAD=y
|
||||
CONFIG_DISABLE_SIGNALS=y
|
||||
CONFIG_DISABLE_MQUEUE=y
|
||||
CONFIG_DISABLE_ENVIRON=y
|
||||
|
||||
#
|
||||
# Sizes of configurable things (0 disables)
|
||||
#
|
||||
CONFIG_MAX_TASKS=8
|
||||
CONFIG_MAX_TASK_ARGS=4
|
||||
CONFIG_NPTHREAD_KEYS=0
|
||||
CONFIG_NFILE_DESCRIPTORS=0
|
||||
CONFIG_NFILE_STREAMS=0
|
||||
CONFIG_NAME_MAX=32
|
||||
CONFIG_PREALLOC_MQ_MSGS=0
|
||||
CONFIG_MQ_MAXMSGSIZE=0
|
||||
CONFIG_MAX_WDOGPARMS=2
|
||||
CONFIG_PREALLOC_WDOGS=4
|
||||
CONFIG_PREALLOC_TIMERS=0
|
||||
|
||||
#
|
||||
# Stack and heap information
|
||||
#
|
||||
CONFIG_IDLETHREAD_STACKSIZE=256
|
||||
CONFIG_USERMAIN_STACKSIZE=256
|
||||
CONFIG_PTHREAD_STACK_MIN=256
|
||||
CONFIG_PTHREAD_STACK_DEFAULT=256
|
||||
|
||||
#
|
||||
# Device Drivers
|
||||
#
|
||||
CONFIG_DISABLE_POLL=y
|
||||
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_ARCH_HAVE_PWM_PULSECOUNT is not set
|
||||
# CONFIG_PWM is not set
|
||||
# CONFIG_ARCH_HAVE_I2CRESET is not set
|
||||
# CONFIG_I2C is not set
|
||||
# CONFIG_SPI is not set
|
||||
# CONFIG_I2S is not set
|
||||
# CONFIG_RTC is not set
|
||||
# CONFIG_WATCHDOG is not set
|
||||
# CONFIG_ANALOG is not set
|
||||
# CONFIG_AUDIO_DEVICES is not set
|
||||
# CONFIG_VIDEO_DEVICES 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_DEV_LOWCONSOLE is not set
|
||||
# CONFIG_16550_UART is not set
|
||||
# CONFIG_ARCH_HAVE_UART is not set
|
||||
# CONFIG_ARCH_HAVE_UART0 is not set
|
||||
# CONFIG_ARCH_HAVE_UART1 is not set
|
||||
# CONFIG_ARCH_HAVE_UART2 is not set
|
||||
# CONFIG_ARCH_HAVE_UART3 is not set
|
||||
# CONFIG_ARCH_HAVE_UART4 is not set
|
||||
# CONFIG_ARCH_HAVE_UART5 is not set
|
||||
# CONFIG_ARCH_HAVE_UART6 is not set
|
||||
# CONFIG_ARCH_HAVE_UART7 is not set
|
||||
# CONFIG_ARCH_HAVE_UART8 is not set
|
||||
# CONFIG_ARCH_HAVE_SCI0 is not set
|
||||
# CONFIG_ARCH_HAVE_SCI1 is not set
|
||||
# CONFIG_ARCH_HAVE_USART0 is not set
|
||||
# CONFIG_ARCH_HAVE_USART1 is not set
|
||||
# CONFIG_ARCH_HAVE_USART2 is not set
|
||||
# CONFIG_ARCH_HAVE_USART3 is not set
|
||||
# CONFIG_ARCH_HAVE_USART4 is not set
|
||||
# CONFIG_ARCH_HAVE_USART5 is not set
|
||||
# CONFIG_ARCH_HAVE_USART6 is not set
|
||||
# CONFIG_ARCH_HAVE_USART7 is not set
|
||||
# CONFIG_ARCH_HAVE_USART8 is not set
|
||||
|
||||
#
|
||||
# USART Configuration
|
||||
#
|
||||
# CONFIG_MCU_SERIAL is not set
|
||||
# CONFIG_STANDARD_SERIAL is not set
|
||||
# CONFIG_SERIAL_IFLOWCONTROL is not set
|
||||
# CONFIG_SERIAL_OFLOWCONTROL is not set
|
||||
# CONFIG_USBDEV is not set
|
||||
# CONFIG_USBHOST is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
|
||||
#
|
||||
# System Logging Device Options
|
||||
#
|
||||
|
||||
#
|
||||
# System Logging
|
||||
#
|
||||
# CONFIG_RAMLOG is not set
|
||||
|
||||
#
|
||||
# Networking Support
|
||||
#
|
||||
# CONFIG_ARCH_HAVE_NET is not set
|
||||
# CONFIG_ARCH_HAVE_PHY is not set
|
||||
# CONFIG_NET is not set
|
||||
|
||||
#
|
||||
# File Systems
|
||||
#
|
||||
|
||||
#
|
||||
# File system configuration
|
||||
#
|
||||
CONFIG_DISABLE_MOUNTPOINT=y
|
||||
CONFIG_DISABLE_PSEUDOFS_OPERATIONS=y
|
||||
# CONFIG_FS_READABLE is not set
|
||||
# CONFIG_FS_WRITABLE is not set
|
||||
# CONFIG_FS_RAMMAP is not set
|
||||
# CONFIG_FS_PROCFS is not set
|
||||
|
||||
#
|
||||
# System Logging
|
||||
#
|
||||
# CONFIG_SYSLOG_ENABLE is not set
|
||||
# CONFIG_SYSLOG is not set
|
||||
|
||||
#
|
||||
# Graphics Support
|
||||
#
|
||||
# CONFIG_NX is not set
|
||||
|
||||
#
|
||||
# Memory Management
|
||||
#
|
||||
# CONFIG_MM_SMALL is not set
|
||||
CONFIG_MM_REGIONS=2
|
||||
# CONFIG_ARCH_HAVE_HEAP2 is not set
|
||||
# CONFIG_GRAN is not set
|
||||
|
||||
#
|
||||
# Audio Support
|
||||
#
|
||||
# CONFIG_AUDIO is not set
|
||||
|
||||
#
|
||||
# Binary Formats
|
||||
#
|
||||
# CONFIG_BINFMT_DISABLE is not set
|
||||
# CONFIG_NXFLAT is not set
|
||||
# CONFIG_ELF is not set
|
||||
# CONFIG_BUILTIN is not set
|
||||
# CONFIG_PIC is not set
|
||||
# CONFIG_SYMTAB_ORDEREDBYNAME is not set
|
||||
|
||||
#
|
||||
# Library Routines
|
||||
#
|
||||
|
||||
#
|
||||
# Standard C Library Options
|
||||
#
|
||||
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_LIB_RAND_ORDER=1
|
||||
# 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_EXECFUNCS is not set
|
||||
CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=256
|
||||
CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=256
|
||||
# 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
|
||||
|
||||
#
|
||||
# Non-standard Library Support
|
||||
#
|
||||
# CONFIG_LIB_KBDCODEC is not set
|
||||
# CONFIG_LIB_SLCDCODEC is not set
|
||||
|
||||
#
|
||||
# Basic CXX Support
|
||||
#
|
||||
# CONFIG_C99_BOOL8 is not set
|
||||
# CONFIG_HAVE_CXX is not set
|
||||
|
||||
#
|
||||
# Application Configuration
|
||||
#
|
||||
|
||||
#
|
||||
# Built-In Applications
|
||||
#
|
||||
|
||||
#
|
||||
# Examples
|
||||
#
|
||||
# CONFIG_EXAMPLES_BUTTONS is not set
|
||||
# CONFIG_EXAMPLES_CAN is not set
|
||||
# CONFIG_EXAMPLES_CONFIGDATA 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_MODBUS is not set
|
||||
# CONFIG_EXAMPLES_MOUNT is not set
|
||||
# CONFIG_EXAMPLES_NRF24L01TERM 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_LOOPS=1
|
||||
CONFIG_EXAMPLES_OSTEST_STACKSIZE=256
|
||||
CONFIG_EXAMPLES_OSTEST_NBARRIER_THREADS=8
|
||||
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_POSIXSPAWN 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_SLCD is not set
|
||||
# CONFIG_EXAMPLES_SMART is not set
|
||||
# CONFIG_EXAMPLES_TCPECHO 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_WEBSERVER is not set
|
||||
# CONFIG_EXAMPLES_USBSERIAL is not set
|
||||
# CONFIG_EXAMPLES_USBTERM is not set
|
||||
# CONFIG_EXAMPLES_WATCHDOG is not set
|
||||
|
||||
#
|
||||
# Graphics Support
|
||||
#
|
||||
# CONFIG_TIFF is not set
|
||||
|
||||
#
|
||||
# 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_DHCPD is not set
|
||||
# CONFIG_NETUTILS_FTPC is not set
|
||||
# CONFIG_NETUTILS_FTPD is not set
|
||||
# CONFIG_NETUTILS_JSON is not set
|
||||
# CONFIG_NETUTILS_SMTP is not set
|
||||
# CONFIG_NETUTILS_TFTPC is not set
|
||||
# CONFIG_NETUTILS_THTTPD is not set
|
||||
# CONFIG_NETUTILS_NETLIB is not set
|
||||
# CONFIG_NETUTILS_WEBCLIENT is not set
|
||||
|
||||
#
|
||||
# FreeModBus
|
||||
#
|
||||
# CONFIG_MODBUS is not set
|
||||
|
||||
#
|
||||
# NSH Library
|
||||
#
|
||||
# CONFIG_NSH_LIBRARY is not set
|
||||
|
||||
#
|
||||
# NxWidgets/NxWM
|
||||
#
|
||||
|
||||
#
|
||||
# Platform-specific Support
|
||||
#
|
||||
# CONFIG_PLATFORM_CONFIGDATA is not set
|
||||
|
||||
#
|
||||
# System Libraries and NSH Add-Ons
|
||||
#
|
||||
|
||||
#
|
||||
# USB CDC/ACM Device Commands
|
||||
#
|
||||
|
||||
#
|
||||
# USB Composite Device Commands
|
||||
#
|
||||
|
||||
#
|
||||
# Custom Free Memory Command
|
||||
#
|
||||
# CONFIG_SYSTEM_FREE is not set
|
||||
|
||||
#
|
||||
# I2C tool
|
||||
#
|
||||
|
||||
#
|
||||
# INI File Parser
|
||||
#
|
||||
# CONFIG_SYSTEM_INIFILE is not set
|
||||
|
||||
#
|
||||
# FLASH Program Installation
|
||||
#
|
||||
# CONFIG_SYSTEM_INSTALL is not set
|
||||
|
||||
#
|
||||
# FLASH Erase-all Command
|
||||
#
|
||||
|
||||
#
|
||||
# NxPlayer media player library / command Line
|
||||
#
|
||||
# CONFIG_SYSTEM_NXPLAYER is not set
|
||||
|
||||
#
|
||||
# RAM test
|
||||
#
|
||||
# CONFIG_SYSTEM_RAMTEST 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
|
||||
|
||||
#
|
||||
# USB Monitor
|
||||
#
|
||||
|
||||
#
|
||||
# EMACS-like Command Line Editor
|
||||
#
|
||||
# CONFIG_SYSTEM_CLE is not set
|
||||
|
||||
#
|
||||
# VI Work-Alike Editor
|
||||
#
|
||||
# CONFIG_SYSTEM_VI is not set
|
||||
|
||||
#
|
||||
# Stack Monitor
|
||||
#
|
||||
|
||||
#
|
||||
# USB Mass Storage Device Commands
|
||||
#
|
||||
|
||||
#
|
||||
# Zmodem Commands
|
||||
#
|
||||
# CONFIG_SYSTEM_ZMODEM is not set
|
@ -1,51 +0,0 @@
|
||||
/************************************************************
|
||||
* board/board.h
|
||||
*
|
||||
* Copyright (C) 2007-2009 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.
|
||||
*
|
||||
************************************************************/
|
||||
|
||||
#ifndef __ARCH_BOARD_BOARD_H
|
||||
#define __ARCH_BOARD_BOARD_H
|
||||
|
||||
/************************************************************
|
||||
* Included Files
|
||||
************************************************************/
|
||||
|
||||
/************************************************************
|
||||
* Definitions
|
||||
************************************************************/
|
||||
|
||||
/************************************************************
|
||||
* Inline Functions
|
||||
************************************************************/
|
||||
|
||||
#endif /* __ARCH_BOARD_BOARD_H */
|
@ -1,215 +0,0 @@
|
||||
/**************************************************************************
|
||||
* pjrc.h
|
||||
*
|
||||
* Copyright (C) 2007, 2009 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 Gregory Nutt 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.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
#ifndef __PJRC_H
|
||||
#define __PJRC_H
|
||||
|
||||
/**************************************************************************
|
||||
* Included Files
|
||||
**************************************************************************/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/**************************************************************************
|
||||
* Public Definitions
|
||||
**************************************************************************/
|
||||
|
||||
/**************************************************************************
|
||||
* Public Types
|
||||
**************************************************************************/
|
||||
|
||||
/**************************************************************************
|
||||
* Public Variables
|
||||
**************************************************************************/
|
||||
|
||||
/* Memory Map
|
||||
*
|
||||
* BEGIN END DESCRIPTION
|
||||
* 0x0000 0x1fff CODE: ROM containg PAULMON2
|
||||
* DATA: RAM for program variables
|
||||
* 0x2000 0x7fff COMMON: RAM for program code or
|
||||
* variables
|
||||
* 0x8000 0xf7ff COMMON: FLASH for program code
|
||||
* 0xf800 0xfeff COMMON: Peripherals
|
||||
* 0xff00 0xffff COMMON: unused
|
||||
*
|
||||
* Program code may be loaded at the RAM location 0x2000-0x7fff
|
||||
* for testing. If loaded into the FLASH location at
|
||||
* 0x8000-0xf7ff, PAULMON2 will automatically write the program
|
||||
* into flash. The program is configured in the RAM-based test
|
||||
* configuration:
|
||||
*/
|
||||
|
||||
#define RAM_BLOCK_START IRAM_SIZE
|
||||
#define RAM_BLOCK_END 0x1fff
|
||||
|
||||
#define PROGRAM_BASE 0x2000
|
||||
#define PROGRAM_END 0x7fff
|
||||
|
||||
#define FLASH_BASE 0x8000
|
||||
#define FLASH_END 0xf7ff
|
||||
|
||||
/* Well-known entry points to access PAULMON2's built-in functions */
|
||||
|
||||
#define PM2_ENTRY_PHEX1 0x002e
|
||||
#define PM2_ENTRY_COUT 0x0030
|
||||
#define PM2_ENTRY_CIN 0x0032
|
||||
#define PM2_ENTRY_PHEX 0x0034
|
||||
#define PM2_ENTRY_PHEX16 0x0036
|
||||
#define PM2_ENTRY_PSTR 0x0038
|
||||
#define PM2_ENTRY_ESC 0x003e
|
||||
#define PM2_ENTRY_UPPER 0x0040
|
||||
#define PM2_ENTRY_PINT8U 0x004D
|
||||
#define PM2_ENTRY_PINT8 0x0050
|
||||
#define PM2_ENTRY_PINT16U 0x0053
|
||||
#define PM2_ENTRY_NEWLINE 0x0048
|
||||
#define PM2_ENTRY_PRGM 0x0059
|
||||
#define PM2_ENTRY_ERBLOCK 0x0067
|
||||
|
||||
/* PAULMON2 captures all interrupt vectors in ROM but relays them
|
||||
* through the following RAM addresses:
|
||||
*/
|
||||
|
||||
#define PM2_VECTOR_BASE PROGRAM_BASE
|
||||
#define PM2_VECTOR_EXTINT0 (PM2_VECTOR_BASE + 3)
|
||||
#define PM2_VECTOR_TIMER0 (PM2_VECTOR_BASE + 11)
|
||||
#define PM2_VECTOR_EXTINT1 (PM2_VECTOR_BASE + 19)
|
||||
#define PM2_VECTOR_TIMER1 (PM2_VECTOR_BASE + 27)
|
||||
#define PM2_VECTOR_UART (PM2_VECTOR_BASE + 35)
|
||||
#define PM2_VECTOR_TIMER2 (PM2_VECTOR_BASE + 43)
|
||||
|
||||
/* Peripheral Mapping
|
||||
*
|
||||
* Begin End Peripheral Addr Acc Function
|
||||
* F800 F8FF 82C55 (A, B, C) F800 R/W Port A
|
||||
* F801 R/W Port B
|
||||
* F802 R/W Port C
|
||||
* F803 W Config A,B,C
|
||||
* F900 F9FF 82C55 (D, E, F) F900 R/W Port D
|
||||
* F901 R/W Port E (LEDs)
|
||||
* F902 R/W Port F
|
||||
* F903 W Config D,E,F
|
||||
* FA00 FAFF User Expansion
|
||||
* FB00 FBFF User Expansion
|
||||
* FC00 FCFF User Expansion
|
||||
* FD00 FDFF User Expansion
|
||||
* FE00 FEFF LCD Port FE00 W Command Register
|
||||
* FE01 R Status Register
|
||||
* FE02 W Display or CGRAM Buffer
|
||||
* FE03 R " " "" " " " "
|
||||
*
|
||||
* These are the memory-mapped locations used to access the two 82C55
|
||||
* chips
|
||||
*/
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
xdata at 0xF800 uint8_t p82c55_port_a;
|
||||
xdata at 0xF801 uint8_t p82c55_port_b;
|
||||
xdata at 0xF802 uint8_t p82c55_port_c;
|
||||
xdata at 0xF803 uint8_t p82c55_abc_config;
|
||||
xdata at 0xF900 uint8_t p82c55_port_d;
|
||||
xdata at 0xF901 uint8_t p82c55_port_e;
|
||||
xdata at 0xF902 uint8_t p82c55_port_f;
|
||||
xdata at 0xF903 uint8_t p82c55_def_config;
|
||||
#endif
|
||||
|
||||
/* LED (Port E) bit definitions */
|
||||
|
||||
#define LED_STARTED 0
|
||||
#define LED_HEAPALLOCATE 1
|
||||
#define LED_IRQSENABLED 2
|
||||
#define LED_IDLE 3
|
||||
#define LED_UNUSED2 4
|
||||
#define LED_INIRQ 5
|
||||
#define LED_ASSERTION 6
|
||||
#define LED_PANIC 7
|
||||
|
||||
/* Registers. 8052 regiser definitions are provided in the SDCC header
|
||||
* file 8052.h. However, a few SFR registers are missing from that
|
||||
* file (they can be found in mcs51reg.h, but that file is too much
|
||||
* when the following simple addtions do the job).
|
||||
*/
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
sfr at 0xc9 T2MOD ;
|
||||
#endif
|
||||
|
||||
/* Timing information.
|
||||
*
|
||||
* The PJRC board is based on a standard 87C52 CPU clocked at 22.1184 MHz.
|
||||
* The CPU clock is divided by 12 to yield a clock frequency of 1.8432 MHz.
|
||||
*/
|
||||
|
||||
#define CPU_CLOCK_HZ 22118400L
|
||||
#define TIMER_CLOCK_HZ 1843200L
|
||||
|
||||
/* The 87C52 has three timers, timer 0, timer 1, and timer 2. On the PJRC
|
||||
* board, timer 1 and 2 have dedicated functions. They provide baud support
|
||||
* support for the boards two serial ports. Unfortunately, only timer 2
|
||||
* can generate the accurate 100Hz timer desired by the OS.
|
||||
*
|
||||
* Timer 0 provides only a 8-bit auto-reload mode.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_8052_TIMER2
|
||||
|
||||
/* To use timer 2 as the 100Hz system timer, we need to calculate a 16-bit
|
||||
* reload value that results in 100Hz overflow interrupts. That value
|
||||
* is given by:
|
||||
*
|
||||
* Timer ticks = TIMER_CLOCK_HZ / (desired ticks-per-second)
|
||||
* = 18432
|
||||
* Capture value = 0xffff - (Timer ticks)
|
||||
* = 47103 = 0x67ff
|
||||
*/
|
||||
|
||||
# define TIMER2_CAPTURE_LOW 0xff
|
||||
# define TIMER2_CAPTURE_HIGH 0x67
|
||||
|
||||
#else
|
||||
|
||||
/* Timer 0, mode 0 can be used as a system timer. In that mode, the
|
||||
* 1.8432 is further divided by 32. A single 8-bit value is incremented
|
||||
* at 57600 Hz, which results in 225 Timer 0 overflow interrupts per
|
||||
* second.
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
||||
/**************************************************************************
|
||||
* Public Function Prototypes
|
||||
**************************************************************************/
|
||||
|
||||
#endif /* __PJRC_H */
|
@ -1,28 +0,0 @@
|
||||
diff -u sdcc/device/lib/Makefile.orig sdcc/device/lib/Makefile
|
||||
--- sdcc/device/lib/Makefile.orig 2007-03-06 09:55:01.000000000 -0600
|
||||
+++ sdcc/device/lib/Makefile 2007-03-06 09:58:32.000000000 -0600
|
||||
@@ -242,7 +242,7 @@
|
||||
model-mcs51-stack-auto:
|
||||
if [ "`grep mcs51 $(top_builddir)ports.build`" = mcs51 ]; then \
|
||||
for model in $(MODELS); do \
|
||||
- $(MAKE) MODELFLAGS="--model-$$model --stack-auto" PORT=$$model PORTDIR=$(BUILDDIR)/$$model-stack-auto PORTINCDIR=$(INCDIR)/mcs51 objects; \
|
||||
+ $(MAKE) MODELFLAGS="--model-$$model --stack-auto --int-long-reent --float-reent" PORT=$$model PORTDIR=$(BUILDDIR)/$$model-stack-auto PORTINCDIR=$(INCDIR)/mcs51 objects; \
|
||||
done \
|
||||
fi
|
||||
|
||||
diff -u sdcc/device/include/stdarg.h.orig sdcc/device/include/stdarg.h
|
||||
--- sdcc/device/include/stdarg.h.orig 2007-03-11 13:21:15.000000000 -0600
|
||||
+++ sdcc/device/include/stdarg.h 2007-03-11 13:26:59.000000000 -0600
|
||||
@@ -25,9 +25,9 @@
|
||||
|
||||
#else
|
||||
|
||||
-typedef unsigned char __data * va_list ;
|
||||
-#define va_arg(marker,type) *((type __data * )(marker -= sizeof(type)))
|
||||
-#define va_start(marker,first) { marker = (va_list) ((char __data * )&first); }
|
||||
+typedef unsigned char * va_list ;
|
||||
+#define va_arg(marker,type) *((type * )(marker -= sizeof(type)))
|
||||
+#define va_start(marker,first) { marker = (va_list) ((char * )&first); }
|
||||
|
||||
#endif
|
||||
|
@ -1,65 +0,0 @@
|
||||
#!/bin/bash
|
||||
# configs/pjrc-8051/setenv.sh
|
||||
#
|
||||
# Copyright (C) 2007-2008, 2012 Gregory Nutt. All rights reserved.
|
||||
# Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# 3. Neither the name NuttX nor the names of its contributors may be
|
||||
# used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
if [ "$_" = "$0" ] ; then
|
||||
echo "You must source this script, not run it!" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
WD=`pwd`
|
||||
if [ ! -x "setenv.sh" ]; then
|
||||
echo "This script must be executed from the top-level NuttX build directory"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "${PATH_ORIG}" ]; then
|
||||
export PATH_ORIG="${PATH}"
|
||||
fi
|
||||
|
||||
#
|
||||
# This is the 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}
|
||||
echo "PATH : ${PATH}"
|
15
configs/pjrc-8051/src/.gitignore
vendored
15
configs/pjrc-8051/src/.gitignore
vendored
@ -1,15 +0,0 @@
|
||||
/Make.dep
|
||||
/.depend
|
||||
/up_mem.h
|
||||
/*.sym
|
||||
/*.asm
|
||||
/*.rel
|
||||
/*.lst
|
||||
/*.adb
|
||||
/*.rst
|
||||
/*.lib
|
||||
/*.lnk
|
||||
/*.map
|
||||
/*.mem
|
||||
/*.ihx
|
||||
/*.hex
|
@ -1,75 +0,0 @@
|
||||
############################################################################
|
||||
# configs/pjrc-8051/src/Makefile
|
||||
#
|
||||
# Copyright (C) 2007, 2008, 2012 Gregory Nutt. All rights reserved.
|
||||
# Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# 3. Neither the name NuttX nor the names of its contributors may be
|
||||
# used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
############################################################################
|
||||
|
||||
-include $(TOPDIR)/Make.defs
|
||||
|
||||
CFLAGS += -I$(TOPDIR)/sched
|
||||
|
||||
ASRCS =
|
||||
AOBJS = $(ASRCS:.S=$(OBJEXT))
|
||||
CSRCS = up_leds.c
|
||||
COBJS = $(CSRCS:.c=$(OBJEXT))
|
||||
|
||||
SRCS = $(ASRCS) $(CSRCS)
|
||||
OBJS = $(AOBJS) $(COBJS)
|
||||
|
||||
CFLAGS += -I $(TOPDIR)/arch/$(CONFIG_ARCH)/src
|
||||
|
||||
all: libboard$(LIBEXT)
|
||||
|
||||
$(AOBJS): %$(OBJEXT): %.S
|
||||
$(call ASSEMBLE, $<, $@)
|
||||
|
||||
$(COBJS) $(LINKOBJS): %$(OBJEXT): %.c
|
||||
$(call COMPILE, $<, $@)
|
||||
|
||||
libboard$(LIBEXT): $(OBJS)
|
||||
$(call ARCHIVE, $@, $(OBJS))
|
||||
|
||||
.depend: Makefile $(SRCS)
|
||||
$(Q) $(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
|
||||
$(Q) touch $@
|
||||
|
||||
depend: .depend
|
||||
|
||||
clean:
|
||||
$(call DELFILE, libboard$(LIBEXT))
|
||||
$(call CLEAN)
|
||||
|
||||
distclean: clean
|
||||
$(call DELFILE, Make.dep)
|
||||
$(call DELFILE, .depend)
|
||||
|
||||
-include Make.dep
|
@ -1,207 +0,0 @@
|
||||
/************************************************************************
|
||||
* up_leds.c
|
||||
*
|
||||
* Copyright (C) 2007, 2009, 2013 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 Gregory Nutt 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 <stdint.h>
|
||||
#include "up_internal.h"
|
||||
|
||||
/************************************************************************
|
||||
* Definitions
|
||||
************************************************************************/
|
||||
|
||||
#define RESET_KLUDGE_NEEDED 1
|
||||
|
||||
/************************************************************************
|
||||
* Private Data
|
||||
************************************************************************/
|
||||
|
||||
static uint8_t g_ledstate;
|
||||
|
||||
/************************************************************************
|
||||
* Private Functions
|
||||
************************************************************************/
|
||||
|
||||
#if defined(CONFIG_DEBUG_LEDS) && defined(CONFIG_ARCH_LEDS)
|
||||
static void _up_puthex(uint8_t hex) __naked
|
||||
{
|
||||
hex; /* To avoid unreferenced argument warning */
|
||||
_asm
|
||||
mov a, dpl
|
||||
ljmp PM2_ENTRY_PHEX
|
||||
_endasm;
|
||||
}
|
||||
|
||||
static void _up_putch(uint8_t ch) __naked
|
||||
{
|
||||
_asm
|
||||
mov a, dpl
|
||||
ljmp PM2_ENTRY_COUT
|
||||
_endasm;
|
||||
}
|
||||
|
||||
static void _up_putnl(void) __naked
|
||||
{
|
||||
_asm
|
||||
ljmp PM2_ENTRY_NEWLINE
|
||||
_endasm;
|
||||
}
|
||||
|
||||
# define _up_showledinit() \
|
||||
_up_putch('I'); \
|
||||
_up_puthex(g_ledstate); _up_putch(':'); \
|
||||
_up_puthex(p82c55_port_e); _up_putnl();
|
||||
|
||||
# define _up_showledreset() \
|
||||
_up_putch('R'); \
|
||||
_up_puthex(led); _up_putch(':'); \
|
||||
_up_puthex(g_ledstate); _up_putch(':'); \
|
||||
_up_puthex(p82c55_port_e); _up_putnl();
|
||||
|
||||
# define _up_showledon() \
|
||||
_up_putch('+'); \
|
||||
_up_puthex(led); _up_putch(':'); \
|
||||
_up_puthex(g_ledstate); _up_putch(':'); \
|
||||
_up_puthex(p82c55_port_e); _up_putnl();
|
||||
|
||||
# define _up_showledoff() \
|
||||
_up_putch('-'); \
|
||||
_up_puthex(led); _up_putch(':'); \
|
||||
_up_puthex(g_ledstate); _up_putch(':'); \
|
||||
_up_puthex(p82c55_port_e); _up_putnl();
|
||||
|
||||
#else
|
||||
|
||||
# define _up_showledinit()
|
||||
# define _up_showledreset()
|
||||
# define _up_showledon()
|
||||
# define _up_showledoff()
|
||||
|
||||
#endif
|
||||
|
||||
/************************************************************************
|
||||
* Public Funtions
|
||||
************************************************************************/
|
||||
|
||||
/************************************************************************
|
||||
* Name: board_led_initialize
|
||||
************************************************************************/
|
||||
|
||||
#ifdef CONFIG_ARCH_LEDS
|
||||
void board_led_initialize(void)
|
||||
{
|
||||
/* Set all ports as outputs */
|
||||
|
||||
p82c55_def_config = 128;
|
||||
|
||||
/* Turn LED 1-7 off; turn LED 0 on */
|
||||
|
||||
g_ledstate = 0xfe;
|
||||
p82c55_port_e = g_ledstate;
|
||||
|
||||
_up_showledinit();
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
* Name: board_led_on
|
||||
************************************************************************/
|
||||
|
||||
void board_led_on(uint8_t led)
|
||||
{
|
||||
/* This may be called from an interrupt handler */
|
||||
|
||||
irqstate_t flags = irqsave();
|
||||
|
||||
#ifdef RESET_KLUDGE_NEEDED
|
||||
/* I don't understand why this happens yet, but sometimes
|
||||
* it is necessary to reconfigure port E.
|
||||
*/
|
||||
|
||||
if (g_ledstate != p82c55_port_e)
|
||||
{
|
||||
_up_showledreset();
|
||||
p82c55_def_config = 128;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Clear the bit in port E corresponding to LED to turn it on */
|
||||
|
||||
if (led < 8)
|
||||
{
|
||||
g_ledstate &= ~(g_ntobit[led]);
|
||||
p82c55_port_e = g_ledstate;
|
||||
}
|
||||
|
||||
_up_showledon();
|
||||
irqrestore(flags);
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
* Name: board_led_off
|
||||
************************************************************************/
|
||||
|
||||
void board_led_off(uint8_t led)
|
||||
{
|
||||
/* This may be called from an interrupt handler */
|
||||
|
||||
irqstate_t flags = irqsave();
|
||||
|
||||
#ifdef RESET_KLUDGE_NEEDED
|
||||
/* I don't understand why this happens yet, but sometimes
|
||||
* it is necessary to reconfigure port E.
|
||||
*/
|
||||
|
||||
if (g_ledstate != p82c55_port_e)
|
||||
{
|
||||
_up_showledreset();
|
||||
p82c55_def_config = 128;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Set the bit in port E corresponding to LED to turn it off */
|
||||
|
||||
if (led < 8)
|
||||
{
|
||||
g_ledstate |= g_ntobit[led];
|
||||
p82c55_port_e = g_ledstate;
|
||||
}
|
||||
|
||||
_up_showledoff();
|
||||
irqrestore(flags);
|
||||
}
|
||||
#endif /* CONFIG_ARCH_LEDS */
|
Loading…
Reference in New Issue
Block a user