mirror of
https://github.com/apache/nuttx.git
synced 2026-05-28 03:45:50 +08:00
Initial Release
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@125 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
@@ -0,0 +1,213 @@
|
|||||||
|
Board-Specific Configurations
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Table of Contents
|
||||||
|
^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
o Board-Specific Configurations
|
||||||
|
o Summary of Files
|
||||||
|
o Supported Architectures
|
||||||
|
o Configuring NuttX
|
||||||
|
|
||||||
|
Board-Specific Configurations
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
The configs/ subdirectory contains configuration data for each board. These
|
||||||
|
board-specific configurations plus the architecture-specific configurations in
|
||||||
|
the arch/ subdirectory complete define a customized port of NuttX.
|
||||||
|
|
||||||
|
Directory Structure
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
The configs directory contains board specific configurationlogic. Each
|
||||||
|
board must provide a subdirectory <board-name> under configs/ with the
|
||||||
|
following characteristics:
|
||||||
|
|
||||||
|
|
||||||
|
<board-name>
|
||||||
|
|-- Make.defs
|
||||||
|
|-- defconfig
|
||||||
|
`-- setenv.sh
|
||||||
|
|
||||||
|
Summary of Files
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Make.defs -- This makefile fragment provides architecture and
|
||||||
|
tool-specific build options. It will be included by all other
|
||||||
|
makefiles in the build (once it is installed). This make fragment
|
||||||
|
should define:
|
||||||
|
|
||||||
|
Tools: CC, LD, AR, NM, OBJCOPY, OBJDUMP
|
||||||
|
Tool options: CFLAGS, LDFLAGS
|
||||||
|
|
||||||
|
When this makefile fragment runs, it will be passed TOPDIR which
|
||||||
|
is the path to the root directory of the build. This makefile
|
||||||
|
fragment may include ${TOPDIR}/.config to perform configuration
|
||||||
|
specific settings. For example, the CFLAGS will most likely be
|
||||||
|
different if CONFIG_DEBUG=y.
|
||||||
|
|
||||||
|
defconfig -- This is a configuration file similar to the Linux
|
||||||
|
configuration file. In contains varialble/value pairs like:
|
||||||
|
|
||||||
|
CONFIG_VARIABLE=value
|
||||||
|
|
||||||
|
This configuration file will be used at build time:
|
||||||
|
|
||||||
|
(1) as a makefile fragment included in other makefiles, and
|
||||||
|
(2) to generate include/nuttx/config.h which is included by
|
||||||
|
most C files in the system.
|
||||||
|
|
||||||
|
The following variables are recognized by the build (you may
|
||||||
|
also include architecture/board-specific settings).
|
||||||
|
|
||||||
|
Architecture selection:
|
||||||
|
|
||||||
|
CONFIG_ARCH - identifies the arch/ subdirectory
|
||||||
|
CONFIG_ARCH_name - for use in C code
|
||||||
|
|
||||||
|
General OS setup
|
||||||
|
|
||||||
|
CONFIG_EXAMPLE - identifies the subdirectory in examples
|
||||||
|
that will be used in the build
|
||||||
|
CONFIG_DEBUG - enables built-in debug options
|
||||||
|
CONFIG_DEBUG_VERBOSE - enables verbose debug output
|
||||||
|
CONFIG_HAVE_LOWPUTC - architecture supports low-level, boot
|
||||||
|
time console output
|
||||||
|
CONFIG_MM_REGIONS - If the architecture includes multiple
|
||||||
|
regions of memory to allocate from, this specifies the
|
||||||
|
number of memory regions that the memory manager must
|
||||||
|
handle and enables the API mm_addregion(start, end);
|
||||||
|
CONFIG_RR_INTERVAL - The round robin timeslice will be set
|
||||||
|
this number of milliseconds; Round robin scheduling can
|
||||||
|
be disabled by setting this value to zero.
|
||||||
|
CONFIG_SCHED_INSTRUMENTATION - enables instrumentation in
|
||||||
|
scheduler to monitor system performance
|
||||||
|
CONFIG_TASK_NAME_SIZE - Spcifies that maximum size of a
|
||||||
|
task name to save in the TCB. Useful if scheduler
|
||||||
|
instrumentation is selected. Set to zero to disable.
|
||||||
|
CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY -
|
||||||
|
Used to initialize the internal time logic.
|
||||||
|
CONFIG_JULIAN_TIME - Enables Julian time conversions
|
||||||
|
CONFIG_DEV_CONSOLE - Set if architecture-specific logic
|
||||||
|
provides /dev/console. Enables stdout, stderr, stdin.
|
||||||
|
|
||||||
|
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_DISABLE_CLOCK, CONFIG_DISABLE_POSIX_TIMERS, CONFIG_DISABLE_PTHREAD.
|
||||||
|
CONFIG_DISABLE_SIGNALS, CONFIG_DISABLE_MQUEUE
|
||||||
|
|
||||||
|
|
||||||
|
Misc libc settings
|
||||||
|
|
||||||
|
CONFIG_NOPRINTF_FIELDWIDTH - sprintf-related logic is a
|
||||||
|
little smaller if we do not support fieldwidthes
|
||||||
|
|
||||||
|
Allow for architecture optimized implementations
|
||||||
|
|
||||||
|
The architecture can provide optimized versions of the
|
||||||
|
following to improve sysem performance
|
||||||
|
|
||||||
|
CONFIG_ARCH_MEMCPY, CONFIG_ARCH_MEMCMP, CONFIG_ARCH_MEMMOVE
|
||||||
|
CONFIG_ARCH_MEMSET, CONFIG_ARCH_STRCMP, CONFIG_ARCH_STRCPY
|
||||||
|
CONFIG_ARCH_STRNCPY, CONFIG_ARCH_STRLEN, CONFIG_ARCH_BZERO
|
||||||
|
CONFIG_ARCH_KMALLOC, CONFIG_ARCH_KZMALLOC, CONFIG_ARCH_KFREE
|
||||||
|
|
||||||
|
Sizes of configurable things (0 disables)
|
||||||
|
|
||||||
|
CONFIG_MAX_TASKS - The maximum number of simultaneously
|
||||||
|
active tasks. This value must be a power of two.
|
||||||
|
CONFIG_NPTHREAD_KEYS - The number of items of thread-
|
||||||
|
specific data that can be retained
|
||||||
|
CONFIG_NFILE_DESCRIPTORS - The maximum number of file
|
||||||
|
descriptors (one for each open)
|
||||||
|
CONFIG_NFILE_STREAMS - The maximum number of streams that
|
||||||
|
can be fopen'ed
|
||||||
|
CONFIG_NAME_MAX - The maximum size of a file name.
|
||||||
|
CONFIG_STDIO_BUFFER_SIZE - Size of the buffer to allocate
|
||||||
|
on fopen. (Only if CONFIG_NFILE_STREAMS > 0)
|
||||||
|
CONFIG_NUNGET_CHARS - Number of characters that can be
|
||||||
|
buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0)
|
||||||
|
CONFIG_PREALLOC_MQ_MSGS - The number of pre-allocated message
|
||||||
|
structures. The system manages a pool of preallocated
|
||||||
|
message structures to minimize dynamic allocations
|
||||||
|
CONFIG_MQ_MAXMSGSIZE - Message structures are allocated with
|
||||||
|
a fixed payload size given by this settin (does not include
|
||||||
|
other message structure overhead.
|
||||||
|
CONFIG_PREALLOC_WDOGS - The number of pre-allocated watchdog
|
||||||
|
structures. The system manages a pool of preallocated
|
||||||
|
watchdog structures to minimize dynamic allocations
|
||||||
|
|
||||||
|
Stack and heap information
|
||||||
|
|
||||||
|
CONFIG_BOOT_FROM_FLASH - Some configurations support XIP
|
||||||
|
operation from FLASH.
|
||||||
|
CONFIG_STACK_POINTER - The initial stack pointer
|
||||||
|
CONFIG_PROC_STACK_SIZE - The size of the initial stack
|
||||||
|
CONFIG_PTHREAD_STACK_MIN - Minimum pthread stack size
|
||||||
|
CONFIG_PTHREAD_STACK_DEFAULT - Default pthread stack size
|
||||||
|
CONFIG_HEAP_BASE - The beginning of the heap
|
||||||
|
CONFIG_HEAP_SIZE - The size of the heap
|
||||||
|
|
||||||
|
setenv.sh -- This is a script that you can include that will be installed at
|
||||||
|
the toplevel of the directory structure and can be sourced to set any
|
||||||
|
necessary environment variables.
|
||||||
|
|
||||||
|
Supported Boards
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
configs/sim
|
||||||
|
A user-mode port of NuttX to the x86 Linux platform is available.
|
||||||
|
The purpose of this port is primarily to support OS feature developement.
|
||||||
|
This port does not support interrupts or a real timer (and hence no
|
||||||
|
round robin scheduler) Otherwise, it is complete.
|
||||||
|
|
||||||
|
configs/c5471evm
|
||||||
|
This is a port to the Spectrum Digital C5471 evaluation board. The
|
||||||
|
C5471 is a dual core processor from TI with an ARM7TDMI general purpose
|
||||||
|
processor and a c54 SDP. NuttX runs on the ARM core and is built with
|
||||||
|
with a GNU arm-elf toolchain*. This port is complete, verified, and
|
||||||
|
included in the NuttX release.
|
||||||
|
|
||||||
|
configs/ntosd-dm320
|
||||||
|
This port uses the Neuros OSD with a GNU arm-elf toolchain*:
|
||||||
|
see http://wiki.neurostechnology.com/index.php/Developer_Welcome .
|
||||||
|
NuttX operates on the ARM9EJS of this dual core processor.
|
||||||
|
STATUS: This port is code complete, verified, and included in the
|
||||||
|
NuttX 0.2.1 release.
|
||||||
|
|
||||||
|
configs/m68322evb
|
||||||
|
This is a work in progress for the venerable m68322evb board from
|
||||||
|
Motorola.
|
||||||
|
|
||||||
|
configs/pjrc-8051
|
||||||
|
8051 Microcontroller. This port uses the PJRC 87C52 development system
|
||||||
|
and the SDCC toolchain. This port is not quite ready for prime time.
|
||||||
|
|
||||||
|
Other ports for the for the TI TMS320DM270, M683222 and for MIPS are in various
|
||||||
|
states of progress
|
||||||
|
|
||||||
|
Configuring NuttX
|
||||||
|
^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Configuring NuttX requires only copying
|
||||||
|
|
||||||
|
configs/<board-name>/Make.def to ${TOPDIR}/Make.defs
|
||||||
|
configs/<board-name>/setenv.sh to ${TOPDIR}/setenv.sh
|
||||||
|
configs/<board-name>/defconfig to ${TOPDIR}/.config
|
||||||
|
|
||||||
|
There is a script that automates these steps. The following steps will
|
||||||
|
accomplish the same configuration:
|
||||||
|
|
||||||
|
cd tools
|
||||||
|
./configure.sh <board-name>
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
############################################################
|
||||||
|
# Make.defs
|
||||||
|
#
|
||||||
|
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
include ${TOPDIR}/.config
|
||||||
|
|
||||||
|
ifeq ("${CONFIG_DEBUG}","y")
|
||||||
|
ARCHOPTIMIZATION = -g
|
||||||
|
else
|
||||||
|
ARCHOPTIMIZATION = -Os -fno-strict-aliasing -fno-strength-reduce \
|
||||||
|
-fomit-frame-pointer
|
||||||
|
endif
|
||||||
|
|
||||||
|
ARCHCPUFLAGS = -mapcs-32 -mcpu=arm7tdmi -msoft-float -fno-builtin
|
||||||
|
ARCHPICFLAGS = -fpic
|
||||||
|
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
|
||||||
|
ARCHDEFINES =
|
||||||
|
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
||||||
|
ARCHSCRIPT = -T$(TOPDIR)/configs/c5471evm/ld.script
|
||||||
|
|
||||||
|
CROSSDEV = arm-elf-
|
||||||
|
CC = $(CROSSDEV)gcc
|
||||||
|
LD = $(CROSSDEV)ld
|
||||||
|
AR = $(CROSSDEV)ar rcs
|
||||||
|
NM = $(CROSSDEV)nm
|
||||||
|
OBJCOPY = $(CROSSDEV)objcopy
|
||||||
|
OBJDUMP = $(CROSSDEV)objdump
|
||||||
|
|
||||||
|
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
|
||||||
|
$(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) -pipe
|
||||||
|
|
||||||
|
OBJEXT = .o
|
||||||
|
LIBEXT = .a
|
||||||
|
EXEEXT =
|
||||||
|
|
||||||
|
ifeq ("${CONFIG_DEBUG}","y")
|
||||||
|
LDFLAGS += -g
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,251 @@
|
|||||||
|
############################################################
|
||||||
|
# defconfig
|
||||||
|
#
|
||||||
|
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
############################################################
|
||||||
|
#
|
||||||
|
# architecture selection
|
||||||
|
#
|
||||||
|
# CONFIG_ARCH - identifies the arch subdirectory
|
||||||
|
# CONFIG_ARCH_name - for use in C code
|
||||||
|
# CONFIG_ROM_VECTORS - unique to c5471
|
||||||
|
# CONFIG_DRAM_END - the size of installed DRAM.
|
||||||
|
# Unique to c5471
|
||||||
|
# CONFIG_C5471_LEDS - Use LEDs to show state. Unique to c5471.
|
||||||
|
# CONFIG_C5471_STACKDUMP - Do stack dumps after assertions
|
||||||
|
#
|
||||||
|
CONFIG_ARCH=c5471
|
||||||
|
CONFIG_ARCH_C5471=y
|
||||||
|
CONFIG_ROM_VECTORS=n
|
||||||
|
CONFIG_DRAM_END=0x11000000
|
||||||
|
CONFIG_C5471_LEDS=y
|
||||||
|
CONFIG_C5471_STACKDUMP=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# C5471 specific device driver settings
|
||||||
|
#
|
||||||
|
# CONFIG_SERIAL_IRDA_CONSOLE - selects the IRDA UART for the
|
||||||
|
# console ant ttys0 (default is the modem UART).
|
||||||
|
# CONFIG_UART_*_HWFLOWCONTROL - enables hardware flow control
|
||||||
|
# CONFIG_UART_*_RXBUFSIZE - Characters are buffered as received.
|
||||||
|
# This specific the size of the receive buffer
|
||||||
|
# CONFIG_UART_*_TXBUFSIZE - Characters are buffered before
|
||||||
|
# being sent. This specific the size of the transmit buffer
|
||||||
|
# CONFIG_UART_*_BAUD - The configure BAUD of the UART. Must be
|
||||||
|
# CONFIG_UART_*_BITS - The number of bits. Must be either 7 or 8.
|
||||||
|
# CONFIG_UART_*_PARTIY - 0=no parity, 1=odd parity, 2=even parity
|
||||||
|
# CONFIG_UART_*_2STOP - Two stop bits
|
||||||
|
#
|
||||||
|
CONFIG_SERIAL_IRDA_CONSOLE=n
|
||||||
|
CONFIG_UART_IRDA_HWFLOWCONTROL=n
|
||||||
|
CONFIG_UART_MODEM_HWFLOWCONTROL=n
|
||||||
|
CONFIG_UART_IRDA_RXBUFSIZE=256
|
||||||
|
CONFIG_UART_MODEM_RXBUFSIZE=256
|
||||||
|
CONFIG_UART_IRDA_TXBUFSIZE=256
|
||||||
|
CONFIG_UART_MODEM_TXBUFSIZE=256
|
||||||
|
CONFIG_UART_IRDA_BAUD=115200
|
||||||
|
CONFIG_UART_MODEM_BAUD=115200
|
||||||
|
CONFIG_UART_IRDA_BITS=8
|
||||||
|
CONFIG_UART_MODEM_BITS=8
|
||||||
|
CONFIG_UART_IRDA_PARITY=0
|
||||||
|
CONFIG_UART_MODEM_PARITY=0
|
||||||
|
CONFIG_UART_IRDA_2STOP=0
|
||||||
|
CONFIG_UART_MODEM_2STOP=0
|
||||||
|
|
||||||
|
#
|
||||||
|
# General OS setup
|
||||||
|
#
|
||||||
|
# CONFIG_EXAMPLE - identifies the subdirectory in examples
|
||||||
|
# that will be used in the build
|
||||||
|
# CONFIG_DEBUG - enables built-in debug options
|
||||||
|
# CONFIG_DEBUG_VERBOSE - enables verbose debug output
|
||||||
|
# CONFIG_MM_REGIONS - If the architecture includes multiple
|
||||||
|
# regions of memory to allocate from, this specifies the
|
||||||
|
# number of memory regions that the memory manager must
|
||||||
|
# handle and enables the API mm_addregion(start, end);
|
||||||
|
# CONFIG_HAVE_LOWPUTC - architecture supports low-level, boot
|
||||||
|
# time console output
|
||||||
|
# CONFIG_RR_INTERVAL - The round robin timeslice will be set
|
||||||
|
# this number of milliseconds; Round robin scheduling can
|
||||||
|
# be disabled by setting this value to zero.
|
||||||
|
# CONFIG_SCHED_INSTRUMENTATION - enables instrumentation in
|
||||||
|
# scheduler to monitor system performance
|
||||||
|
# CONFIG_TASK_NAME_SIZE - Spcifies that maximum size of a
|
||||||
|
# task name to save in the TCB. Useful if scheduler
|
||||||
|
# instrumentation is selected. Set to zero to disable.
|
||||||
|
# CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY -
|
||||||
|
# Used to initialize the internal time logic.
|
||||||
|
# CONFIG_JULIAN_TIME - Enables Julian time conversions
|
||||||
|
# CONFIG_DEV_CONSOLE - Set if architecture-specific logic
|
||||||
|
# provides /dev/console. Enables stdout, stderr, stdin.
|
||||||
|
#
|
||||||
|
CONFIG_EXAMPLE=ostest
|
||||||
|
CONFIG_DEBUG=n
|
||||||
|
CONFIG_DEBUG_VERBOSE=n
|
||||||
|
CONFIG_MM_REGIONS=1
|
||||||
|
CONFIG_ARCH_LOWPUTC=y
|
||||||
|
CONFIG_RR_INTERVAL=200
|
||||||
|
CONFIG_SCHED_INSTRUMENTATION=n
|
||||||
|
CONFIG_TASK_NAME_SIZE=0
|
||||||
|
CONFIG_START_YEAR=2007
|
||||||
|
CONFIG_START_MONTH=2
|
||||||
|
CONFIG_START_DAY=13
|
||||||
|
CONFIG_JULIAN_TIME=n
|
||||||
|
CONFIG_DEV_CONSOLE=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_DISABLE_CLOCK=n
|
||||||
|
CONFIG_DISABLE_POSIX_TIMERS=n
|
||||||
|
CONFIG_DISABLE_PTHREAD=n
|
||||||
|
CONFIG_DISABLE_SIGNALS=n
|
||||||
|
CONFIG_DISABLE_MQUEUE=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# Misc libc settings
|
||||||
|
#
|
||||||
|
# CONFIG_NOPRINTF_FIELDWIDTH - sprintf-related logic is a
|
||||||
|
# little smaller if we do not support fieldwidthes
|
||||||
|
#
|
||||||
|
CONFIG_NOPRINTF_FIELDWIDTH=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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_BZERO=n
|
||||||
|
CONFIG_ARCH_KMALLOC=n
|
||||||
|
CONFIG_ARCH_KZMALLOC=n
|
||||||
|
CONFIG_ARCH_KFREE=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# General build options
|
||||||
|
#
|
||||||
|
# CONFIG_RRLOAD_BINARY - make the rrload binary format used with
|
||||||
|
# BSPs from www.ridgerun.com
|
||||||
|
#
|
||||||
|
CONFIG_RRLOAD_BINARY=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Sizes of configurable things (0 disables)
|
||||||
|
#
|
||||||
|
# CONFIG_MAX_TASKS - The maximum number of simultaneously
|
||||||
|
# active tasks. This value must be a power of two.
|
||||||
|
# CONFIG_MAX_TASK_ARGS - This controls the maximum number of
|
||||||
|
# of parameters that a task may receive (i.e., maxmum value
|
||||||
|
# of 'argc')
|
||||||
|
# CONFIG_NPTHREAD_KEYS - The number of items of thread-
|
||||||
|
# specific data that can be retained
|
||||||
|
# CONFIG_NFILE_DESCRIPTORS - The maximum number of file
|
||||||
|
# descriptors (one for each open)
|
||||||
|
# CONFIG_NFILE_STREAMS - The maximum number of streams that
|
||||||
|
# can be fopen'ed
|
||||||
|
# CONFIG_NAME_MAX - The maximum size of a file name.
|
||||||
|
# CONFIG_STDIO_BUFFER_SIZE - Size of the buffer to allocate
|
||||||
|
# on fopen. (Only if CONFIG_NFILE_STREAMS > 0)
|
||||||
|
# CONFIG_NUNGET_CHARS - Number of characters that can be
|
||||||
|
# buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0)
|
||||||
|
# CONFIG_PREALLOC_MQ_MSGS - The number of pre-allocated message
|
||||||
|
# structures. The system manages a pool of preallocated
|
||||||
|
# message structures to minimize dynamic allocations
|
||||||
|
# CONFIG_MQ_MAXMSGSIZE - Message structures are allocated with
|
||||||
|
# a fixed payload size given by this settin (does not include
|
||||||
|
# other message structure overhead.
|
||||||
|
# CONFIG_MAX_WDOGPARMS - Maximum number of parameters that
|
||||||
|
# can be passed to a watchdog handler
|
||||||
|
# CONFIG_PREALLOC_WDOGS - The number of pre-allocated watchdog
|
||||||
|
# structures. The system manages a pool of preallocated
|
||||||
|
# watchdog structures to minimize dynamic allocations
|
||||||
|
# CONFIG_PREALLOC_TIMERS - The number of pre-allocated POSIX
|
||||||
|
# timer structures. The system manages a pool of preallocated
|
||||||
|
# timer structures to minimize dynamic allocations. Set to
|
||||||
|
# zero for all dynamic allocations.
|
||||||
|
#
|
||||||
|
CONFIG_MAX_TASKS=64
|
||||||
|
CONFIG_MAX_TASK_ARGS=4
|
||||||
|
CONFIG_NPTHREAD_KEYS=4
|
||||||
|
CONFIG_NFILE_DESCRIPTORS=32
|
||||||
|
CONFIG_NFILE_STREAMS=16
|
||||||
|
CONFIG_NAME_MAX=32
|
||||||
|
CONFIG_STDIO_BUFFER_SIZE=1024
|
||||||
|
CONFIG_NUNGET_CHARS=2
|
||||||
|
CONFIG_PREALLOC_MQ_MSGS=32
|
||||||
|
CONFIG_MQ_MAXMSGSIZE=32
|
||||||
|
CONFIG_MAX_WDOGPARMS=4
|
||||||
|
CONFIG_PREALLOC_WDOGS=32
|
||||||
|
CONFIG_PREALLOC_TIMERS=8
|
||||||
|
|
||||||
|
#
|
||||||
|
# Stack and heap information
|
||||||
|
#
|
||||||
|
# CONFIG_BOOT_FROM_FLASH - Some configurations support XIP
|
||||||
|
# operation from FLASH.
|
||||||
|
# CONFIG_CUSTOM_STACK - The up_ implementation will handle
|
||||||
|
# all stack operations outside of the nuttx model.
|
||||||
|
# CONFIG_STACK_POINTER - The initial stack pointer (arm7tdmi only)
|
||||||
|
# CONFIG_PROC_STACK_SIZE - The size of the initial stack
|
||||||
|
# CONFIG_PTHREAD_STACK_MIN - Minimum pthread stack size
|
||||||
|
# CONFIG_PTHREAD_STACK_DEFAULT - Default pthread stack size
|
||||||
|
# CONFIG_HEAP_BASE - The beginning of the heap
|
||||||
|
# CONFIG_HEAP_SIZE - The size of the heap
|
||||||
|
#
|
||||||
|
CONFIG_BOOT_FROM_FLASH=n
|
||||||
|
CONFIG_CUSTOM_STACK=n
|
||||||
|
CONFIG_STACK_POINTER=
|
||||||
|
CONFIG_PROC_STACK_SIZE=4096
|
||||||
|
CONFIG_PTHREAD_STACK_MIN=256
|
||||||
|
CONFIG_PTHREAD_STACK_DEFAULT=4096
|
||||||
|
CONFIG_HEAP_BASE=
|
||||||
|
CONFIG_HEAP_SIZE=
|
||||||
@@ -0,0 +1,164 @@
|
|||||||
|
This is the output from examples/ostest executed on this
|
||||||
|
platform on March 9, 2007
|
||||||
|
|
||||||
|
========================================================
|
||||||
|
|
||||||
|
Standard I/O Check: write fd=1
|
||||||
|
Standard I/O Check: write fd=2
|
||||||
|
user_start: Standard I/O Check: printf
|
||||||
|
user_start: Started user_main at PID=2
|
||||||
|
user_start: Standard I/O Check: fprintf to stderr
|
||||||
|
user_main: Started with argc=5
|
||||||
|
user_main: argv[0]="no name"
|
||||||
|
user_main: argv[1]="Arg1"
|
||||||
|
user_main: argv[2]="Arg2"
|
||||||
|
user_main: argv[3]="Arg3"
|
||||||
|
user_main: argv[4]="Arg4"
|
||||||
|
dev_null: Read 0 bytes from /dev/null
|
||||||
|
dev_null: Wrote 1024 bytes to /dev/null
|
||||||
|
Initializing mutex
|
||||||
|
Starting thread 1
|
||||||
|
Starting thread 2
|
||||||
|
Thread1 Thread2
|
||||||
|
Loops 32 32
|
||||||
|
Errors 0 0
|
||||||
|
cancel_test: Test 1: Normal Cancelation
|
||||||
|
cancel_test: Starting thread
|
||||||
|
start_thread: Initializing mutex
|
||||||
|
start_thread: Initializing cond
|
||||||
|
start_thread: Starting thread
|
||||||
|
thread_waiter: Taking mutex
|
||||||
|
thread_waiter: Starting wait for condition
|
||||||
|
start_thread: Yielding
|
||||||
|
cancel_test: Canceling thread
|
||||||
|
cancel_test: Joining
|
||||||
|
cancel_test: waiter exited with result=ffffffff
|
||||||
|
cancel_test: PASS thread terminated with PTHREAD_CANCELED
|
||||||
|
cancel_test: Test 2: Cancelation of detached thread
|
||||||
|
cancel_test: Re-starting thread
|
||||||
|
restart_thread: Destroying cond
|
||||||
|
restart_thread: Destroying mutex
|
||||||
|
restart_thread: Re-starting thread
|
||||||
|
start_thread: Initializing mutex
|
||||||
|
start_thread: Initializing cond
|
||||||
|
start_thread: Starting thread
|
||||||
|
thread_waiter: Taking mutex
|
||||||
|
thread_waiter: Starting wait for condition
|
||||||
|
start_thread: Yielding
|
||||||
|
cancel_test: Canceling thread
|
||||||
|
cancel_test: Joining
|
||||||
|
cancel_test: PASS pthread_join failed with status=ESRCH
|
||||||
|
cancel_test: Test 3: Non-cancelable threads
|
||||||
|
cancel_test: Re-starting thread (non-cancelable)
|
||||||
|
restart_thread: Destroying cond
|
||||||
|
restart_thread: Destroying mutex
|
||||||
|
restart_thread: Re-starting thread
|
||||||
|
start_thread: Initializing mutex
|
||||||
|
start_thread: Initializing cond
|
||||||
|
start_thread: Starting thread
|
||||||
|
thread_waiter: Taking mutex
|
||||||
|
thread_waiter: Starting wait for condition
|
||||||
|
thread_waiter: Setting non-cancelable
|
||||||
|
start_thread: Yielding
|
||||||
|
cancel_test: Canceling thread
|
||||||
|
sem_test: Initializing semaphore to 0
|
||||||
|
sem_test: Starting waiter thread 1
|
||||||
|
sem_test: Set thread 1 priority to 191
|
||||||
|
waiter_func: Thread 1 Started
|
||||||
|
waiter_func: Thread 1 initial semaphore value = 0
|
||||||
|
waiter_func: Thread 1 aiting on semaphore
|
||||||
|
thread_waiter: Releasing mutex
|
||||||
|
thread_waiter: Setting cancelable
|
||||||
|
sem_test: Starting waiter thread 2
|
||||||
|
sem_test: Set thread 2 priority to 128
|
||||||
|
waiter_func: Thread 2 Started
|
||||||
|
waiter_func: Thread 2 initial semaphore value = 4294967295
|
||||||
|
waiter_func: Thread 2 aiting on semaphore
|
||||||
|
sem_test: Starting poster thread 3
|
||||||
|
sem_test: Set thread 3 priority to 64
|
||||||
|
poster_func: Thread 3 started
|
||||||
|
poster_func: Thread 3 semaphore value = 4294967294
|
||||||
|
poster_func: Thread 3 posting semaphore
|
||||||
|
waiter_func: Thread 1 awakened
|
||||||
|
waiter_func: Thread 1 new semaphore value = 4294967295
|
||||||
|
waiter_func: Thread 1 done
|
||||||
|
poster_func: Thread 3 new semaphore value = 4294967295
|
||||||
|
poster_func: Thread 3 semaphore value = 4294967295
|
||||||
|
poster_func: Thread 3 posting semaphore
|
||||||
|
waiter_func: Thread 2 awakened
|
||||||
|
waiter_func: Thread 2 new semaphore value = 0
|
||||||
|
waiter_func: Thread 2 done
|
||||||
|
poster_func: Thread 3 new semaphore value = 0
|
||||||
|
poster_func: Thread 3 done
|
||||||
|
cond_test: Initializing mutex
|
||||||
|
cond_test: Initializing cond
|
||||||
|
cond_test: Starting waiter
|
||||||
|
cond_test: Set thread 1 priority to 128
|
||||||
|
waiter_thread: Started
|
||||||
|
cond_test: Starting signaler
|
||||||
|
cond_test: Set thread 2 priority to 64
|
||||||
|
thread_signaler: Started
|
||||||
|
thread_signaler: Terminating
|
||||||
|
cond_test: signaler terminated, now cancel the waiter
|
||||||
|
cond_test: Waiter Signaler
|
||||||
|
cond_test: Loops 32 32
|
||||||
|
cond_test: Errors 0 0
|
||||||
|
cond_test:
|
||||||
|
0 times, waiter did not have to wait for data
|
||||||
|
cond_test: 0 times, data was already available when the signaler run
|
||||||
|
cond_test: 0 times, the waiter was in an unexpected state when the signaler ran
|
||||||
|
thread_waiter: Initializing mutex
|
||||||
|
timedwait_test: Initializing cond
|
||||||
|
timedwait_test: Starting waiter
|
||||||
|
timedwait_test: Set thread 2 priority to 177
|
||||||
|
thread_waiter: Taking mutex
|
||||||
|
thread_waiter: Starting 5 second wait for condition
|
||||||
|
timedwait_test: Joining
|
||||||
|
thread_waiter: pthread_cond_timedwait timed out
|
||||||
|
thread_waiter: Releasing mutex
|
||||||
|
thread_waiter: Exit with status 0x12345678
|
||||||
|
timedwait_test: waiter exited with result=12345678
|
||||||
|
mqueue_test: Starting receiver
|
||||||
|
mqueue_test: Set receiver priority to 128
|
||||||
|
receiver_thread: Starting
|
||||||
|
mqueue_test: Starting sender
|
||||||
|
mqueue_test: Set sender thread priority to 64
|
||||||
|
sender_thread: Starting
|
||||||
|
receiver_thread: mq_receive succeeded on msg 0
|
||||||
|
sender_thread: mq_send succeeded on msg 0
|
||||||
|
receiver_thread: mq_receive succeeded on msg 1
|
||||||
|
sender_thread: mq_send succeeded on msg 1
|
||||||
|
receiver_thread: mq_receive succeeded on msg 2
|
||||||
|
sender_thread: mq_send succeeded on msg 2
|
||||||
|
receiver_thread: mq_receive succeeded on msg 3
|
||||||
|
sender_thread: mq_send succeeded on msg 3
|
||||||
|
receiver_thread: mq_receive succeeded on msg 4
|
||||||
|
sender_thread: mq_send succeeded on msg 4
|
||||||
|
receiver_thread: mq_receive succeeded on msg 5
|
||||||
|
sender_thread: mq_send succeeded on msg 5
|
||||||
|
receiver_thread: mq_receive succeeded on msg 6
|
||||||
|
sender_thread: mq_send succeeded on msg 6
|
||||||
|
receiver_thread: mq_receive suscceeded on msg 7
|
||||||
|
ender_thread: mq_send succeeded on msg 7
|
||||||
|
receiver_thread: mq_receive succeeded on msg 8
|
||||||
|
sender_thread: mq_send succeeded on msg 8
|
||||||
|
receiver_thread: mq_receive succeeded on msg 9
|
||||||
|
sender_thread: mq_send succeeded on msg 9
|
||||||
|
sender_thread: returning nerrors=0
|
||||||
|
waiter_main: Initializing semaphore to 0
|
||||||
|
sighand_test: Starting waiter task
|
||||||
|
sighand_test: Started waiter_main pid=16
|
||||||
|
wakeup_action: Waiter started
|
||||||
|
waiter_main: Unmasking signal 17
|
||||||
|
waiter_main: Registering signal handler
|
||||||
|
waiter_main: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0
|
||||||
|
waiter_main: Waiting on semaphore
|
||||||
|
sighand_test: Signaling pid=16 with signo=17 sigvalue=42
|
||||||
|
wakeup_action: Received signal 17
|
||||||
|
wakeup_action: sival_int=42
|
||||||
|
wakeup_action: si_code=0
|
||||||
|
wakeup_action: ucontext=0
|
||||||
|
waiter_main: sem_wait() successfully interrupted by signal
|
||||||
|
waiter_main: done
|
||||||
|
sighand_test: done
|
||||||
|
user_main: Exitting
|
||||||
@@ -0,0 +1,107 @@
|
|||||||
|
/************************************************************
|
||||||
|
* ld.script
|
||||||
|
*
|
||||||
|
* Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||||
|
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
************************************************************/
|
||||||
|
|
||||||
|
OUTPUT_ARCH(arm)
|
||||||
|
ENTRY(_stext)
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
/* Interrupt vector trampoline and command line parameters
|
||||||
|
* are provided in IRAM by the rrload bootloader. Vectors will be
|
||||||
|
* copied into _svectors from _vflashstart.
|
||||||
|
*/
|
||||||
|
|
||||||
|
. = 0xffc00000;
|
||||||
|
_svectors = ABSOLUTE(.);
|
||||||
|
|
||||||
|
/* These are locations in IRAM where the rrload bootloader passes
|
||||||
|
* information to the running program
|
||||||
|
*/
|
||||||
|
|
||||||
|
. = 0xffc00020;
|
||||||
|
__KernCommandLineMagicStr = .; /* magic pattern string == "kcmdline-->" */
|
||||||
|
. = 0xffc0002C; /* advance to .+strlen("kcmdline-->")+1 */
|
||||||
|
__KernCommandLineOverride = .; /* location of kernel command line string */
|
||||||
|
|
||||||
|
. = 0xffc00100;
|
||||||
|
__EtherMACMagicStr = .; /* magic pattern string == "etherMAC-->" */
|
||||||
|
. = 0xffc0010C; /* advance to .+strlen("etherMAC-->")+1 */
|
||||||
|
__EtherMAC = .;
|
||||||
|
|
||||||
|
|
||||||
|
/* The OS entry point is here */
|
||||||
|
|
||||||
|
. = 0x10300000;
|
||||||
|
.text : {
|
||||||
|
_stext = ABSOLUTE(.);
|
||||||
|
*(.text)
|
||||||
|
*(.fixup)
|
||||||
|
*(.gnu.warning)
|
||||||
|
*(.rodata)
|
||||||
|
*(.glue_7)
|
||||||
|
*(.glue_7t)
|
||||||
|
*(.got) /* Global offset table */
|
||||||
|
_etext = ABSOLUTE(.);
|
||||||
|
}
|
||||||
|
|
||||||
|
_eronly = ABSOLUTE(.); /* See below */
|
||||||
|
. = ALIGN(4096);
|
||||||
|
|
||||||
|
.data : {
|
||||||
|
_sdata = ABSOLUTE(.);
|
||||||
|
*(.data)
|
||||||
|
CONSTRUCTORS
|
||||||
|
_edata = ABSOLUTE(.);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bss : { /* BSS */
|
||||||
|
_sbss = ABSOLUTE(.);
|
||||||
|
*(.bss)
|
||||||
|
*(COMMON)
|
||||||
|
_ebss = ABSOLUTE(.);
|
||||||
|
}
|
||||||
|
/* Stabs debugging sections. */
|
||||||
|
.stab 0 : { *(.stab) }
|
||||||
|
.stabstr 0 : { *(.stabstr) }
|
||||||
|
.stab.excl 0 : { *(.stab.excl) }
|
||||||
|
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||||
|
.stab.index 0 : { *(.stab.index) }
|
||||||
|
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_info 0 : { *(.debug_info) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
}
|
||||||
Executable
+46
@@ -0,0 +1,46 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# setenv.sh
|
||||||
|
#
|
||||||
|
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ "$(basename $0)" = "setenv" ] ; 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`
|
||||||
|
export BUILDROOT_BIN=${WD}/../buildroot/build_arm_nofpu/staging_dir/bin
|
||||||
|
export PATH=${BUILDROOT_BIN}:/sbin:/usr/sbin:${PATH_ORIG}
|
||||||
|
|
||||||
|
echo "PATH : ${PATH}"
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
############################################################
|
||||||
|
# Make.defs
|
||||||
|
#
|
||||||
|
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
include ${TOPDIR}/.config
|
||||||
|
|
||||||
|
ifeq ("${CONFIG_DEBUG}","y")
|
||||||
|
ARCHOPTIMIZATION = -g
|
||||||
|
else
|
||||||
|
ARCHOPTIMIZATION = -Os -fno-strict-aliasing -fno-strength-reduce \
|
||||||
|
-fomit-frame-pointer
|
||||||
|
endif
|
||||||
|
|
||||||
|
ARCHCPUFLAGS = -m68332 -mcpu32
|
||||||
|
ARCHPICFLAGS = -pic
|
||||||
|
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
|
||||||
|
ARCHDEFINES =
|
||||||
|
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
||||||
|
ARCHSCRIPT = -T$(TOPDIR)/configs/m68332evb/ld.script
|
||||||
|
|
||||||
|
CROSSDEV = m68k-elf-
|
||||||
|
CC = $(CROSSDEV)gcc
|
||||||
|
LD = $(CROSSDEV)ld
|
||||||
|
AR = $(CROSSDEV)ar rcs
|
||||||
|
NM = $(CROSSDEV)nm
|
||||||
|
OBJCOPY = $(CROSSDEV)objcopy
|
||||||
|
OBJDUMP = $(CROSSDEV)objdump
|
||||||
|
|
||||||
|
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
|
||||||
|
$(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) -pipe
|
||||||
|
|
||||||
|
OBJEXT = .o
|
||||||
|
LIBEXT = .a
|
||||||
|
EXEEXT =
|
||||||
|
|
||||||
|
ifeq ("${CONFIG_DEBUG}","y")
|
||||||
|
LDFLAGS += -g
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,244 @@
|
|||||||
|
############################################################
|
||||||
|
# defconfig
|
||||||
|
#
|
||||||
|
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
############################################################
|
||||||
|
#
|
||||||
|
# architecture selection
|
||||||
|
#
|
||||||
|
# CONFIG_ARCH - identifies the arch subdirectory
|
||||||
|
# CONFIG_ARCH_name - for use in C code
|
||||||
|
# CONFIG_DRAM_SIZE - Describes the installed DRAM.
|
||||||
|
# CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
|
||||||
|
#
|
||||||
|
CONFIG_ARCH=m68332evb
|
||||||
|
CONFIG_ARCH_M68332=y
|
||||||
|
CONFIG_ARCH_M68332EVB=y
|
||||||
|
CONFIG_DRAM_SIZE=0x003000
|
||||||
|
CONFIG_DRAM_NUTTXENTRY=0x003000
|
||||||
|
CONFIG_ARCH_STACKDUMP=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# DM320 specific device driver settings
|
||||||
|
#
|
||||||
|
# CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the
|
||||||
|
# console and ttys0 (default is the UART0).
|
||||||
|
# CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received.
|
||||||
|
# This specific the size of the receive buffer
|
||||||
|
# CONFIG_UARTn_TXBUFSIZE - Characters are buffered before
|
||||||
|
# being sent. This specific the size of the transmit buffer
|
||||||
|
# CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be
|
||||||
|
# CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8.
|
||||||
|
# CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
|
||||||
|
# CONFIG_UARTn_2STOP - Two stop bits
|
||||||
|
#
|
||||||
|
CONFIG_UART0_SERIAL_CONSOLE=y
|
||||||
|
CONFIG_UART1_SERIAL_CONSOLE=n
|
||||||
|
CONFIG_UART0_TXBUFSIZE=256
|
||||||
|
CONFIG_UART1_TXBUFSIZE=256
|
||||||
|
CONFIG_UART0_RXBUFSIZE=256
|
||||||
|
CONFIG_UART1_RXBUFSIZE=256
|
||||||
|
CONFIG_UART0_BAUD=115200
|
||||||
|
CONFIG_UART1_BAUD=115200
|
||||||
|
CONFIG_UART0_BITS=8
|
||||||
|
CONFIG_UART1_BITS=8
|
||||||
|
CONFIG_UART0_PARITY=0
|
||||||
|
CONFIG_UART1_PARITY=0
|
||||||
|
CONFIG_UART0_2STOP=0
|
||||||
|
CONFIG_UART1_2STOP=0
|
||||||
|
|
||||||
|
#
|
||||||
|
# General OS setup
|
||||||
|
#
|
||||||
|
# CONFIG_EXAMPLE - identifies the subdirectory in examples
|
||||||
|
# that will be used in the build
|
||||||
|
# CONFIG_DEBUG - enables built-in debug options
|
||||||
|
# CONFIG_DEBUG_VERBOSE - enables verbose debug output
|
||||||
|
# CONFIG_MM_REGIONS - If the architecture includes multiple
|
||||||
|
# regions of memory to allocate from, this specifies the
|
||||||
|
# number of memory regions that the memory manager must
|
||||||
|
# handle and enables the API mm_addregion(start, end);
|
||||||
|
# CONFIG_HAVE_LOWPUTC - architecture supports low-level, boot
|
||||||
|
# time console output
|
||||||
|
# CONFIG_RR_INTERVAL - The round robin timeslice will be set
|
||||||
|
# this number of milliseconds; Round robin scheduling can
|
||||||
|
# be disabled by setting this value to zero.
|
||||||
|
# CONFIG_SCHED_INSTRUMENTATION - enables instrumentation in
|
||||||
|
# scheduler to monitor system performance
|
||||||
|
# CONFIG_TASK_NAME_SIZE - Spcifies that maximum size of a
|
||||||
|
# task name to save in the TCB. Useful if scheduler
|
||||||
|
# instrumentation is selected. Set to zero to disable.
|
||||||
|
# CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY -
|
||||||
|
# Used to initialize the internal time logic.
|
||||||
|
# CONFIG_JULIAN_TIME - Enables Julian time conversions
|
||||||
|
# CONFIG_DEV_CONSOLE - Set if architecture-specific logic
|
||||||
|
# provides /dev/console. Enables stdout, stderr, stdin.
|
||||||
|
#
|
||||||
|
CONFIG_EXAMPLE=ostest
|
||||||
|
CONFIG_DEBUG=n
|
||||||
|
CONFIG_DEBUG_VERBOSE=n
|
||||||
|
CONFIG_MM_REGIONS=1
|
||||||
|
CONFIG_ARCH_LOWPUTC=y
|
||||||
|
CONFIG_RR_INTERVAL=200
|
||||||
|
CONFIG_SCHED_INSTRUMENTATION=n
|
||||||
|
CONFIG_TASK_NAME_SIZE=0
|
||||||
|
CONFIG_START_YEAR=2007
|
||||||
|
CONFIG_START_MONTH=2
|
||||||
|
CONFIG_START_DAY=13
|
||||||
|
CONFIG_JULIAN_TIME=n
|
||||||
|
CONFIG_DEV_CONSOLE=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_DISABLE_CLOCK=n
|
||||||
|
CONFIG_DISABLE_POSIX_TIMERS=n
|
||||||
|
CONFIG_DISABLE_PTHREAD=n
|
||||||
|
CONFIG_DISABLE_SIGNALS=n
|
||||||
|
CONFIG_DISABLE_MQUEUE=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# Misc libc settings
|
||||||
|
#
|
||||||
|
# CONFIG_NOPRINTF_FIELDWIDTH - sprintf-related logic is a
|
||||||
|
# little smaller if we do not support fieldwidthes
|
||||||
|
#
|
||||||
|
CONFIG_NOPRINTF_FIELDWIDTH=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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_BZERO=n
|
||||||
|
CONFIG_ARCH_KMALLOC=n
|
||||||
|
CONFIG_ARCH_KZMALLOC=n
|
||||||
|
CONFIG_ARCH_KFREE=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# General build options
|
||||||
|
#
|
||||||
|
# CONFIG_RRLOAD_BINARY - make the rrload binary format used with
|
||||||
|
# BSPs from www.ridgerun.com
|
||||||
|
#
|
||||||
|
CONFIG_RRLOAD_BINARY=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# Sizes of configurable things (0 disables)
|
||||||
|
#
|
||||||
|
# CONFIG_MAX_TASKS - The maximum number of simultaneously
|
||||||
|
# active tasks. This value must be a power of two.
|
||||||
|
# CONFIG_MAX_TASK_ARGS - This controls the maximum number of
|
||||||
|
# of parameters that a task may receive (i.e., maxmum value
|
||||||
|
# of 'argc')
|
||||||
|
# CONFIG_NPTHREAD_KEYS - The number of items of thread-
|
||||||
|
# specific data that can be retained
|
||||||
|
# CONFIG_NFILE_DESCRIPTORS - The maximum number of file
|
||||||
|
# descriptors (one for each open)
|
||||||
|
# CONFIG_NFILE_STREAMS - The maximum number of streams that
|
||||||
|
# can be fopen'ed
|
||||||
|
# CONFIG_NAME_MAX - The maximum size of a file name.
|
||||||
|
# CONFIG_STDIO_BUFFER_SIZE - Size of the buffer to allocate
|
||||||
|
# on fopen. (Only if CONFIG_NFILE_STREAMS > 0)
|
||||||
|
# CONFIG_NUNGET_CHARS - Number of characters that can be
|
||||||
|
# buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0)
|
||||||
|
# CONFIG_PREALLOC_MQ_MSGS - The number of pre-allocated message
|
||||||
|
# structures. The system manages a pool of preallocated
|
||||||
|
# message structures to minimize dynamic allocations
|
||||||
|
# CONFIG_MQ_MAXMSGSIZE - Message structures are allocated with
|
||||||
|
# a fixed payload size given by this settin (does not include
|
||||||
|
# other message structure overhead.
|
||||||
|
# CONFIG_MAX_WDOGPARMS - Maximum number of parameters that
|
||||||
|
# can be passed to a watchdog handler
|
||||||
|
# CONFIG_PREALLOC_WDOGS - The number of pre-allocated watchdog
|
||||||
|
# structures. The system manages a pool of preallocated
|
||||||
|
# watchdog structures to minimize dynamic allocations
|
||||||
|
# CONFIG_PREALLOC_TIMERS - The number of pre-allocated POSIX
|
||||||
|
# timer structures. The system manages a pool of preallocated
|
||||||
|
# timer structures to minimize dynamic allocations. Set to
|
||||||
|
# zero for all dynamic allocations.
|
||||||
|
#
|
||||||
|
CONFIG_MAX_TASKS=64
|
||||||
|
CONFIG_MAX_TASK_ARGS=4
|
||||||
|
CONFIG_NPTHREAD_KEYS=4
|
||||||
|
CONFIG_NFILE_DESCRIPTORS=32
|
||||||
|
CONFIG_NFILE_STREAMS=16
|
||||||
|
CONFIG_NAME_MAX=32
|
||||||
|
CONFIG_STDIO_BUFFER_SIZE=1024
|
||||||
|
CONFIG_NUNGET_CHARS=2
|
||||||
|
CONFIG_PREALLOC_MQ_MSGS=32
|
||||||
|
CONFIG_MQ_MAXMSGSIZE=32
|
||||||
|
CONFIG_MAX_WDOGPARMS=4
|
||||||
|
CONFIG_PREALLOC_WDOGS=32
|
||||||
|
CONFIG_PREALLOC_TIMERS=8
|
||||||
|
|
||||||
|
#
|
||||||
|
# Stack and heap information
|
||||||
|
#
|
||||||
|
# CONFIG_BOOT_FROM_FLASH - Some configurations support XIP
|
||||||
|
# operation from FLASH.
|
||||||
|
# CONFIG_CUSTOM_STACK - The up_ implementation will handle
|
||||||
|
# all stack operations outside of the nuttx model.
|
||||||
|
# CONFIG_PROC_STACK_SIZE - The size of the initial stack
|
||||||
|
# CONFIG_PTHREAD_STACK_MIN - Minimum pthread stack size
|
||||||
|
# CONFIG_PTHREAD_STACK_DEFAULT - Default pthread stack size
|
||||||
|
# CONFIG_HEAP_BASE - The beginning of the heap
|
||||||
|
# CONFIG_HEAP_SIZE - The size of the heap
|
||||||
|
#
|
||||||
|
CONFIG_BOOT_FROM_FLASH=n
|
||||||
|
CONFIG_CUSTOM_STACK=n
|
||||||
|
CONFIG_PROC_STACK_SIZE=4096
|
||||||
|
CONFIG_PTHREAD_STACK_MIN=256
|
||||||
|
CONFIG_PTHREAD_STACK_DEFAULT=4096
|
||||||
|
CONFIG_HEAP_BASE=
|
||||||
|
CONFIG_HEAP_SIZE=
|
||||||
@@ -0,0 +1,111 @@
|
|||||||
|
#
|
||||||
|
# Automatically generated make config: don't edit
|
||||||
|
#
|
||||||
|
BR2_HAVE_DOT_CONFIG=y
|
||||||
|
# BR2_alpha is not set
|
||||||
|
# BR2_arm is not set
|
||||||
|
# BR2_armeb is not set
|
||||||
|
# BR2_avr32 is not set
|
||||||
|
# BR2_cris is not set
|
||||||
|
# BR2_i386 is not set
|
||||||
|
BR2_m68k=y
|
||||||
|
# BR2_mips is not set
|
||||||
|
# BR2_mipsel is not set
|
||||||
|
# BR2_nios2 is not set
|
||||||
|
# BR2_powerpc is not set
|
||||||
|
# BR2_sh is not set
|
||||||
|
# BR2_sh64 is not set
|
||||||
|
# BR2_sparc is not set
|
||||||
|
# BR2_x86_64 is not set
|
||||||
|
BR2_ARCH="m68k"
|
||||||
|
BR2_ENDIAN="BIG"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Build options
|
||||||
|
#
|
||||||
|
BR2_WGET="wget --passive-ftp"
|
||||||
|
BR2_SVN="svn co"
|
||||||
|
BR2_ZCAT="zcat"
|
||||||
|
BR2_BZCAT="bzcat"
|
||||||
|
BR2_TAR_OPTIONS=""
|
||||||
|
BR2_DL_DIR="$(BASE_DIR)/../archives"
|
||||||
|
BR2_SOURCEFORGE_MIRROR="easynews"
|
||||||
|
BR2_STAGING_DIR="$(BUILD_DIR)/staging_dir"
|
||||||
|
BR2_NUTTX_DIR="$(TOPDIR)/../nuttx"
|
||||||
|
BR2_TOPDIR_PREFIX=""
|
||||||
|
BR2_TOPDIR_SUFFIX=""
|
||||||
|
BR2_GNU_BUILD_SUFFIX="m68k-elf"
|
||||||
|
BR2_GNU_TARGET_SUFFIX="elf"
|
||||||
|
# BR2_PREFER_IMA is not set
|
||||||
|
# BR2_DEPRECATED is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Toolchain Options
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Binutils Options
|
||||||
|
#
|
||||||
|
# BR2_BINUTILS_VERSION_2_14_90_0_8 is not set
|
||||||
|
# BR2_BINUTILS_VERSION_2_15 is not set
|
||||||
|
# BR2_BINUTILS_VERSION_2_15_94_0_2_2 is not set
|
||||||
|
# BR2_BINUTILS_VERSION_2_16_1 is not set
|
||||||
|
# BR2_BINUTILS_VERSION_2_16_90_0_3 is not set
|
||||||
|
# BR2_BINUTILS_VERSION_2_16_91_0_5 is not set
|
||||||
|
# BR2_BINUTILS_VERSION_2_16_91_0_6 is not set
|
||||||
|
# BR2_BINUTILS_VERSION_2_16_91_0_7 is not set
|
||||||
|
BR2_BINUTILS_VERSION_2_17=y
|
||||||
|
# BR2_BINUTILS_VERSION_2_17_50_0_2 is not set
|
||||||
|
# BR2_BINUTILS_VERSION_2_17_50_0_3 is not set
|
||||||
|
# BR2_BINUTILS_VERSION_2_17_50_0_4 is not set
|
||||||
|
# BR2_BINUTILS_VERSION_2_17_50_0_5 is not set
|
||||||
|
# BR2_BINUTILS_VERSION_2_17_50_0_6 is not set
|
||||||
|
# BR2_BINUTILS_VERSION_2_17_50_0_7 is not set
|
||||||
|
# BR2_BINUTILS_VERSION_2_17_50_0_8 is not set
|
||||||
|
# BR2_BINUTILS_VERSION_2_17_50_0_9 is not set
|
||||||
|
# BR2_BINUTILS_VERSION_2_17_50_0_10 is not set
|
||||||
|
BR2_BINUTILS_VERSION="2.17"
|
||||||
|
BR2_EXTRA_BINUTILS_CONFIG_OPTIONS=""
|
||||||
|
|
||||||
|
#
|
||||||
|
# Gcc Options
|
||||||
|
#
|
||||||
|
# BR2_GCC_VERSION_3_3_5 is not set
|
||||||
|
# BR2_GCC_VERSION_3_3_6 is not set
|
||||||
|
# BR2_GCC_VERSION_3_4_2 is not set
|
||||||
|
# BR2_GCC_VERSION_3_4_3 is not set
|
||||||
|
# BR2_GCC_VERSION_3_4_4 is not set
|
||||||
|
# BR2_GCC_VERSION_3_4_5 is not set
|
||||||
|
BR2_GCC_VERSION_3_4_6=y
|
||||||
|
# BR2_GCC_VERSION_4_0_0 is not set
|
||||||
|
# BR2_GCC_VERSION_4_0_1 is not set
|
||||||
|
# BR2_GCC_VERSION_4_0_2 is not set
|
||||||
|
# BR2_GCC_VERSION_4_0_3 is not set
|
||||||
|
# BR2_GCC_VERSION_4_0_4 is not set
|
||||||
|
# BR2_GCC_VERSION_4_1_0 is not set
|
||||||
|
# BR2_GCC_VERSION_4_1_1 is not set
|
||||||
|
# BR2_GCC_VERSION_4_1_2 is not set
|
||||||
|
# BR2_GCC_VERSION_4_2 is not set
|
||||||
|
# BR2_GCC_IS_SNAP is not set
|
||||||
|
BR2_GCC_VERSION="3.4.6"
|
||||||
|
# BR2_GCC_USE_SJLJ_EXCEPTIONS is not set
|
||||||
|
BR2_EXTRA_GCC_CONFIG_OPTIONS=""
|
||||||
|
# BR2_INSTALL_LIBSTDCPP is not set
|
||||||
|
# BR2_INSTALL_OBJC is not set
|
||||||
|
# BR2_INSTALL_FORTRAN is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Gdb Options
|
||||||
|
#
|
||||||
|
# BR2_PACKAGE_GDB is not set
|
||||||
|
# BR2_PACKAGE_GDB_SERVER is not set
|
||||||
|
# BR2_PACKAGE_GDB_HOST is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Common Toolchain Options
|
||||||
|
#
|
||||||
|
# BR2_PACKAGE_SSTRIP_TARGET is not set
|
||||||
|
# BR2_PACKAGE_SSTRIP_HOST is not set
|
||||||
|
# BR2_ENABLE_MULTILIB is not set
|
||||||
|
BR2_LARGEFILE=y
|
||||||
|
BR2_TARGET_OPTIMIZATION="-Os -pipe"
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
/************************************************************
|
||||||
|
* ld.script
|
||||||
|
*
|
||||||
|
* Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||||
|
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
************************************************************/
|
||||||
|
|
||||||
|
OUTPUT_ARCH(arm)
|
||||||
|
ENTRY(_stext)
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
/* The OS entry point is here */
|
||||||
|
|
||||||
|
. = 0x003000;
|
||||||
|
.text : {
|
||||||
|
_stext = ABSOLUTE(.);
|
||||||
|
*(.text)
|
||||||
|
*(.fixup)
|
||||||
|
*(.gnu.warning)
|
||||||
|
*(.rodata)
|
||||||
|
*(.glue_7)
|
||||||
|
*(.glue_7t)
|
||||||
|
*(.got) /* Global offset table */
|
||||||
|
_etext = ABSOLUTE(.);
|
||||||
|
}
|
||||||
|
|
||||||
|
_eronly = ABSOLUTE(.); /* See below */
|
||||||
|
. = ALIGN(4096);
|
||||||
|
|
||||||
|
.data : {
|
||||||
|
_sdata = ABSOLUTE(.);
|
||||||
|
*(.data)
|
||||||
|
CONSTRUCTORS
|
||||||
|
_edata = ABSOLUTE(.);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bss : { /* BSS */
|
||||||
|
_sbss = ABSOLUTE(.);
|
||||||
|
*(.bss)
|
||||||
|
*(COMMON)
|
||||||
|
_ebss = ABSOLUTE(.);
|
||||||
|
}
|
||||||
|
/* Stabs debugging sections. */
|
||||||
|
.stab 0 : { *(.stab) }
|
||||||
|
.stabstr 0 : { *(.stabstr) }
|
||||||
|
.stab.excl 0 : { *(.stab.excl) }
|
||||||
|
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||||
|
.stab.index 0 : { *(.stab.index) }
|
||||||
|
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_info 0 : { *(.debug_info) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
}
|
||||||
Executable
+46
@@ -0,0 +1,46 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# setenv.sh
|
||||||
|
#
|
||||||
|
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ "$(basename $0)" = "setenv" ] ; 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`
|
||||||
|
export BUILDROOT_BIN=${WD}/../buildroot/build_m68k/staging_dir/bin
|
||||||
|
export PATH=${BUILDROOT_BIN}:/sbin:/usr/sbin:${PATH_ORIG}
|
||||||
|
|
||||||
|
echo "PATH : ${PATH}"
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
############################################################
|
||||||
|
# Make.defs
|
||||||
|
#
|
||||||
|
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
include ${TOPDIR}/.config
|
||||||
|
|
||||||
|
ifeq ("${CONFIG_DEBUG}","y")
|
||||||
|
ARCHOPTIMIZATION = -g
|
||||||
|
else
|
||||||
|
ARCHOPTIMIZATION = -Os -fno-strict-aliasing -fno-strength-reduce \
|
||||||
|
-fomit-frame-pointer
|
||||||
|
endif
|
||||||
|
|
||||||
|
ARCHCPUFLAGS = -mapcs-32 -mcpu=arm7tdmi -msoft-float -fno-builtin
|
||||||
|
ARCHPICFLAGS = -fpic
|
||||||
|
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
|
||||||
|
ARCHDEFINES =
|
||||||
|
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
||||||
|
ARCHSCRIPT = -T$(TOPDIR)/configs/ntosd-dm320/ld.script
|
||||||
|
|
||||||
|
CROSSDEV = arm-elf-
|
||||||
|
CC = $(CROSSDEV)gcc
|
||||||
|
LD = $(CROSSDEV)ld
|
||||||
|
AR = $(CROSSDEV)ar rcs
|
||||||
|
NM = $(CROSSDEV)nm
|
||||||
|
OBJCOPY = $(CROSSDEV)objcopy
|
||||||
|
OBJDUMP = $(CROSSDEV)objdump
|
||||||
|
|
||||||
|
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
|
||||||
|
$(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) -pipe
|
||||||
|
|
||||||
|
OBJEXT = .o
|
||||||
|
LIBEXT = .a
|
||||||
|
EXEEXT =
|
||||||
|
|
||||||
|
ifeq ("${CONFIG_DEBUG}","y")
|
||||||
|
LDFLAGS += -g
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,247 @@
|
|||||||
|
############################################################
|
||||||
|
# defconfig
|
||||||
|
#
|
||||||
|
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
############################################################
|
||||||
|
#
|
||||||
|
# architecture selection
|
||||||
|
#
|
||||||
|
# CONFIG_ARCH - identifies the arch subdirectory
|
||||||
|
# CONFIG_ARCH_name - for use in C code
|
||||||
|
# CONFIG_ROM_VECTORS - unique to dm320
|
||||||
|
# CONFIG_DRAM_SIZE - Describes the installed DRAM.
|
||||||
|
# CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
|
||||||
|
#
|
||||||
|
CONFIG_ARCH=dm320
|
||||||
|
CONFIG_ARCH_DM320=y
|
||||||
|
CONFIG_ROM_VECTORS=n
|
||||||
|
CONFIG_DRAM_SIZE=0x01000000
|
||||||
|
CONFIG_DRAM_NUTTXENTRY=0x01008000
|
||||||
|
CONFIG_ARCH_STACKDUMP=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# DM320 specific device driver settings
|
||||||
|
#
|
||||||
|
# CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the
|
||||||
|
# console and ttys0 (default is the UART0).
|
||||||
|
# CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received.
|
||||||
|
# This specific the size of the receive buffer
|
||||||
|
# CONFIG_UARTn_TXBUFSIZE - Characters are buffered before
|
||||||
|
# being sent. This specific the size of the transmit buffer
|
||||||
|
# CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be
|
||||||
|
# CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8.
|
||||||
|
# CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
|
||||||
|
# CONFIG_UARTn_2STOP - Two stop bits
|
||||||
|
#
|
||||||
|
CONFIG_UART0_SERIAL_CONSOLE=y
|
||||||
|
CONFIG_UART1_SERIAL_CONSOLE=n
|
||||||
|
CONFIG_UART0_TXBUFSIZE=256
|
||||||
|
CONFIG_UART1_TXBUFSIZE=256
|
||||||
|
CONFIG_UART0_RXBUFSIZE=256
|
||||||
|
CONFIG_UART1_RXBUFSIZE=256
|
||||||
|
CONFIG_UART0_BAUD=115200
|
||||||
|
CONFIG_UART1_BAUD=115200
|
||||||
|
CONFIG_UART0_BITS=8
|
||||||
|
CONFIG_UART1_BITS=8
|
||||||
|
CONFIG_UART0_PARITY=0
|
||||||
|
CONFIG_UART1_PARITY=0
|
||||||
|
CONFIG_UART0_2STOP=0
|
||||||
|
CONFIG_UART1_2STOP=0
|
||||||
|
|
||||||
|
#
|
||||||
|
# General OS setup
|
||||||
|
#
|
||||||
|
# CONFIG_EXAMPLE - identifies the subdirectory in examples
|
||||||
|
# that will be used in the build
|
||||||
|
# CONFIG_DEBUG - enables built-in debug options
|
||||||
|
# CONFIG_DEBUG_VERBOSE - enables verbose debug output
|
||||||
|
# CONFIG_MM_REGIONS - If the architecture includes multiple
|
||||||
|
# regions of memory to allocate from, this specifies the
|
||||||
|
# number of memory regions that the memory manager must
|
||||||
|
# handle and enables the API mm_addregion(start, end);
|
||||||
|
# CONFIG_HAVE_LOWPUTC - architecture supports low-level, boot
|
||||||
|
# time console output
|
||||||
|
# CONFIG_RR_INTERVAL - The round robin timeslice will be set
|
||||||
|
# this number of milliseconds; Round robin scheduling can
|
||||||
|
# be disabled by setting this value to zero.
|
||||||
|
# CONFIG_SCHED_INSTRUMENTATION - enables instrumentation in
|
||||||
|
# scheduler to monitor system performance
|
||||||
|
# CONFIG_TASK_NAME_SIZE - Spcifies that maximum size of a
|
||||||
|
# task name to save in the TCB. Useful if scheduler
|
||||||
|
# instrumentation is selected. Set to zero to disable.
|
||||||
|
# CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY -
|
||||||
|
# Used to initialize the internal time logic.
|
||||||
|
# CONFIG_JULIAN_TIME - Enables Julian time conversions
|
||||||
|
# CONFIG_DEV_CONSOLE - Set if architecture-specific logic
|
||||||
|
# provides /dev/console. Enables stdout, stderr, stdin.
|
||||||
|
#
|
||||||
|
CONFIG_EXAMPLE=ostest
|
||||||
|
CONFIG_DEBUG=n
|
||||||
|
CONFIG_DEBUG_VERBOSE=n
|
||||||
|
CONFIG_MM_REGIONS=1
|
||||||
|
CONFIG_ARCH_LOWPUTC=y
|
||||||
|
CONFIG_RR_INTERVAL=200
|
||||||
|
CONFIG_SCHED_INSTRUMENTATION=n
|
||||||
|
CONFIG_TASK_NAME_SIZE=0
|
||||||
|
CONFIG_START_YEAR=2007
|
||||||
|
CONFIG_START_MONTH=2
|
||||||
|
CONFIG_START_DAY=13
|
||||||
|
CONFIG_JULIAN_TIME=n
|
||||||
|
CONFIG_DEV_CONSOLE=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_DISABLE_CLOCK=n
|
||||||
|
CONFIG_DISABLE_POSIX_TIMERS=n
|
||||||
|
CONFIG_DISABLE_PTHREAD=n
|
||||||
|
CONFIG_DISABLE_SIGNALS=n
|
||||||
|
CONFIG_DISABLE_MQUEUE=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# Misc libc settings
|
||||||
|
#
|
||||||
|
# CONFIG_NOPRINTF_FIELDWIDTH - sprintf-related logic is a
|
||||||
|
# little smaller if we do not support fieldwidthes
|
||||||
|
#
|
||||||
|
CONFIG_NOPRINTF_FIELDWIDTH=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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_BZERO=n
|
||||||
|
CONFIG_ARCH_KMALLOC=n
|
||||||
|
CONFIG_ARCH_KZMALLOC=n
|
||||||
|
CONFIG_ARCH_KFREE=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# General build options
|
||||||
|
#
|
||||||
|
# CONFIG_RRLOAD_BINARY - make the rrload binary format used with
|
||||||
|
# BSPs from www.ridgerun.com
|
||||||
|
#
|
||||||
|
CONFIG_RRLOAD_BINARY=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# Sizes of configurable things (0 disables)
|
||||||
|
#
|
||||||
|
# CONFIG_MAX_TASKS - The maximum number of simultaneously
|
||||||
|
# active tasks. This value must be a power of two.
|
||||||
|
# CONFIG_MAX_TASK_ARGS - This controls the maximum number of
|
||||||
|
# of parameters that a task may receive (i.e., maxmum value
|
||||||
|
# of 'argc')
|
||||||
|
# CONFIG_NPTHREAD_KEYS - The number of items of thread-
|
||||||
|
# specific data that can be retained
|
||||||
|
# CONFIG_NFILE_DESCRIPTORS - The maximum number of file
|
||||||
|
# descriptors (one for each open)
|
||||||
|
# CONFIG_NFILE_STREAMS - The maximum number of streams that
|
||||||
|
# can be fopen'ed
|
||||||
|
# CONFIG_NAME_MAX - The maximum size of a file name.
|
||||||
|
# CONFIG_STDIO_BUFFER_SIZE - Size of the buffer to allocate
|
||||||
|
# on fopen. (Only if CONFIG_NFILE_STREAMS > 0)
|
||||||
|
# CONFIG_NUNGET_CHARS - Number of characters that can be
|
||||||
|
# buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0)
|
||||||
|
# CONFIG_PREALLOC_MQ_MSGS - The number of pre-allocated message
|
||||||
|
# structures. The system manages a pool of preallocated
|
||||||
|
# message structures to minimize dynamic allocations
|
||||||
|
# CONFIG_MQ_MAXMSGSIZE - Message structures are allocated with
|
||||||
|
# a fixed payload size given by this settin (does not include
|
||||||
|
# other message structure overhead.
|
||||||
|
# CONFIG_MAX_WDOGPARMS - Maximum number of parameters that
|
||||||
|
# can be passed to a watchdog handler
|
||||||
|
# CONFIG_PREALLOC_WDOGS - The number of pre-allocated watchdog
|
||||||
|
# structures. The system manages a pool of preallocated
|
||||||
|
# watchdog structures to minimize dynamic allocations
|
||||||
|
# CONFIG_PREALLOC_TIMERS - The number of pre-allocated POSIX
|
||||||
|
# timer structures. The system manages a pool of preallocated
|
||||||
|
# timer structures to minimize dynamic allocations. Set to
|
||||||
|
# zero for all dynamic allocations.
|
||||||
|
#
|
||||||
|
CONFIG_MAX_TASKS=64
|
||||||
|
CONFIG_MAX_TASK_ARGS=4
|
||||||
|
CONFIG_NPTHREAD_KEYS=4
|
||||||
|
CONFIG_NFILE_DESCRIPTORS=32
|
||||||
|
CONFIG_NFILE_STREAMS=16
|
||||||
|
CONFIG_NAME_MAX=32
|
||||||
|
CONFIG_STDIO_BUFFER_SIZE=1024
|
||||||
|
CONFIG_NUNGET_CHARS=2
|
||||||
|
CONFIG_PREALLOC_MQ_MSGS=32
|
||||||
|
CONFIG_MQ_MAXMSGSIZE=32
|
||||||
|
CONFIG_MAX_WDOGPARMS=4
|
||||||
|
CONFIG_PREALLOC_WDOGS=32
|
||||||
|
CONFIG_PREALLOC_TIMERS=8
|
||||||
|
|
||||||
|
#
|
||||||
|
# Stack and heap information
|
||||||
|
#
|
||||||
|
# CONFIG_BOOT_FROM_FLASH - Some configurations support XIP
|
||||||
|
# operation from FLASH.
|
||||||
|
# CONFIG_CUSTOM_STACK - The up_ implementation will handle
|
||||||
|
# all stack operations outside of the nuttx model.
|
||||||
|
# CONFIG_STACK_POINTER - The initial stack pointer (arm7tdmi only)
|
||||||
|
# CONFIG_PROC_STACK_SIZE - The size of the initial stack
|
||||||
|
# CONFIG_PTHREAD_STACK_MIN - Minimum pthread stack size
|
||||||
|
# CONFIG_PTHREAD_STACK_DEFAULT - Default pthread stack size
|
||||||
|
# CONFIG_HEAP_BASE - The beginning of the heap
|
||||||
|
# CONFIG_HEAP_SIZE - The size of the heap
|
||||||
|
#
|
||||||
|
CONFIG_BOOT_FROM_FLASH=n
|
||||||
|
CONFIG_CUSTOM_STACK=n
|
||||||
|
CONFIG_STACK_POINTER=
|
||||||
|
CONFIG_PROC_STACK_SIZE=4096
|
||||||
|
CONFIG_PTHREAD_STACK_MIN=256
|
||||||
|
CONFIG_PTHREAD_STACK_DEFAULT=4096
|
||||||
|
CONFIG_HEAP_BASE=
|
||||||
|
CONFIG_HEAP_SIZE=
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
/************************************************************
|
||||||
|
* ld.script
|
||||||
|
*
|
||||||
|
* Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||||
|
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
************************************************************/
|
||||||
|
|
||||||
|
OUTPUT_ARCH(arm)
|
||||||
|
ENTRY(_stext)
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
/* The OS entry point is here */
|
||||||
|
|
||||||
|
. = 0x00008000;
|
||||||
|
.text : {
|
||||||
|
_stext = ABSOLUTE(.);
|
||||||
|
*(.text)
|
||||||
|
*(.fixup)
|
||||||
|
*(.gnu.warning)
|
||||||
|
*(.rodata)
|
||||||
|
*(.glue_7)
|
||||||
|
*(.glue_7t)
|
||||||
|
*(.got) /* Global offset table */
|
||||||
|
_etext = ABSOLUTE(.);
|
||||||
|
}
|
||||||
|
|
||||||
|
_eronly = ABSOLUTE(.); /* See below */
|
||||||
|
. = ALIGN(4096);
|
||||||
|
|
||||||
|
.data : {
|
||||||
|
_sdata = ABSOLUTE(.);
|
||||||
|
*(.data)
|
||||||
|
CONSTRUCTORS
|
||||||
|
_edata = ABSOLUTE(.);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bss : { /* BSS */
|
||||||
|
_sbss = ABSOLUTE(.);
|
||||||
|
*(.bss)
|
||||||
|
*(COMMON)
|
||||||
|
_ebss = ABSOLUTE(.);
|
||||||
|
}
|
||||||
|
/* Stabs debugging sections. */
|
||||||
|
.stab 0 : { *(.stab) }
|
||||||
|
.stabstr 0 : { *(.stabstr) }
|
||||||
|
.stab.excl 0 : { *(.stab.excl) }
|
||||||
|
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||||
|
.stab.index 0 : { *(.stab.index) }
|
||||||
|
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_info 0 : { *(.debug_info) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
}
|
||||||
Executable
+46
@@ -0,0 +1,46 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# setenv.sh
|
||||||
|
#
|
||||||
|
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ "$(basename $0)" = "setenv" ] ; 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`
|
||||||
|
export BUILDROOT_BIN=${WD}/../buildroot/build_arm_nofpu/staging_dir/bin
|
||||||
|
export PATH=${BUILDROOT_BIN}:/sbin:/usr/sbin:${PATH_ORIG}
|
||||||
|
|
||||||
|
echo "PATH : ${PATH}"
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
############################################################
|
||||||
|
# Make.defs
|
||||||
|
#
|
||||||
|
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
include ${TOPDIR}/.config
|
||||||
|
|
||||||
|
ifeq ("${CONFIG_DEBUG}","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
|
||||||
|
|
||||||
|
CROSSDEV =
|
||||||
|
CC = sdcc
|
||||||
|
CPP = sdcpp
|
||||||
|
LD = aslink
|
||||||
|
AS = asx8051
|
||||||
|
AR = sdcclib -a
|
||||||
|
|
||||||
|
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
|
||||||
|
$(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES)
|
||||||
|
|
||||||
|
ASMEXT = .asm
|
||||||
|
OBJEXT = .rel
|
||||||
|
LIBEXT = .lib
|
||||||
|
EXEEXT = .hex
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
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
|
||||||
|
|
||||||
@@ -0,0 +1,244 @@
|
|||||||
|
############################################################
|
||||||
|
# defconfig
|
||||||
|
#
|
||||||
|
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
############################################################
|
||||||
|
#
|
||||||
|
# Architecture selection
|
||||||
|
#
|
||||||
|
# CONFIG_ARCH - identifies the arch subdirectory
|
||||||
|
# CONFIG_ARCH_8051 - Set if processor is 8051 family
|
||||||
|
# CONFIG_ARCH_8052 = Set if processor is 8052 family
|
||||||
|
#
|
||||||
|
CONFIG_ARCH=pjrc-8051
|
||||||
|
CONFIG_ARCH_8051=n
|
||||||
|
CONFIG_ARCH_8052=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Architecture-specific settings. These may mean nothing to
|
||||||
|
# other architectures.
|
||||||
|
#
|
||||||
|
# CONFIG-ARCH_PJRC - Set if using the PJRC 87C52 board
|
||||||
|
# CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to 8051.
|
||||||
|
# CONFIG_8052_TIMER2 - Use timer2 for the 100Hz system timer.
|
||||||
|
# (default is timer0 at 112.5Hz).
|
||||||
|
#
|
||||||
|
# These features are only supported when CONFIG_ARCH_BRINGUP
|
||||||
|
# is set:
|
||||||
|
#
|
||||||
|
# CONFIG_ARCH_BRINGUP - Enables some bringup features
|
||||||
|
# CONFIG_FRAME_DUMP - Enable stack/frame dumping logic
|
||||||
|
# CONFIG_FRAME_DUMP_SHORT - Terse frame dump output
|
||||||
|
# CONFIG_SUPPRESS_INTERRUPTS - Do not enable interrupts
|
||||||
|
# CONFIG_SWITCH_FRAME_DUMP - Dump frames from normal switches
|
||||||
|
# CONFIG_INTERRUPT_FRAME_DUMP - Dump frames from interrupt switches
|
||||||
|
# CONFIG_LED_DEBUG - Enable debug output from LED logic
|
||||||
|
#
|
||||||
|
CONFIG_ARCH_PJRC=y
|
||||||
|
CONFIG_ARCH_LEDS=y
|
||||||
|
CONFIG_8052_TIMER2=y
|
||||||
|
|
||||||
|
CONFIG_ARCH_BRINGUP=y
|
||||||
|
CONFIG_FRAME_DUMP=n
|
||||||
|
CONFIG_FRAME_DUMP_SHORT=n
|
||||||
|
CONFIG_SUPPRESS_INTERRUPTS=y
|
||||||
|
CONFIG_SWITCH_FRAME_DUMP=n
|
||||||
|
CONFIG_INTERRUPT_FRAME_DUMP=n
|
||||||
|
CONFIG_LED_DEBUG=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# General OS setup
|
||||||
|
#
|
||||||
|
# CONFIG_EXAMPLE - identifies the subdirectory in examples
|
||||||
|
# that will be used in the build
|
||||||
|
# CONFIG_DEBUG - enables built-in debug options
|
||||||
|
# CONFIG_DEBUG_VERBOSE - enables verbose debug output
|
||||||
|
# CONFIG_MM_REGIONS - If the architecture includes multiple
|
||||||
|
# regions of memory to allocate from, this specifies the
|
||||||
|
# number of memory regions that the memory manager must
|
||||||
|
# handle and enables the API mm_addregion(start, end);
|
||||||
|
# CONFIG_HAVE_LOWPUTC - architecture supports low-level, boot
|
||||||
|
# time console output
|
||||||
|
# CONFIG_RR_INTERVAL - The round robin timeslice will be set
|
||||||
|
# this number of milliseconds; Round robin scheduling can
|
||||||
|
# be disabled by setting this value to zero.
|
||||||
|
# CONFIG_SCHED_INSTRUMENTATION - enables instrumentation in
|
||||||
|
# scheduler to monitor system performance
|
||||||
|
# CONFIG_TASK_NAME_SIZE - Spcifies that maximum size of a
|
||||||
|
# task name to save in the TCB. Useful if scheduler
|
||||||
|
# instrumentation is selected. Set to zero to disable.
|
||||||
|
# CONFIG_JULIAN_TIME - Enables Julian time conversions
|
||||||
|
# CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY -
|
||||||
|
# Used to initialize the internal time logic.
|
||||||
|
# CONFIG_DEV_CONSOLE - Set if architecture-specific logic
|
||||||
|
# provides /dev/console. Enables stdout, stderr, stdin.
|
||||||
|
#
|
||||||
|
CONFIG_EXAMPLE=ostest
|
||||||
|
CONFIG_DEBUG=n
|
||||||
|
CONFIG_DEBUG_VERBOSE=n
|
||||||
|
CONFIG_MM_REGIONS=2
|
||||||
|
CONFIG_ARCH_LOWPUTC=y
|
||||||
|
CONFIG_RR_INTERVAL=0
|
||||||
|
CONFIG_SCHED_INSTRUMENTATION=n
|
||||||
|
CONFIG_TASK_NAME_SIZE=0
|
||||||
|
CONFIG_START_YEAR=2007
|
||||||
|
CONFIG_START_MONTH=2
|
||||||
|
CONFIG_START_DAY=21
|
||||||
|
CONFIG_JULIAN_TIME=n
|
||||||
|
CONFIG_DEV_CONSOLE=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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_DISABLE_CLOCK=y
|
||||||
|
CONFIG_DISABLE_POSIX_TIMERS=y
|
||||||
|
CONFIG_DISABLE_PTHREAD=y
|
||||||
|
CONFIG_DISABLE_SIGNALS=y
|
||||||
|
CONFIG_DISABLE_MQUEUE=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Misc libc settings
|
||||||
|
#
|
||||||
|
# CONFIG_NOPRINTF_FIELDWIDTH - sprintf-related logic is a
|
||||||
|
# little smaller if we do not support fieldwidthes
|
||||||
|
#
|
||||||
|
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_BZERO=n
|
||||||
|
CONFIG_ARCH_KMALLOC=n
|
||||||
|
CONFIG_ARCH_KZMALLOC=n
|
||||||
|
CONFIG_ARCH_KFREE=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# General build options
|
||||||
|
#
|
||||||
|
# CONFIG_RRLOAD_BINARY - make the rrload binary format used with
|
||||||
|
# BSPs from www.ridgerun.com
|
||||||
|
#
|
||||||
|
CONFIG_RRLOAD_BINARY=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# Sizes of configurable things (0 disables)
|
||||||
|
#
|
||||||
|
# CONFIG_MAX_TASKS - The maximum number of simultaneously
|
||||||
|
# actived tasks. This value must be a power of two.
|
||||||
|
# CONFIG_MAX_TASK_ARGS - This controls the maximum number of
|
||||||
|
# of parameters that a task may receive (i.e., maxmum value
|
||||||
|
# of 'argc')
|
||||||
|
# CONFIG_NPTHREAD_KEYS - The number of items of thread-
|
||||||
|
# specific data that can be retained
|
||||||
|
# CONFIG_NFILE_DESCRIPTORS - The maximum number of file
|
||||||
|
# descriptors (one for each open)
|
||||||
|
# CONFIG_NFILE_STREAMS - The maximum number of streams that
|
||||||
|
# can be fopen'ed
|
||||||
|
# CONFIG_NAME_MAX - The maximum size of a file name.
|
||||||
|
# CONFIG_STDIO_BUFFER_SIZE - Size of the buffer to allocate
|
||||||
|
# on fopen. (Only if CONFIG_NFILE_STREAMS > 0)
|
||||||
|
# CONFIG_NUNGET_CHARS - Number of characters that can be
|
||||||
|
# buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0)
|
||||||
|
# CONFIG_PREALLOC_MQ_MSGS - The number of pre-allocated message
|
||||||
|
# structures. The system manages a pool of preallocated
|
||||||
|
# message structures to minimize dynamic allocations
|
||||||
|
# CONFIG_MQ_MAXMSGSIZE - Message structures are allocated with
|
||||||
|
# a fixed payload size given by this settin (does not include
|
||||||
|
# other message structure overhead.
|
||||||
|
# CONFIG_MAX_WDOGPARMS - Maximum number of parameters that
|
||||||
|
# can be passed to a watchdog handler
|
||||||
|
# CONFIG_PREALLOC_WDOGS - The number of pre-allocated watchdog
|
||||||
|
# structures. The system manages a pool of preallocated
|
||||||
|
# watchdog structures to minimize dynamic allocations
|
||||||
|
# CONFIG_PREALLOC_TIMERS - The number of pre-allocated POSIX
|
||||||
|
# timer structures. The system manages a pool of preallocated
|
||||||
|
# timer structures to minimize dynamic allocations. Set to
|
||||||
|
# zero for all dynamic allocations.
|
||||||
|
#
|
||||||
|
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_STDIO_BUFFER_SIZE=0
|
||||||
|
CONFIG_NUNGET_CHARS=0
|
||||||
|
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_BOOT_FROM_FLASH - Some configurations support XIP
|
||||||
|
# operation from FLASH.
|
||||||
|
# CONFIG_CUSTOM_STACK - The up_ implementation will handle
|
||||||
|
# all stack operations outside of the nuttx model.
|
||||||
|
# CONFIG_STACK_POINTER - The initial stack pointer
|
||||||
|
# CONFIG_PROC_STACK_SIZE - The size of the initial stack
|
||||||
|
# CONFIG_PTHREAD_STACK_MIN - Minimum pthread stack size
|
||||||
|
# CONFIG_PTHREAD_STACK_DEFAULT - Default pthread stack size
|
||||||
|
# CONFIG_HEAP_BASE - The beginning of the heap
|
||||||
|
# CONFIG_HEAP_SIZE - The size of the heap
|
||||||
|
#
|
||||||
|
CONFIG_BOOT_FROM_FLASH=n
|
||||||
|
CONFIG_CUSTOM_STACK=y
|
||||||
|
CONFIG_PROC_STACK_SIZE=
|
||||||
|
CONFIG_PTHREAD_STACK_MIN=
|
||||||
|
CONFIG_PTHREAD_STACK_DEFAULT=
|
||||||
|
CONFIG_HEAP_BASE=
|
||||||
|
CONFIG_HEAP_SIZE=
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
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
|
||||||
|
|
||||||
Executable
+45
@@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# setenv.sh
|
||||||
|
#
|
||||||
|
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ "$(basename $0)" = "setenv" ] ; 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
|
||||||
|
|
||||||
|
export SDCC_BIN=/usr/local/bin
|
||||||
|
export PATH=${SDCC_BIN}:/sbin:/usr/sbin:${PATH_ORIG}
|
||||||
|
|
||||||
|
echo "PATH : ${PATH}"
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
############################################################
|
||||||
|
# Make.defs
|
||||||
|
#
|
||||||
|
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
include ${TOPDIR}/.config
|
||||||
|
|
||||||
|
ifeq ("${CONFIG_DEBUG}","y")
|
||||||
|
ARCHOPTIMIZATION = -g
|
||||||
|
else
|
||||||
|
ARCHOPTIMIZATION = -O2
|
||||||
|
endif
|
||||||
|
|
||||||
|
ARCHCPUFLAGS = -fno-builtin
|
||||||
|
ARCHPICFLAGS = -fpic
|
||||||
|
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
|
||||||
|
ARCHDEFINES =
|
||||||
|
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
||||||
|
ARCHSCRIPT =
|
||||||
|
|
||||||
|
CROSSDEV =
|
||||||
|
CC = $(CROSSDEV)gcc
|
||||||
|
LD = $(CROSSDEV)ld
|
||||||
|
AR = $(CROSSDEV)ar rcs
|
||||||
|
NM = $(CROSSDEV)nm
|
||||||
|
OBJCOPY = $(CROSSDEV)objcopy
|
||||||
|
OBJDUMP = $(CROSSDEV)objdump
|
||||||
|
|
||||||
|
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
|
||||||
|
$(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) -pipe
|
||||||
|
|
||||||
|
OBJEXT = .o
|
||||||
|
LIBEXT = .a
|
||||||
|
EXEEXT =
|
||||||
|
|
||||||
|
ifeq ("${CONFIG_DEBUG}","y")
|
||||||
|
LDFLAGS += -g
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,210 @@
|
|||||||
|
############################################################
|
||||||
|
# defconfig
|
||||||
|
#
|
||||||
|
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
############################################################
|
||||||
|
#
|
||||||
|
# architecture selection
|
||||||
|
#
|
||||||
|
# CONFIG_ARCH - identifies the arch subdirectory
|
||||||
|
# CONFIG_ARCH_name - for use in C code
|
||||||
|
#
|
||||||
|
CONFIG_ARCH=sim
|
||||||
|
CONFIG_ARCH_SIM=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# General OS setup
|
||||||
|
#
|
||||||
|
# CONFIG_EXAMPLE - identifies the subdirectory in examples
|
||||||
|
# that will be used in the build
|
||||||
|
# CONFIG_DEBUG - enables built-in debug options
|
||||||
|
# CONFIG_DEBUG_VERBOSE - enables verbose debug output
|
||||||
|
# CONFIG_MM_REGIONS - If the architecture includes multiple
|
||||||
|
# regions of memory to allocate from, this specifies the
|
||||||
|
# number of memory regions that the memory manager must
|
||||||
|
# handle and enables the API mm_addregion(start, end);
|
||||||
|
# CONFIG_HAVE_LOWPUTC - architecture supports low-level, boot
|
||||||
|
# time console output
|
||||||
|
# CONFIG_RR_INTERVAL - The round robin timeslice will be set
|
||||||
|
# this number of milliseconds; Round robin scheduling can
|
||||||
|
# be disabled by setting this value to zero.
|
||||||
|
# CONFIG_SCHED_INSTRUMENTATION - enables instrumentation in
|
||||||
|
# scheduler to monitor system performance
|
||||||
|
# CONFIG_TASK_NAME_SIZE - Spcifies that maximum size of a
|
||||||
|
# task name to save in the TCB. Useful if scheduler
|
||||||
|
# instrumentation is selected. Set to zero to disable.
|
||||||
|
# CONFIG_JULIAN_TIME - Enables Julian time conversions
|
||||||
|
# CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY -
|
||||||
|
# Used to initialize the internal time logic.
|
||||||
|
# CONFIG_DEV_CONSOLE - Set if architecture-specific logic
|
||||||
|
# provides /dev/console. Enables stdout, stderr, stdin.
|
||||||
|
#
|
||||||
|
CONFIG_EXAMPLE=ostest
|
||||||
|
CONFIG_DEBUG=y
|
||||||
|
CONFIG_DEBUG_VERBOSE=y
|
||||||
|
CONFIG_MM_REGIONS=1
|
||||||
|
CONFIG_ARCH_LOWPUTC=y
|
||||||
|
CONFIG_RR_INTERVAL=0
|
||||||
|
CONFIG_SCHED_INSTRUMENTATION=n
|
||||||
|
CONFIG_TASK_NAME_SIZE=32
|
||||||
|
CONFIG_START_YEAR=2007
|
||||||
|
CONFIG_START_MONTH=2
|
||||||
|
CONFIG_START_DAY=27
|
||||||
|
CONFIG_JULIAN_TIME=n
|
||||||
|
CONFIG_DEV_CONSOLE=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_DISABLE_CLOCK=n
|
||||||
|
CONFIG_DISABLE_POSIX_TIMERS=n
|
||||||
|
CONFIG_DISABLE_PTHREAD=n
|
||||||
|
CONFIG_DISABLE_SIGNALS=n
|
||||||
|
CONFIG_DISABLE_MQUEUE=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# Misc libc settings
|
||||||
|
#
|
||||||
|
# CONFIG_NOPRINTF_FIELDWIDTH - sprintf-related logic is a
|
||||||
|
# little smaller if we do not support fieldwidthes
|
||||||
|
#
|
||||||
|
CONFIG_NOPRINTF_FIELDWIDTH=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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_BZERO=n
|
||||||
|
CONFIG_ARCH_KMALLOC=n
|
||||||
|
CONFIG_ARCH_KZMALLOC=n
|
||||||
|
CONFIG_ARCH_KFREE=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# General build options
|
||||||
|
#
|
||||||
|
# CONFIG_RRLOAD_BINARY - make the rrload binary format used with
|
||||||
|
# BSPs from www.ridgerun.com
|
||||||
|
#
|
||||||
|
CONFIG_RRLOAD_BINARY=n
|
||||||
|
|
||||||
|
#
|
||||||
|
# Sizes of configurable things (0 disables)
|
||||||
|
#
|
||||||
|
# CONFIG_MAX_TASKS - The maximum number of simultaneously
|
||||||
|
# active tasks. This value must be a power of two.
|
||||||
|
# CONFIG_MAX_TASK_ARGS - This controls the maximum number of
|
||||||
|
# of parameters that a task may receive (i.e., maxmum value
|
||||||
|
# of 'argc')
|
||||||
|
# CONFIG_NPTHREAD_KEYS - The number of items of thread-
|
||||||
|
# specific data that can be retained
|
||||||
|
# CONFIG_NFILE_DESCRIPTORS - The maximum number of file
|
||||||
|
# descriptors (one for each open)
|
||||||
|
# CONFIG_NFILE_STREAMS - The maximum number of streams that
|
||||||
|
# can be fopen'ed
|
||||||
|
# CONFIG_NAME_MAX - The maximum size of a file name.
|
||||||
|
# CONFIG_STDIO_BUFFER_SIZE - Size of the buffer to allocate
|
||||||
|
# on fopen. (Only if CONFIG_NFILE_STREAMS > 0)
|
||||||
|
# CONFIG_NUNGET_CHARS - Number of characters that can be
|
||||||
|
# buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0)
|
||||||
|
# CONFIG_PREALLOC_MQ_MSGS - The number of pre-allocated message
|
||||||
|
# structures. The system manages a pool of preallocated
|
||||||
|
# message structures to minimize dynamic allocations
|
||||||
|
# CONFIG_MQ_MAXMSGSIZE - Message structures are allocated with
|
||||||
|
# a fixed payload size given by this settin (does not include
|
||||||
|
# other message structure overhead.
|
||||||
|
# CONFIG_MAX_WDOGPARMS - Maximum number of parameters that
|
||||||
|
# can be passed to a watchdog handler
|
||||||
|
# CONFIG_PREALLOC_WDOGS - The number of pre-allocated watchdog
|
||||||
|
# structures. The system manages a pool of preallocated
|
||||||
|
# watchdog structures to minimize dynamic allocations
|
||||||
|
# CONFIG_PREALLOC_TIMERS - The number of pre-allocated POSIX
|
||||||
|
# timer structures. The system manages a pool of preallocated
|
||||||
|
# timer structures to minimize dynamic allocations. Set to
|
||||||
|
# zero for all dynamic allocations.
|
||||||
|
#
|
||||||
|
CONFIG_MAX_TASKS=64
|
||||||
|
CONFIG_MAX_TASK_ARGS=4
|
||||||
|
CONFIG_NPTHREAD_KEYS=4
|
||||||
|
CONFIG_NFILE_DESCRIPTORS=32
|
||||||
|
CONFIG_NFILE_STREAMS=16
|
||||||
|
CONFIG_NAME_MAX=32
|
||||||
|
CONFIG_STDIO_BUFFER_SIZE=1024
|
||||||
|
CONFIG_NUNGET_CHARS=2
|
||||||
|
CONFIG_PREALLOC_MQ_MSGS=32
|
||||||
|
CONFIG_MQ_MAXMSGSIZE=32
|
||||||
|
CONFIG_MAX_WDOGPARMS=4
|
||||||
|
CONFIG_PREALLOC_WDOGS=32
|
||||||
|
CONFIG_PREALLOC_TIMERS=8
|
||||||
|
|
||||||
|
#
|
||||||
|
# Stack and heap information
|
||||||
|
#
|
||||||
|
# CONFIG_BOOT_FROM_FLASH - Some configurations support XIP
|
||||||
|
# operation from FLASH.
|
||||||
|
# CONFIG_CUSTOM_STACK - The up_ implementation will handle
|
||||||
|
# all stack operations outside of the nuttx model.
|
||||||
|
# CONFIG_STACK_POINTER - The initial stack pointer
|
||||||
|
# CONFIG_PROC_STACK_SIZE - The size of the initial stack
|
||||||
|
# CONFIG_PTHREAD_STACK_MIN - Minimum pthread stack size
|
||||||
|
# CONFIG_PTHREAD_STACK_DEFAULT - Default pthread stack size
|
||||||
|
# CONFIG_HEAP_BASE - The beginning of the heap
|
||||||
|
# CONFIG_HEAP_SIZE - The size of the heap
|
||||||
|
#
|
||||||
|
CONFIG_BOOT_FROM_FLASH=n
|
||||||
|
CONFIG_CUSTOM_STACK=n
|
||||||
|
CONFIG_PROC_STACK_SIZE=0x00001000
|
||||||
|
CONFIG_PTHREAD_STACK_MIN=256
|
||||||
|
CONFIG_PTHREAD_STACK_DEFAULT=8192
|
||||||
|
CONFIG_HEAP_BASE=
|
||||||
|
CONFIG_HEAP_SIZE=
|
||||||
Executable
+45
@@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# setenv.sh
|
||||||
|
#
|
||||||
|
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||||
|
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ "$(basename $0)" = "setenv" ] ; 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
|
||||||
|
|
||||||
|
#export NUTTX_BIN=
|
||||||
|
#export PATH=${NUTTX_BIN}:/sbin:/usr/sbin:${PATH_ORIG}
|
||||||
|
|
||||||
|
echo "PATH : ${PATH}"
|
||||||
Reference in New Issue
Block a user