This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
file handle problem on synthetic target
- From: Helen Snitkovsky <helens at hydrix dot com>
- To: ecos discuss group <ecos-discuss at ecos dot sourceware dot org>
- Date: 02 Jul 2004 09:32:14 +1000
- Subject: [ECOS] file handle problem on synthetic target
- Organization:
Hello gurus,
I am trying to run a simple program that opens a file, print
"Successful" if it was open, and close a file afterwards. However, file
opening is failed when the application was compiled with the synthetic
target. I really appreciate your help with that issue.
The code is:
#include <stdio.h>
#include <cyg/libc/stdio/stdiofiles.hxx> // C library files
#include <cyg/libc/stdio/stream.hxx> // C library streams
#include <cyg/libc/stdio/io.inl> // I/O system inlines
int main()
{
FILE *fp = fopen("/home/ecos/fo/mytmp", "r");
if (fp == NULL)
printf("open failed\n");
else
printf("open sucessful\n");
fclose(fp);
return 0;
}
And the target configuration is:
# eCos saved configuration
# -- commands --
# This section contains information about the savefile format.
# It should not be edited. Any modifications made to this section
# may make it impossible for the configuration tools to read
# the savefile.
cdl_savefile_version 1;
cdl_savefile_command cdl_savefile_version {};
cdl_savefile_command cdl_savefile_command {};
cdl_savefile_command cdl_configuration { description hardware template
package };
cdl_savefile_command cdl_package { value_source user_value wizard_value
inferred_value };
cdl_savefile_command cdl_component { value_source user_value
wizard_value inferred_value };
cdl_savefile_command cdl_option { value_source user_value wizard_value
inferred_value };
cdl_savefile_command cdl_interface { value_source user_value
wizard_value inferred_value };
# -- toplevel --
# This section defines the toplevel configuration object. The only
# values that can be changed are the name of the configuration and
# the description field. It is not possible to modify the target,
# the template or the set of packages simply by editing the lines
# below because these changes have wide-ranging effects. Instead
# the appropriate tools should be used to make such modifications.
cdl_configuration eCos {
description "" ;
# These fields should not be modified.
hardware linux ;
template default ;
package -hardware CYGPKG_HAL_SYNTH current ;
package -hardware CYGPKG_HAL_SYNTH_I386 current ;
package -hardware CYGPKG_DEVS_FLASH_SYNTH current ;
package -hardware CYGPKG_DEVS_ETH_ECOSYNTH current ;
package -hardware CYGPKG_DEVS_WATCHDOG_SYNTH current ;
package -hardware CYGPKG_DEVS_WALLCLOCK_SYNTH current ;
package CYGPKG_HAL current ;
package CYGPKG_IO current ;
package CYGPKG_IO_SERIAL current ;
package CYGPKG_INFRA current ;
package CYGPKG_KERNEL current ;
package CYGPKG_MEMALLOC current ;
package CYGPKG_ISOINFRA current ;
package CYGPKG_LIBC current ;
package CYGPKG_LIBC_I18N current ;
package CYGPKG_LIBC_SETJMP current ;
package CYGPKG_LIBC_STARTUP current ;
package CYGPKG_LIBC_STDIO current ;
package CYGPKG_LIBC_STDLIB current ;
package CYGPKG_LIBC_STRING current ;
package CYGPKG_LIBC_TIME current ;
package CYGPKG_LIBM current ;
package CYGPKG_POSIX current ;
package CYGPKG_UITRON current ;
package CYGPKG_IO_WATCHDOG current ;
package CYGPKG_LIBC_SIGNALS current ;
package CYGPKG_IO_WALLCLOCK current ;
package CYGPKG_ERROR current ;
package CYGPKG_IO_FILEIO current ;
package CYGPKG_FS_FAT current ;
package CYGPKG_BLOCK_LIB current ;
package CYGPKG_LINUX_COMPAT current ;
};
# -- conflicts --
# There are no conflicts.
# -- contents --
# >
# >
# Linux Synthetic target
# The Linux Synthetic Target HAL package provides the
# support needed to run eCos binaries on top of a
# Linux kernel.
#
cdl_package CYGPKG_HAL_SYNTH {
# Packages cannot be added or removed, nor can their version be
changed,
# simply by editing their value. Instead the appropriate
configuration
# should be used to perform these actions.
# This value cannot be modified here.
# Flavor: booldata
# Current value: 1 current
# Requires: !CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
# CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT == 0
# --> 1
# Requires: CYGIMP_IDLE_THREAD_YIELD implies
CYGIMP_HAL_IDLE_THREAD_SPIN
# CYGIMP_IDLE_THREAD_YIELD == 0
# CYGIMP_HAL_IDLE_THREAD_SPIN == 0
# --> 1
# The following properties are affected by this value
# package CYGPKG_DEVS_ETH_ECOSYNTH
# ActiveIf: CYGPKG_HAL_SYNTH
# package CYGPKG_DEVS_WALLCLOCK_SYNTH
# Requires: CYGPKG_HAL_SYNTH
};
# >
# Real-time clock constants.
# These values are used in the usec field of the itimerval structure
# when using getitimer/setitimer.
#
cdl_component CYGNUM_HAL_RTC_CONSTANTS {
# There is no associated value.
};
# >
# Real-time clock numerator
#
cdl_option CYGNUM_HAL_RTC_NUMERATOR {
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value 1000000000
# value_source default
# Default value: 1000000000
};
# Real-time clock denominator
#
cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value 100
# value_source default
# Default value: 100
};
# Real-time clock period
#
cdl_option CYGNUM_HAL_RTC_PERIOD {
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value 10000
# value_source default
# Default value: 10000
};
# <
# Spin when idle
# By default, whenever the eCos application enters the idle thread
# the synthetic target HAL will make a select() system call. Effectively
# this causes the application to block until an interrupt occurs,
# without consuming any cpu resources, as if the hardware supported
# some sort of IDLE instruction. Usually this behaviour is desirable.
# However it interferes with the emulation of some hardware. For
# example the synthetic watchdog timer device can use consumed cpu time
# rather than wallclock time to determine whether or not the watchdog
# has triggered, and if the process is spending nearly all its time
# blocked in select() then the watchdog will not trigger when it should.
# There are also some kernel configurations which require that the idle
# thread does not block.
#
cdl_option CYGIMP_HAL_IDLE_THREAD_SPIN {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: CYGIMP_IDLE_THREAD_YIELD
# CYGIMP_IDLE_THREAD_YIELD == 0
# --> 0
# The following properties are affected by this value
# package CYGPKG_HAL_SYNTH
# Requires: CYGIMP_IDLE_THREAD_YIELD implies
CYGIMP_HAL_IDLE_THREAD_SPIN
};
# Linker script
#
cdl_option CYGBLD_LINKER_SCRIPT {
# Calculated value: "src/synth.ld"
# Flavor: data
# Current_value: src/synth.ld
};
# Linux/i386 synthetic target
# The Linux/i386 Synthetic Target HAL package provides the
# support needed to run eCos binaries on top of the i386
# Linux kernel.
#
cdl_package CYGPKG_HAL_SYNTH_I386 {
# Packages cannot be added or removed, nor can their version be
changed,
# simply by editing their value. Instead the appropriate
configuration
# should be used to perform these actions.
# This value cannot be modified here.
# Flavor: booldata
# Current value: 1 current
# Requires: !CYGPKG_LIBC_STARTUP ||
CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE ||
(CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE >= (16 * 1024))
# CYGPKG_LIBC_STARTUP == current
# CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE == 0
# CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE == 16384
# --> 1
# The following properties are affected by this value
# option CYGPKG_LIBM_CFLAGS_ADD
# DefaultValue: ((0 == CYGPKG_HAL_I386) && (0 ==
CYGPKG_HAL_SYNTH_I386)) ? "" : "-ffloat-store"
};
# >
# Startup type
# At the moment only ROM startup is supported. In the context
# of the synthetic target this means a read-only region for
# code and a read-write region for data.
#
cdl_component CYG_HAL_STARTUP {
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value ROM
# value_source default
# Default value: ROM
# Legal values: "ROM"
# The following properties are affected by this value
# option CYGSEM_HAL_INSTALL_MMU_TABLES
# DefaultValue: CYG_HAL_STARTUP != "RAM"
# component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN
# DefaultValue: (CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS ||
CYG_HAL_STARTUP == "RAM") ? 1 : 0
# option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
# DefaultValue: CYG_HAL_STARTUP != "RAM" ||
!CYGSEM_HAL_USE_ROM_MONITOR
};
# Memory layout
#
cdl_component CYGHWR_MEMORY_LAYOUT {
# Calculated value: "mlt_synth_i386_rom"
# Flavor: data
# Current_value: mlt_synth_i386_rom
};
# >
# Memory layout linker script fragment
#
cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
# Calculated value: "<pkgconf/mlt_synth_i386_rom.ldi>"
# Flavor: data
# Current_value: <pkgconf/mlt_synth_i386_rom.ldi>
};
# Memory layout header file
#
cdl_option CYGHWR_MEMORY_LAYOUT_H {
# Calculated value: "<pkgconf/mlt_synth_i386_rom.h>"
# Flavor: data
# Current_value: <pkgconf/mlt_synth_i386_rom.h>
};
# <
# <
# <
# Global build options
# Global build options including control over
# compiler flags, linker flags and choice of toolchain.
#
cdl_component CYGBLD_GLOBAL_OPTIONS {
# There is no associated value.
# The following properties are affected by this value
};
# >
# Global command prefix
# This option specifies the command prefix used when
# invoking the build tools. You must be using gcc-2.95.2 or
# later, and "ld -v" must report a version more recent than
# 2.9.1.
#
cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value ""
# value_source default
# Default value: ""
};
# Global compiler flags
# This option controls the global compiler flags which
# are used to compile all packages by
# default. Individual packages may define
# options which override these global flags.
#
cdl_option CYGBLD_GLOBAL_CFLAGS {
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value "-Wall -Wpointer-arith -Wstrict-prototypes -Winline
-Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections
-fno-rtti -fno-exceptions -fvtable-gc -finit-priority"
# value_source default
# Default value: "-Wall -Wpointer-arith -Wstrict-prototypes -Winline
-Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections
-fno-rtti -fno-exceptions -fvtable-gc -finit-priority"
# The following properties are affected by this value
# option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
# Requires: is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror")
# option CYGBLD_INFRA_CFLAGS_PIPE
# Requires: is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe")
};
# Global linker flags
# This option controls the global linker flags. Individual
# packages may define options which override these global flags.
#
cdl_option CYGBLD_GLOBAL_LDFLAGS {
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value "-g -nostdlib -Wl,--gc-sections -Wl,-static"
# value_source default
# Default value: "-g -nostdlib -Wl,--gc-sections -Wl,-static"
};
# Build common GDB stub ROM image
# Unless a target board has specific requirements to the
# stub implementation, it can use a simple common stub.
# This option, which gets enabled by platform HALs as
# appropriate, controls the building of the common stub.
#
cdl_option CYGBLD_BUILD_COMMON_GDB_STUBS {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
# Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
# CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
# --> 0
};
# <
# Synthetic FLASH memory support
# FLASH memory device support for Synthetic target
#
cdl_package CYGPKG_DEVS_FLASH_SYNTH {
# Packages cannot be added or removed, nor can their version be
changed,
# simply by editing their value. Instead the appropriate
configuration
# should be used to perform these actions.
# This option is not active
# ActiveIf constraint: CYGPKG_IO_FLASH
# CYGPKG_IO_FLASH (unknown) == 0
# --> 0
# This value cannot be modified here.
# Flavor: booldata
# Current value: 1 current
# Requires: CYGINT_ISO_ERRNO_CODES
# CYGINT_ISO_ERRNO_CODES == 1
# --> 1
};
# >
# Base address of flash
# If enabled, controls where in the synth target memory map the
# flash is mapped. WARNING: This must be somewhere
# the host Linux kernel is prepaired to mmap a file. It
# must be page aligned. For hosts with recent x86 Linux kernels,
# a value of 0x40000000 is likely appropriate. When disabled,
# the driver will automatically use whatever address the kernel
# provides it with.
#
cdl_option CYGMEM_FLASH_SYNTH_BASE {
# This option is not active
# The parent CYGPKG_DEVS_FLASH_SYNTH is not active
# Flavor: booldata
# No user value, uncomment the following line to provide one.
# user_value 0 0
# value_source default
# Default value: 0 0
};
# FLASH changes modify the underlying file
# If enabled, changes made to the contents of the emulated
# FLASH are reflected in the underlying file. Otherwise,
# the file will be left unaffected by any changes the program
# makes to FLASH contents.
#
cdl_option CYGSEM_FLASH_SYNTH_FILE_WRITEBACK {
# This option is not active
# The parent CYGPKG_DEVS_FLASH_SYNTH is not active
# Flavor: booldata
# No user value, uncomment the following line to provide one.
# user_value 0 0
# value_source default
# Default value: 0 0
};
# Size of one block of synth flash
# This controls the size of one block of flash. This is
# the minimum size that can be erased.
#
cdl_option CYGNUM_FLASH_SYNTH_BLOCKSIZE {
# This option is not active
# The parent CYGPKG_DEVS_FLASH_SYNTH is not active
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value 65536
# value_source default
# Default value: 65536
# Legal values: 4096 to 999999
# Requires: (CYGNUM_FLASH_SYNTH_BLOCKSIZE % 4096) == 0
# CYGNUM_FLASH_SYNTH_BLOCKSIZE == 0
# --> 1
# The following properties are affected by this value
# option CYGNUM_FLASH_SYNTH_BLOCKSIZE
# Requires: (CYGNUM_FLASH_SYNTH_BLOCKSIZE % 4096) == 0
};
# Number of blocks in the synth flash
# This controls how many blocks there are in the flash
#
cdl_option CYGNUM_FLASH_SYNTH_NUMBLOCKS {
# This option is not active
# The parent CYGPKG_DEVS_FLASH_SYNTH is not active
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value 16
# value_source default
# Default value: 16
};
# Name of file emulating synth flash
# This is the name of the file which holds the contents of
# the flash. It is mmap'ed into memory and written for flash
# program & erase operations. It will be created if it does
# not exist.
#
cdl_option CYGDAT_FLASH_SYNTH_FILENAME {
# This option is not active
# The parent CYGPKG_DEVS_FLASH_SYNTH is not active
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value "\"synth.flash\""
# value_source default
# Default value: "\"synth.flash\""
};
# Synth flash tests
# This option specifies the set of tests for the synth flash package.
#
cdl_option CYGPKG_DEVS_FLASH_SYNTH_TESTS {
# This option is not active
# The parent CYGPKG_DEVS_FLASH_SYNTH is not active
# Calculated value: "tests/flash1.c"
# Flavor: data
# Current_value: tests/flash1.c
};
# <
# Synthetic target ethernet driver
# doc: ref/devs-eth-synth-ecosynth.html
# The ethernet driver for the eCos synthetic target allows applications
# and other packages such as a TCP/IP stack to perform ethernet I/O.
# This can involve either an unused ethernet device, or an emulated
# ethernet device as provided by the Linux kernel's tunnel/tap
# support. The eCos code interacts with a suitable Linux application
# through the I/O auxiliary. Up to four ethernet devices are
# supported, and the host-side target definition file controls how
# each device will perform its I/O.
#
cdl_package CYGPKG_DEVS_ETH_ECOSYNTH {
# Packages cannot be added or removed, nor can their version be
changed,
# simply by editing their value. Instead the appropriate
configuration
# should be used to perform these actions.
# This option is not active
# ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS
# CYGPKG_IO_ETH_DRIVERS (unknown) == 0
# --> 0
# ActiveIf constraint: CYGPKG_HAL_SYNTH
# CYGPKG_HAL_SYNTH == current
# --> 1
# This value cannot be modified here.
# Flavor: booldata
# Current value: 1 current
};
# >
# Provide eth0 device
# The synthetic target can provide up to four ethernet devices,
# eth0 to eth3. By default eth0 is enabled when a TCP/IP stack
# is part of the configuration, disabled otherwise.
#
cdl_option CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 {
# This option is not active
# The parent CYGPKG_DEVS_ETH_ECOSYNTH is not active
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: CYGPKG_NET_STACK
# CYGPKG_NET_STACK (unknown) == 0
# --> 0
# The following properties are affected by this value
# component CYGPKG_DEVS_ETH_ECOSYNTH_OPTIONS
# ActiveIf: CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH1 || CYGVAR_DEVS_ETH_ECOSYNTH_ETH2 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH3
};
# Provide eth1 device
# The synthetic target can provide up to four ethernet devices,
# eth0 to eth3. By default eth1 is always disabled, but can
# be enabled if the eCos application needs more than one ethernet
# device.
#
cdl_option CYGVAR_DEVS_ETH_ECOSYNTH_ETH1 {
# This option is not active
# The parent CYGPKG_DEVS_ETH_ECOSYNTH is not active
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
# The following properties are affected by this value
# component CYGPKG_DEVS_ETH_ECOSYNTH_OPTIONS
# ActiveIf: CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH1 || CYGVAR_DEVS_ETH_ECOSYNTH_ETH2 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH3
};
# Provide eth2 device
# The synthetic target can provide up to four ethernet devices,
# eth0 to eth3. By default eth2 is always disabled, but can
# be enabled if the eCos application needs more than two ethernet
# devices.
#
cdl_option CYGVAR_DEVS_ETH_ECOSYNTH_ETH2 {
# This option is not active
# The parent CYGPKG_DEVS_ETH_ECOSYNTH is not active
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
# The following properties are affected by this value
# component CYGPKG_DEVS_ETH_ECOSYNTH_OPTIONS
# ActiveIf: CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH1 || CYGVAR_DEVS_ETH_ECOSYNTH_ETH2 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH3
};
# Provide eth3 device
# The synthetic target can provide up to four ethernet devices,
# eth0 to eth3. By default eth3 is always disabled, but can
# be enabled if the eCos application needs more than three ethernet
# devices.
#
cdl_option CYGVAR_DEVS_ETH_ECOSYNTH_ETH3 {
# This option is not active
# The parent CYGPKG_DEVS_ETH_ECOSYNTH is not active
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
# The following properties are affected by this value
# component CYGPKG_DEVS_ETH_ECOSYNTH_OPTIONS
# ActiveIf: CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH1 || CYGVAR_DEVS_ETH_ECOSYNTH_ETH2 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH3
};
# Build options
# Package-specific build options including control over compiler
# flags used only in building this package.
#
cdl_component CYGPKG_DEVS_ETH_ECOSYNTH_OPTIONS {
# This option is not active
# The parent CYGPKG_DEVS_ETH_ECOSYNTH is not active
# ActiveIf constraint: CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH1 || CYGVAR_DEVS_ETH_ECOSYNTH_ETH2 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH3
# CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 == 0
# CYGVAR_DEVS_ETH_ECOSYNTH_ETH1 == 0
# CYGVAR_DEVS_ETH_ECOSYNTH_ETH2 == 0
# CYGVAR_DEVS_ETH_ECOSYNTH_ETH3 == 0
# --> 0
# There is no associated value.
# Requires: CYGINT_ISO_ERRNO_CODES CYGINT_ISO_STRING_MEMFUNCS
# CYGINT_ISO_ERRNO_CODES == 1
# CYGINT_ISO_STRING_MEMFUNCS == 1
# --> 1
};
# >
# Additional compiler flags
# This option modifies the set of compiler flags for
# building this package. These flags are used in addition
# to the set of global flags.
#
cdl_option CYGPKG_DEVS_ETH_ECOSYNTH_CFLAGS_ADD {
# This option is not active
# The parent CYGPKG_DEVS_ETH_ECOSYNTH_OPTIONS is not active
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value "-D_KERNEL -D__ECOS"
# value_source default
# Default value: "-D_KERNEL -D__ECOS"
};
# Suppressed compiler flags
# This option modifies the set of compiler flags for
# building this package. These flags are removed from
# the set of global flags if present.
#
cdl_option CYGPKG_DEVS_ETH_ECOSYNTH_CFLAGS_REMOVE {
# This option is not active
# The parent CYGPKG_DEVS_ETH_ECOSYNTH_OPTIONS is not active
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value ""
# value_source default
# Default value: ""
};
# <
# <
# <
# eCos HAL
# doc: ref/the-ecos-hardware-abstraction-layer.html
# The eCos HAL package provide a porting layer for
# higher-level parts of the system such as the kernel and the
# C library. Each installation should have HAL packages for
# one or more architectures, and for each architecture there
# may be one or more supported platforms. It is necessary to
# select one target architecture and one platform for that
# architecture. There are also a number of configuration
# options that are common to all HAL packages.
#
cdl_package CYGPKG_HAL {
# Packages cannot be added or removed, nor can their version be
changed,
# simply by editing their value. Instead the appropriate
configuration
# should be used to perform these actions.
# This value cannot be modified here.
# Flavor: booldata
# Current value: 1 current
# Requires: CYGPKG_INFRA
# CYGPKG_INFRA == current
# --> 1
};
# >
# Platform-independent HAL options
# A number of configuration options are common to most or all
# HAL packages, for example options controlling how much state
# should be saved during a context switch. The implementations
# of these options will vary from architecture to architecture.
#
cdl_component CYGPKG_HAL_COMMON {
# There is no associated value.
};
# >
# Provide eCos kernel support
# The HAL can be configured to either support the full eCos
# kernel, or to support only very simple applications which do
# not require a full kernel. If kernel support is not required
# then some of the startup, exception, and interrupt handling
# code can be eliminated.
#
cdl_option CYGFUN_HAL_COMMON_KERNEL_SUPPORT {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: CYGPKG_KERNEL
# CYGPKG_KERNEL == current
# --> 1
# Requires: CYGPKG_KERNEL
# CYGPKG_KERNEL == current
# --> 1
};
# HAL exception support
# When a processor exception occurs, for example an attempt to
# execute an illegal instruction or to perform a divide by
# zero, this exception may be handled in a number of different
# ways. If the target system has gdb support then typically
# the exception will be handled by gdb code. Otherwise if the
# HAL exception support is enabled then the HAL will invoke a
# routine deliver_exception(). Typically this routine will be
# provided by the eCos kernel, but it is possible for
# application code to provide its own implementation. If the
# HAL exception support is not enabled and a processor
# exception occurs then the behaviour of the system is
# undefined.
#
cdl_option CYGPKG_HAL_EXCEPTIONS {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: CYGPKG_KERNEL_EXCEPTIONS
# CYGPKG_KERNEL_EXCEPTIONS == 1
# --> 1
# Requires: CYGPKG_KERNEL_EXCEPTIONS
# CYGPKG_KERNEL_EXCEPTIONS == 1
# --> 1
# The following properties are affected by this value
# component CYGPKG_KERNEL_EXCEPTIONS
# Requires: CYGPKG_HAL_EXCEPTIONS
};
# Stop calling constructors early
# This option supports environments where some constructors
# must be run in the context of a thread rather than at
# simple system startup time. A boolean flag named
# cyg_hal_stop_constructors is set to 1 when constructors
# should no longer be invoked. It is up to some other
# package to deal with the rest of the constructors.
# In the current version this is only possible with the
# C library.
#
cdl_option CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
# Requires: CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
# CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS == 0
# --> 0
# The following properties are affected by this value
# option CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
# Requires: CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
};
# HAL uses the MMU and allows for CDL manipulation of it's use
#
cdl_interface CYGINT_HAL_SUPPORTS_MMU_TABLES {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
# The following properties are affected by this value
# option CYGSEM_HAL_INSTALL_MMU_TABLES
# ActiveIf: CYGINT_HAL_SUPPORTS_MMU_TABLES
};
# Install MMU tables.
# This option controls whether this application installs
# its own Memory Management Unit (MMU) tables, or relies on the
# existing environment to run.
#
cdl_option CYGSEM_HAL_INSTALL_MMU_TABLES {
# This option is not active
# ActiveIf constraint: CYGINT_HAL_SUPPORTS_MMU_TABLES
# CYGINT_HAL_SUPPORTS_MMU_TABLES == 0
# --> 0
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: CYG_HAL_STARTUP != "RAM"
# CYG_HAL_STARTUP == ROM
# --> 1
# The following properties are affected by this value
# option CYGSEM_HAL_STATIC_MMU_TABLES
# Requires: CYGSEM_HAL_INSTALL_MMU_TABLES
};
# Use static MMU tables.
# This option defines an environment where any Memory
# Management Unit (MMU) tables are constant. Normally used by ROM
# based environments, this provides a way to save RAM usage which
# would otherwise be required for these tables.
#
cdl_option CYGSEM_HAL_STATIC_MMU_TABLES {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
# Requires: CYGSEM_HAL_INSTALL_MMU_TABLES
# CYGSEM_HAL_INSTALL_MMU_TABLES == 0
# --> 0
};
# Route diagnostic output to debug channel
# If not inheriting the console setup from the ROM monitor,
# it is possible to redirect diagnostic output to the debug
# channel by enabling this option. Depending on the debugger
# used it may also be necessary to select a mangler for the
# output to be displayed by the debugger.
#
cdl_component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN {
# This option is not active
# ActiveIf constraint: !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE
# CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE == 0
# --> 1
# ActiveIf constraint: CYGPKG_HAL_ARM || CYGPKG_HAL_POWERPC_MPC8xx
|| CYGPKG_HAL_V85X_V850 || CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
# CYGPKG_HAL_ARM (unknown) == 0
# CYGPKG_HAL_POWERPC_MPC8xx (unknown) == 0
# CYGPKG_HAL_V85X_V850 (unknown) == 0
# CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 0
# --> 0
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: (CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS ||
CYG_HAL_STARTUP == "RAM") ? 1 : 0
# CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
# CYG_HAL_STARTUP == ROM
# --> 0
# The following properties are affected by this value
# option CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
# Calculated: !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE &&
!CYGDBG_HAL_DIAG_TO_DEBUG_CHAN
};
# >
# Mangler used on diag output
# It is sometimes necessary to mangle (encode) the
# diag ASCII text output in order for it to show up at the
# other end. In particular, GDB may silently ignore raw
# ASCII text.
#
cdl_option CYGSEM_HAL_DIAG_MANGLER {
# This option is not active
# The parent CYGDBG_HAL_DIAG_TO_DEBUG_CHAN is not active
# The parent CYGDBG_HAL_DIAG_TO_DEBUG_CHAN is disabled
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value GDB
# value_source default
# Default value: GDB
# Legal values: "GDB" "None"
};
# <
# <
# HAL interrupt handling
# A number of configuration options related to interrupt
# handling are common to most or all HAL packages, even though
# the implementations will vary from architecture to
# architecture.
#
cdl_component CYGPKG_HAL_COMMON_INTERRUPTS {
# There is no associated value.
};
# >
# Use separate stack for interrupts
# When an interrupt occurs this interrupt can be handled either
# on the current stack or on a separate stack maintained by the
# HAL. Using a separate stack requires a small number of extra
# instructions in the interrupt handling code, but it has the
# advantage that it is no longer necessary to allow extra space
# in every thread stack for the interrupt handlers. The amount
# of extra space required depends on the interrupt handlers
# that are being used.
#
cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
};
# Interrupt stack size
# This configuration option specifies the stack size in bytes
# for the interrupt stack. Typically this should be a multiple
# of 16, but the exact requirements will vary from architecture
# to architecture. The interrupt stack serves two separate
# purposes. It is used as the stack during system
# initialization. In addition, if the interrupt system is
# configured to use a separate stack then all interrupts will
# be processed on this stack. The exact memory requirements
# will vary from application to application, and will depend
# heavily on whether or not other interrupt-related options,
# for example nested interrupts, are enabled. On most targets,
# in a configuration with no kernel this stack will also be
# the stack used to invoke the application, and must obviously
# be appropriately large in that case.
#
cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value 4096
# value_source default
# Default value: CYGPKG_KERNEL ? 4096 : 32768
# CYGPKG_KERNEL == current
# --> 4096
# Legal values: 128 to 1048576
};
# Allow nested interrupts
# When an interrupt occurs the HAL interrupt handling code can
# either leave interrupts disabled for the duration of the
# interrupt handling code, or by doing some extra work it can
# reenable interrupts before invoking the interrupt handler and
# thus allow nested interrupts to happen. If all the interrupt
# handlers being used are small and do not involve any loops
# then it is usually better to disallow nested interrupts.
# However if any of the interrupt handlers are more complicated
# than nested interrupts will usually be required.
#
cdl_option CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
};
# Save minimum context on interrupt
# The HAL interrupt handling code can exploit the calling conventions
# defined for a given architecture to reduce the amount of state
# that has to be saved. Generally this improves performance and
# reduces code size. However it can make source-level debugging
# more difficult.
#
cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
# The following properties are affected by this value
# option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
# Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
};
# Chain all interrupts together
# Interrupts can be attached to vectors either singly, or be
# chained together. The latter is necessary if there is no way
# of discovering which device has interrupted without
# inspecting the device itself. It can also reduce the amount
# of RAM needed for interrupt decoding tables and code.
#
cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
# The following properties are affected by this value
# option CYGIMP_KERNEL_INTERRUPTS_CHAIN
# Requires: CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
};
# Ignore spurious [fleeting] interrupts
# On some hardware, interrupt sources may not be de-bounced or
# de-glitched. Rather than try to handle these interrupts (no
# handling may be possible), this option allows the HAL to simply
# ignore them. In most cases, if the interrupt is real it will
# reoccur in a detectable form.
#
cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_IGNORE_SPURIOUS {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
};
# <
# HAL context switch support
# A number of configuration options related to thread contexts
# are common to most or all HAL packages, even though the
# implementations will vary from architecture to architecture.
#
cdl_component CYGPKG_HAL_COMMON_CONTEXT {
# There is no associated value.
# The following properties are affected by this value
};
# >
# Use minimum thread context
# The thread context switch code can exploit the calling
# conventions defined for a given architecture to reduce the
# amount of state that has to be saved during a context
# switch. Generally this improves performance and reduces
# code size. However it can make source-level debugging more
# difficult.
#
cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
# The following properties are affected by this value
# option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
# Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
};
# <
# Explicit control over cache behaviour
# These options let the default behaviour of the caches
# be easily configurable.
#
cdl_component CYGPKG_HAL_CACHE_CONTROL {
# There is no associated value.
};
# >
# Enable DATA cache on startup
# Enabling this option will cause the data cache to be enabled
# as soon as practicable when eCos starts up. One would choose
# to disable this if the data cache cannot safely be turned on,
# such as a case where the cache(s) require additional platform
# specific setup.
#
cdl_component CYGSEM_HAL_ENABLE_DCACHE_ON_STARTUP {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
};
# >
# DATA cache mode on startup
# This option controls the mode the cache will be set to
# when enabled on startup.
#
cdl_option CYGSEM_HAL_DCACHE_STARTUP_MODE {
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value COPYBACK
# value_source default
# Default value: COPYBACK
# Legal values: "COPYBACK" "WRITETHRU"
};
# <
# Enable INSTRUCTION cache on startup
# Enabling this option will cause the instruction cache to be enabled
# as soon as practicable when eCos starts up. One would choose
# to disable this if the instruction cache cannot safely be turned on,
# such as a case where the cache(s) require additional platform
# specific setup.
#
cdl_option CYGSEM_HAL_ENABLE_ICACHE_ON_STARTUP {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
};
# <
# Source-level debugging support
# If the source level debugger gdb is to be used for debugging
# application code then it may be necessary to configure in support
# for this in the HAL.
#
cdl_component CYGPKG_HAL_DEBUG {
# There is no associated value.
};
# >
# Support for GDB stubs
# The HAL implements GDB stubs for the target.
#
cdl_interface CYGINT_HAL_DEBUG_GDB_STUBS {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
# The following properties are affected by this value
# option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
# ActiveIf: CYGINT_HAL_DEBUG_GDB_STUBS
};
# Include GDB stubs in HAL
# This option causes a set of GDB stubs to be included into the
# system. On some target systems the GDB support will be
# provided by other means, for example by a ROM monitor. On
# other targets, especially when building a ROM-booting system,
# the necessary support has to go into the target library
# itself. When GDB stubs are include in a configuration, HAL
# serial drivers must also be included.
#
cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
# This option is not active
# ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS
# CYGINT_HAL_DEBUG_GDB_STUBS == 0
# --> 0
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
# Requires: ! CYGSEM_HAL_USE_ROM_MONITOR
# CYGSEM_HAL_USE_ROM_MONITOR (unknown) == 0
# --> 1
# Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
# CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 1
# --> 0
# Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
# CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 1
# --> 0
# Requires: !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
# CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 0
# CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 0
# --> 1
# The following properties are affected by this value
# component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN
# DefaultValue: (CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS ||
CYG_HAL_STARTUP == "RAM") ? 1 : 0
# option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
# Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
# option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
# DefaultValue: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
# option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
# ActiveIf: CYGSEM_HAL_USE_ROM_MONITOR ||
CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
# option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
# DefaultValue: !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
# option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
# DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE ||
CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
# option CYGBLD_BUILD_COMMON_GDB_STUBS
# Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
# option CYGPKG_HAL_GDB_FILEIO
# Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
};
# Support for external break support in GDB stubs
# The HAL implements external break (or asynchronous interrupt)
# in the GDB stubs for the target.
#
cdl_interface CYGINT_HAL_DEBUG_GDB_STUBS_BREAK {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
# The following properties are affected by this value
# option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
# ActiveIf: CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
};
# Include GDB external break support for stubs
# This option causes the GDB stub to add a serial interrupt handler
# which will listen for GDB break packets. This lets you stop the
# target asynchronously when using GDB, usually by hitting Control+C
# or pressing the STOP button. This option differs from
# CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT in that it is used when
# GDB stubs are present.
#
cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
# This option is not active
# ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
# CYGINT_HAL_DEBUG_GDB_STUBS_BREAK == 0
# --> 0
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
# CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
# --> 0
# Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
# CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
# --> 0
# The following properties are affected by this value
# option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
# Requires: !CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
};
# Platform does not support CTRLC
#
cdl_interface CYGINT_HAL_DEBUG_GDB_CTRLC_UNSUPPORTED {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
# The following properties are affected by this value
# option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
# ActiveIf: CYGINT_HAL_DEBUG_GDB_CTRLC_UNSUPPORTED == 0
};
# Include GDB external break support when no stubs
# This option adds an interrupt handler for the GDB serial line
# which will listen for GDB break packets. This lets you stop the
# target asynchronously when using GDB, usually by hitting Control+C
# or pressing the STOP button. This option differs from
# CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT in that it is used when the GDB
# stubs are NOT present.
#
cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
# This option is not active
# ActiveIf constraint: CYGSEM_HAL_USE_ROM_MONITOR ||
CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
# CYGSEM_HAL_USE_ROM_MONITOR (unknown) == 0
# CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
# --> 0
# ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_CTRLC_UNSUPPORTED == 0
# CYGINT_HAL_DEBUG_GDB_CTRLC_UNSUPPORTED == 0
# --> 1
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
# CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
# --> 1
# Requires: !CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
# CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0
# --> 1
};
# Include GDB multi-threading debug support
# This option enables some extra HAL code which is needed
# to support multi-threaded source level debugging.
#
cdl_option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT {
# This option is not active
# ActiveIf constraint: CYGSEM_HAL_ROM_MONITOR ||
CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
# CYGSEM_HAL_ROM_MONITOR (unknown) == 0
# CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT == 0
# --> 0
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
# The following properties are affected by this value
# option CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
# Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
};
# Number of times to retry sending a $O packet
# This option controls the number of attempts that eCos programs
# will make to send a $O packet to a host GDB process. If it is
# set non-zero, then the target process will attempt to resend the
# $O packet data up to this number of retries. Caution: use of
# this option is not recommended as it can thoroughly confuse the
# host GDB process.
#
cdl_option CYGNUM_HAL_DEBUG_GDB_PROTOCOL_RETRIES {
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
};
# Timeout period for GDB packets
# This option controls the time (in milliseconds) that eCos programs
# will wait for a response when sending packets to a host GDB process.
# If this time elapses, then the packet will be resent, up to some
# maximum number of times (CYGNUM_HAL_DEBUG_GDB_PROTOCOL_RETRIES).
#
cdl_option CYGNUM_HAL_DEBUG_GDB_PROTOCOL_TIMEOUT {
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value 500
# value_source default
# Default value: 500
};
# Location of CRC32 table
# The stubs use a 1 kilobyte CRC table that can either be pregenerated
# and placed in ROM, or generated at runtime in RAM. Depending on
# your memory constraints, one of these options may be better.
#
cdl_option CYGDBG_HAL_CRCTABLE_LOCATION {
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value RAM
# value_source default
# Default value: RAM
# Legal values: "ROM" "RAM"
};
# <
# ROM monitor support
# Support for ROM monitors can be built in to your application.
# It may also be relevant to build your application as a ROM monitor
# itself. Such options are contained here if relevant for your chosen
# platform. The options and ROM monitors available to choose are
# platform-dependent.
#
cdl_component CYGPKG_HAL_ROM_MONITOR {
# There is no associated value.
};
# >
# Target has virtual vector support
#
cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
# The following properties are affected by this value
# component CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
# ActiveIf: CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
};
# Target supports baud rate control via vectors
# Whether this target supports the __COMMCTL_GETBAUD
# and __COMMCTL_SETBAUD virtual vector comm control operations.
#
cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
};
# Enable use of virtual vector calling interface
# Virtual vector support allows the HAL to let the ROM
# monitor handle certain operations. The virtual vector table
# defines a calling interface between applications running in
# RAM and the ROM monitor.
#
cdl_component CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT {
# This option is not active
# ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
# CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT == 0
# --> 0
# Calculated value: 1
# Flavor: bool
# Current value: 1
};
# >
# Inherit console settings from ROM monitor
# When this option is set, the application will inherit
# the console as set up by the ROM monitor. This means
# that the application will use whatever channel and
# mangling style was used by the ROM monitor when
# the application was launched.
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE {
# This option is not active
# The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active
# ActiveIf constraint: CYGSEM_HAL_USE_ROM_MONITOR
# CYGSEM_HAL_USE_ROM_MONITOR (unknown) == 0
# --> 0
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: !CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
# CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 0
# --> 1
# The following properties are affected by this value
# component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN
# ActiveIf: !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE
# option CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
# Calculated: !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE &&
!CYGDBG_HAL_DIAG_TO_DEBUG_CHAN
};
# Debug channel is configurable
# This option is a configuration hint - it is enabled
# when the HAL initialization code will make use
# of the debug channel configuration option.
#
cdl_option CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE {
# This option is not active
# The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active
# Calculated value: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
# CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 0
# Flavor: bool
# Current value: 0
};
# Console channel is configurable
# This option is a configuration hint - it is enabled
# when the HAL initialization code will make use
# of the console channel configuration option.
#
cdl_option CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE {
# This option is not active
# The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active
# Calculated value: !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE &&
!CYGDBG_HAL_DIAG_TO_DEBUG_CHAN
# CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE == 0
# CYGDBG_HAL_DIAG_TO_DEBUG_CHAN == 0
# Flavor: bool
# Current value: 1
};
# Initialize whole of virtual vector table
# This option will cause the whole of the virtual
# vector table to be initialized with dummy values on
# startup. When this option is enabled, all the
# options below must also be enabled - or the
# table would be empty when the application
# launches.
# On targets where older ROM monitors without
# virtual vector support may still be in use, it is
# necessary for RAM applictions to initialize the
# table (since all HAL diagnostics and debug IO
# happens via the table).
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE {
# This option is not active
# The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: CYG_HAL_STARTUP != "RAM" ||
!CYGSEM_HAL_USE_ROM_MONITOR
# CYG_HAL_STARTUP == ROM
# CYGSEM_HAL_USE_ROM_MONITOR (unknown) == 0
# --> 1
# Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET
# CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET == 0
# --> 0
# Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US
# CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US == 0
# --> 0
# Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE
# CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE == 0
# --> 0
# Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA
# CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA == 0
# --> 0
# Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
# CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 0
# --> 0
# The following properties are affected by this value
# option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT
# ActiveIf: !CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
# option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET
# DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT
# option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_VERSION
# DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
# option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US
# DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT
# option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE
# DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT
# option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA
# DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT
# option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
# DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE ||
CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
};
# Claim virtual vector table entries by default
# By default most virtual vectors will be claimed by
# RAM startup configurations, meaning that the RAM
# application will provide the services. The
# exception is COMMS support (HAL
# diagnostics/debugging IO) which is left in the
# control of the ROM monitor.
# The reasoning behind this is to get as much of the
# code exercised during regular development so it
# is known to be working the few times a new ROM
# monitor or a ROM production configuration is used
# - COMMS are excluded only by necessity in order to
# avoid breaking an existing debugger connections
# (there may be ways around this).
# For production RAM configurations this option can
# be switched off, causing the appliction to rely on
# the ROM monitor for these services, thus
# saving some space.
# Individual vectors may also be left unclaimed,
# controlled by the below options (meaning that the
# associated service provided by the ROM monitor
# will be used).
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT {
# This option is not active
# The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active
# ActiveIf constraint: !CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
# CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 0
# --> 1
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
# The following properties are affected by this value
# option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET
# DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT
# option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US
# DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT
# option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE
# DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT
# option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA
# DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT
};
# Claim reset virtual vectors
# This option will cause the reset and kill_by_reset
# virtual vectors to be claimed.
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET {
# This option is not active
# The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT
# CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 0
# CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
# --> 0
# The following properties are affected by this value
# option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
# Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET
};
# Claim version virtual vectors
# This option will cause the version
# virtual vectors to be claimed.
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_VERSION {
# This option is not active
# The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
# CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 0
# --> 0
};
# Claim delay_us virtual vector
# This option will cause the delay_us
# virtual vector to be claimed.
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US {
# This option is not active
# The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT
# CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 0
# CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
# --> 0
# The following properties are affected by this value
# option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
# Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US
};
# Claim cache virtual vectors
# This option will cause the cache virtual vectors
# to be claimed.
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE {
# This option is not active
# The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT
# CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 0
# CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
# --> 0
# The following properties are affected by this value
# option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
# Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE
};
# Claim data virtual vectors
# This option will cause the data virtual vectors
# to be claimed. At present there is only one, used
# by the RedBoot ethernet driver to share diag output.
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA {
# This option is not active
# The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT
# CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 0
# CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
# --> 0
# The following properties are affected by this value
# option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
# Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA
};
# Claim comms virtual vectors
# This option will cause the communication tables
# that are part of the virtual vectors mechanism to
# be claimed. Note that doing this may cause an
# existing ROM monitor communication connection to
# be closed. For this reason, the option is disabled
# per default for normal application
# configurations.
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS {
# This option is not active
# The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE ||
CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
# CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 0
# CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
# --> 0
# The following properties are affected by this value
# option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
# Requires: !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
# option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE
# DefaultValue: !CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
# option CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
# Calculated: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
# option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
# Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
};
# Do diagnostic IO via virtual vector table
# All HAL IO happens via the virtual vector table / comm
# tables when those tables are supported by the HAL.
# If so desired, the low-level IO functions can
# still be provided by the RAM application by
# enabling the CLAIM_COMMS option.
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_DIAG {
# This option is not active
# The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active
# Calculated value: 1
# Flavor: bool
# Current value: 1
# The following properties are affected by this value
# component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN
# ActiveIf: CYGPKG_HAL_ARM || CYGPKG_HAL_POWERPC_MPC8xx ||
CYGPKG_HAL_V85X_V850 || CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
# option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
# Requires: !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
};
# <
# <
# Platform defined I/O channels.
# Platforms which provide additional I/O channels can implement
# this interface, indicating that the function plf_if_init()
# needs to be called.
#
cdl_interface CYGINT_HAL_PLF_IF_INIT {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
};
# Platform IDE I/O support.
# Platforms which provide IDE controllers can implement
# this interface, indicating that IDE I/O macros are
# available.
#
cdl_interface CYGINT_HAL_PLF_IF_IDE {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
};
# File I/O operations via GDB
# This option enables support for various file I/O
# operations using the GDB remote protocol to communicate
# with GDB. The operations are then performed on the
# debugging host by proxy. These operations are only
# currently available by using a system call interface
# to RedBoot. This may change in the future.
#
cdl_option CYGPKG_HAL_GDB_FILEIO {
# This option is not active
# ActiveIf constraint: CYGSEM_REDBOOT_BSP_SYSCALLS
# CYGSEM_REDBOOT_BSP_SYSCALLS (unknown) == 0
# --> 0
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
# Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
# CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
# --> 0
};
# Build Compiler sanity checking tests
# Enabling this option causes compiler tests to be built.
#
cdl_option CYGPKG_HAL_BUILD_COMPILER_TESTS {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
# The following properties are affected by this value
# component CYGPKG_HAL_TESTS
# Calculated: "tests/context tests/basic"
# . ((!CYGINT_HAL_TESTS_NO_CACHES) ? "
tests/cache" : "")
# . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? "
tests/cpp1 tests/vaargs" : "")
# . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ? "
tests/intr" : "")
};
# Common HAL tests
# This option specifies the set of tests for the common HAL.
#
cdl_component CYGPKG_HAL_TESTS {
# Calculated value: "tests/context tests/basic"
# . ((!CYGINT_HAL_TESTS_NO_CACHES) ? "
tests/cache" : "")
# . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? "
tests/cpp1 tests/vaargs" : "")
# . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ? "
tests/intr" : "")
# CYGINT_HAL_TESTS_NO_CACHES == 1
# CYGPKG_HAL_BUILD_COMPILER_TESTS == 0
# CYGVAR_KERNEL_COUNTERS_CLOCK == 1
# Flavor: data
# Current_value: tests/context tests/basic
};
# >
# Interface for cache presence
# Some architectures and/or platforms do not have caches. By
# implementing this interface, these can disable the various
# cache-related tests.
#
cdl_interface CYGINT_HAL_TESTS_NO_CACHES {
# Implemented by CYGPKG_HAL_SYNTH, active, enabled
# This value cannot be modified here.
# Flavor: booldata
# Current value: 1 1
# The following properties are affected by this value
# component CYGPKG_HAL_TESTS
# Calculated: "tests/context tests/basic"
# . ((!CYGINT_HAL_TESTS_NO_CACHES) ? "
tests/cache" : "")
# . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? "
tests/cpp1 tests/vaargs" : "")
# . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ? "
tests/intr" : "")
# option CYGPKG_KERNEL_TESTS
# Calculated:
# "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2
tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth
tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1
tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0
tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1
tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2"
# . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0
tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0
tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3
tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0
tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice
tests/tm_basic tests/fptest tests/kalarm0" : "")
# . ((!CYGPKG_INFRA_DEBUG &&
!CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" :
"")
# . ((CYGPKG_KERNEL_SMP_SUPPORT &&
CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
# . ((!CYGINT_HAL_TESTS_NO_CACHES &&
CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
#
};
# <
# <
# I/O sub-system
# doc: ref/io.html
# The eCos system is supplied with a number of different
# device drivers. This option enables the basic I/O system
# support which is the basis for all drivers.
#
cdl_package CYGPKG_IO {
# Packages cannot be added or removed, nor can their version be
changed,
# simply by editing their value. Instead the appropriate
configuration
# should be used to perform these actions.
# This value cannot be modified here.
# Flavor: booldata
# Current value: 1 current
# Requires: CYGPKG_ERROR
# CYGPKG_ERROR == current
# --> 1
# The following properties are affected by this value
# package CYGPKG_IO_SERIAL
# ActiveIf: CYGPKG_IO
# package CYGPKG_LIBC_STDIO
# Requires: CYGPKG_IO
# option CYGPKG_IO_FILEIO_DEVFS_SUPPORT
# ActiveIf: CYGPKG_IO
};
# >
# Debug I/O sub-system
# This option enables verbose messages to be displayed on the
# system 'diag' device during I/O system initialization.
#
cdl_option CYGDBG_IO_INIT {
# Flavor: bool
user_value 1
# value_source user
# Default value: 0
};
# Basic support for file based I/O
# This option control support for simple file I/O primitives. It is only
# present if the FILEIO package is not included.
#
cdl_component CYGPKG_IO_FILE_SUPPORT {
# This option is not active
# ActiveIf constraint: !CYGPKG_IO_FILEIO
# CYGPKG_IO_FILEIO == current
# --> 0
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
};
# >
# Number of open files
# This option controls the number of open files.
#
cdl_option CYGPKG_IO_NFILE {
# This option is not active
# The parent CYGPKG_IO_FILE_SUPPORT is not active
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value 16
# value_source default
# Default value: 16
};
# <
# <
# Serial device drivers
# doc: ref/io.html
# This option enables drivers for basic I/O services on
# serial devices.
#
cdl_package CYGPKG_IO_SERIAL {
# Packages cannot be added or removed, nor can their version be
changed,
# simply by editing their value. Instead the appropriate
configuration
# should be used to perform these actions.
# ActiveIf constraint: CYGPKG_IO
# CYGPKG_IO == current
# --> 1
# This value cannot be modified here.
# Flavor: booldata
# Current value: 1 current
# Requires: CYGPKG_ERROR
# CYGPKG_ERROR == current
# --> 1
};
# >
# Support non-blocking read and write calls
# This option enables extra code in the generic serial driver
# which allows clients to switch read() and write() call
# semantics from blocking to non-blocking.
#
cdl_option CYGOPT_IO_SERIAL_SUPPORT_NONBLOCKING {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
};
# Driver requires block transfer callback functions
# Some low-level drivers can be optimized to transfer blocks
# of data instead of a single character at a time. These usually
# rely on a hardware FIFO of some sort.
#
cdl_interface CYGINT_IO_SERIAL_BLOCK_TRANSFER {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
};
# Serial driver supports line status
#
cdl_interface CYGINT_IO_SERIAL_LINE_STATUS_HW {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
# The following properties are affected by this value
# option CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
# Requires: CYGINT_IO_SERIAL_LINE_STATUS_HW > 0
# option CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
# DefaultValue: 0 != CYGINT_IO_SERIAL_LINE_STATUS_HW
};
# Support line status callbacks
# This option indicates that if the serial driver supports it,
# serial line status and modem status information should be
# propagated to higher layers via callbacks.
#
cdl_option CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0 != CYGINT_IO_SERIAL_LINE_STATUS_HW
# CYGINT_IO_SERIAL_LINE_STATUS_HW == 0
# --> 0
# Requires: CYGINT_IO_SERIAL_LINE_STATUS_HW > 0
# CYGINT_IO_SERIAL_LINE_STATUS_HW == 0
# --> 0
# The following properties are affected by this value
# option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
# Requires: CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
# option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
# DefaultValue: CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 ?
CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS : 0
};
# Flow control
# This component contains options related to flow control.
#
cdl_component CYGPKG_IO_SERIAL_FLOW_CONTROL {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
# Requires: (CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE ||
CYGOPT_IO_SERIAL_FLOW_CONTROL_HW)
# CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE == 0
# CYGOPT_IO_SERIAL_FLOW_CONTROL_HW == 0
# --> 0
};
# >
# Software flow control
# This component enables support of software flow control.
#
cdl_component CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE {
# This option is not active
# The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
# The following properties are affected by this value
# component CYGPKG_IO_SERIAL_FLOW_CONTROL
# Requires: (CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE ||
CYGOPT_IO_SERIAL_FLOW_CONTROL_HW)
};
# >
# Start character
# This option specifies the ascii character used to
# indicate that transmission should start.
#
cdl_option CYGDAT_IO_SERIAL_FLOW_CONTROL_XON_CHAR {
# This option is not active
# The parent CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE is not active
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value 17
# value_source default
# Default value: 17
# Legal values: 0 to 255
};
# Stop character
# This option specifies the ascii character used to
# indicate that transmission should stop.
#
cdl_option CYGDAT_IO_SERIAL_FLOW_CONTROL_XOFF_CHAR {
# This option is not active
# The parent CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE is not active
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value 19
# value_source default
# Default value: 19
# Legal values: 0 to 255
};
# <
# Hardware flow control
# If the hardware supports it, this option allows hardware
# flow control to be enabled. This may be in the form of
# either or both of RTS/CTS, or DSR/DTR flow control.
#
cdl_option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW {
# This option is not active
# The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
# ActiveIf constraint: CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0
# CYGINT_IO_SERIAL_FLOW_CONTROL_HW == 0
# --> 0
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 ?
CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS : 0
# CYGINT_IO_SERIAL_FLOW_CONTROL_HW == 0
# CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS == 0
# --> 0
# Requires: CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0
# CYGINT_IO_SERIAL_FLOW_CONTROL_HW == 0
# --> 0
# Requires: CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
# CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS == 0
# --> 0
# The following properties are affected by this value
# component CYGPKG_IO_SERIAL_FLOW_CONTROL
# Requires: (CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE ||
CYGOPT_IO_SERIAL_FLOW_CONTROL_HW)
};
# Serial h/w supports hardware flow control
#
cdl_interface CYGINT_IO_SERIAL_FLOW_CONTROL_HW {
# No options implement this inferface
# This option is not active
# The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
# The following properties are affected by this value
# option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
# ActiveIf: CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0
# option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
# Requires: CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0
# option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
# DefaultValue: CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 ?
CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS : 0
};
# Default flow control method
# This option allows a default flow control method
# to be defined. Combinations of flow control methods
# may also be set, but this is only possible by
# using the cyg_io_set_config() API in source code.
#
cdl_option CYGDAT_IO_SERIAL_FLOW_CONTROL_DEFAULT {
# This option is not active
# The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value NONE
# value_source default
# Default value: NONE
# Legal values: "NONE" "XONXOFF" "RTSCTS" "DSRDTR"
};
# Rx flow control low water mark
# This sets the water mark used for determining
# when to disable flow control, expressed
# as a percentage of the buffer size. When the
# receive buffer size is lower than this percentage,
# if the transmitter had previously been throttled, it
# will now be informed it can restart.
#
cdl_option CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT {
# This option is not active
# The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value 33
# value_source default
# Default value: 33
# Legal values: 1 to 100
# The following properties are affected by this value
# option CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT
# Requires: CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT
>= CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT
};
# Rx flow control high water mark
# This sets the water mark used for determining
# when to enable flow control, expressed
# as a percentage of the buffer size. When the
# receive buffer size exceeds this percentage,
# signals are sent to the transmitter to tell it
# to throttle tranmission.
#
cdl_option CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT {
# This option is not active
# The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value 66
# value_source default
# Default value: 66
# Legal values: 1 to 100
# Requires: CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT >=
CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT
# CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT == 0
# CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT == 0
# --> 1
# The following properties are affected by this value
# option CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT
# Requires: CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT
>= CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT
};
# <
# TTY-mode serial device drivers
# This option enables a simple terminal-like device driver
# that can be used for serial devices that interact with humans,
# such as a system console.
#
cdl_component CYGPKG_IO_SERIAL_TTY {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
};
# >
# HAL/diag serial device driver
# This option enables the use of the HAL diagnostic channel
# via the standard I/O drivers.
#
cdl_component CYGPKG_IO_SERIAL_HALDIAG {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
# The following properties are affected by this value
# package CYGPKG_LIBC_STDIO
# Requires: (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE ==
"\"/dev/ttydiag\"" ? CYGPKG_IO_SERIAL_HALDIAG : 1)
};
# Console device name
# This option selects the TTY device to use for the console.
#
cdl_option CYGDAT_IO_SERIAL_TTY_CONSOLE {
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value "\"/dev/ttydiag\""
# value_source default
# Default value: "\"/dev/ttydiag\""
# The following properties are affected by this value
# option CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE
# DefaultValue: CYGDAT_IO_SERIAL_TTY_CONSOLE
};
# TTY mode HAL/diag channel
# This option causes '/dev/ttydiag' to be included in the standard
# drivers.
#
cdl_component CYGPKG_IO_SERIAL_TTY_TTYDIAG {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
};
# TTY mode channel #0
# This option causes '/dev/tty0' to be included in the standard
# drivers.
#
cdl_component CYGPKG_IO_SERIAL_TTY_TTY0 {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
};
# >
# TTY mode channel #0 device
# This option selects the physical device to use for
# '/dev/tty0'.
#
cdl_option CYGDAT_IO_SERIAL_TTY_TTY0_DEV {
# This option is not active
# The parent CYGPKG_IO_SERIAL_TTY_TTY0 is disabled
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value "\"/dev/ser0\""
# value_source default
# Default value: "\"/dev/ser0\""
};
# <
# TTY mode channel #1
# This option causes '/dev/tty1' to be included in the standard
# drivers.
#
cdl_component CYGPKG_IO_SERIAL_TTY_TTY1 {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
};
# >
# TTY mode channel #1 device
# This option selects the physical device to use for
# '/dev/tty1'.
#
cdl_option CYGDAT_IO_SERIAL_TTY_TTY1_DEV {
# This option is not active
# The parent CYGPKG_IO_SERIAL_TTY_TTY1 is disabled
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value "\"/dev/ser1\""
# value_source default
# Default value: "\"/dev/ser1\""
};
# <
# TTY mode channel #2
# This option causes '/dev/tty2' to be included in the standard
# drivers.
#
cdl_component CYGPKG_IO_SERIAL_TTY_TTY2 {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
};
# >
# TTY mode channel #2 device
# This option selects the physical device to use for
# '/dev/tty2'.
#
cdl_option CYGDAT_IO_SERIAL_TTY_TTY2_DEV {
# This option is not active
# The parent CYGPKG_IO_SERIAL_TTY_TTY2 is disabled
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value "\"/dev/ser2\""
# value_source default
# Default value: "\"/dev/ser2\""
};
# <
# <
# Termios compatible TTY drivers
# This option enables terminal drivers compatible with
# POSIX termios.
#
cdl_component CYGPKG_IO_SERIAL_TERMIOS {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 0 != CYGPKG_ISOINFRA && 0 != CYGPKG_IO_FILEIO &&
0 != CYGINT_ISO_ERRNO_CODES && 0 != CYGINT_ISO_ERRNO
# CYGPKG_ISOINFRA == current
# CYGPKG_IO_FILEIO == current
# CYGINT_ISO_ERRNO_CODES == 1
# CYGINT_ISO_ERRNO == 1
# --> 1
# Requires: CYGPKG_ISOINFRA
# CYGPKG_ISOINFRA == current
# --> 1
# Requires: CYGPKG_IO_FILEIO
# CYGPKG_IO_FILEIO == current
# --> 1
# Requires: CYGINT_ISO_ERRNO_CODES
# CYGINT_ISO_ERRNO_CODES == 1
# --> 1
# Requires: CYGINT_ISO_ERRNO
# CYGINT_ISO_ERRNO == 1
# --> 1
# Requires: CYGINT_ISO_MALLOC
# CYGINT_ISO_MALLOC == 1
# --> 1
};
# >
# Interface for termios tty driver file enabling
#
cdl_interface CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY {
# Implemented by CYGPKG_IO_SERIAL_TERMIOS_TERMIOS0, active, disabled
# Implemented by CYGPKG_IO_SERIAL_TERMIOS_TERMIOS1, active, disabled
# Implemented by CYGPKG_IO_SERIAL_TERMIOS_TERMIOS2, active, disabled
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
# The following properties are affected by this value
# option CYGBLD_IO_SERIAL_TERMIOS_TERMIOS_TTY
# ActiveIf: CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY > 0
};
# Build termios tty driver file
#
cdl_option CYGBLD_IO_SERIAL_TERMIOS_TERMIOS_TTY {
# This option is not active
# ActiveIf constraint: CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY > 0
# CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY == 0
# --> 0
# Calculated value: 1
# Flavor: bool
# Current value: 1
};
# Termios TTY channel #0
# This option causes '/dev/termios0' to be included in the standard
# drivers.
#
cdl_component CYGPKG_IO_SERIAL_TERMIOS_TERMIOS0 {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
};
# >
# Termios TTY channel #0 device
# This option selects the physical device to use for
# '/dev/termios0'.
#
cdl_option CYGDAT_IO_SERIAL_TERMIOS_TERMIOS0_DEV {
# This option is not active
# The parent CYGPKG_IO_SERIAL_TERMIOS_TERMIOS0 is disabled
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value "\"/dev/ser0\""
# value_source default
# Default value: "\"/dev/ser0\""
};
# <
# Termios TTY channel #1
# This option causes '/dev/termios1' to be included in the standard
# drivers.
#
cdl_component CYGPKG_IO_SERIAL_TERMIOS_TERMIOS1 {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
};
# >
# Termios TTY channel #1 device
# This option selects the physical device to use for
# '/dev/termios1'.
#
cdl_option CYGDAT_IO_SERIAL_TERMIOS_TERMIOS1_DEV {
# This option is not active
# The parent CYGPKG_IO_SERIAL_TERMIOS_TERMIOS1 is disabled
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value "\"/dev/ser1\""
# value_source default
# Default value: "\"/dev/ser1\""
};
# <
# Termios TTY channel #2
# This option causes '/dev/termios2' to be included in the standard
# drivers.
#
cdl_component CYGPKG_IO_SERIAL_TERMIOS_TERMIOS2 {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
};
# >
# Termios TTY channel #2 device
# This option selects the physical device to use for
# '/dev/termios2'.
#
cdl_option CYGDAT_IO_SERIAL_TERMIOS_TERMIOS2_DEV {
# This option is not active
# The parent CYGPKG_IO_SERIAL_TERMIOS_TERMIOS2 is disabled
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value "\"/dev/ser2\""
# value_source default
# Default value: "\"/dev/ser2\""
};
# <
# Support signals
# This option selects whether those parts of the termios
# interface involving signals is supported. This includes
# BRKINT mode, the INTR and QUIT characters, and whether
# SIGHUP is sent on terminal close.
#
cdl_option CYGSEM_IO_SERIAL_TERMIOS_USE_SIGNALS {
# Flavor: bool
user_value 1
# value_source user
# Default value: CYGINT_ISO_SIGNAL_NUMBERS != 0 &&
CYGINT_ISO_SIGNAL_IMPL != 0
# CYGINT_ISO_SIGNAL_NUMBERS == 1
# CYGINT_ISO_SIGNAL_IMPL == 1
# --> 1
# Requires: CYGINT_ISO_SIGNAL_NUMBERS
# CYGINT_ISO_SIGNAL_NUMBERS == 1
# --> 1
# Requires: CYGINT_ISO_SIGNAL_IMPL
# CYGINT_ISO_SIGNAL_IMPL == 1
# --> 1
};
# <
# Hardware serial device drivers
# This option enables the hardware device drivers
# for the current platform.
#
cdl_component CYGPKG_IO_SERIAL_DEVICES {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
# The following properties are affected by this value
# option CYGPKG_IO_SERIAL_TESTS
# Calculated: CYGPKG_IO_SERIAL_DEVICES ? "tests/serial1
tests/serial2 tests/serial3 tests/serial4 tests/serial5 tests/tty1
tests/tty2 tests/flow1 tests/flow2" : ""
};
# Build extra serial tests
# This option enables the building of some extra tests which
# can be used when testing / debugging serial drivers. These
# are not built by default since they do not use the dedicated
# testing infrastructure.
#
cdl_option CYGBLD_IO_SERIAL_EXTRA_TESTS {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
};
# Serial device driver build options
# Package specific build options including control over
# compiler flags used only in building this package,
# and details of which tests are built.
#
cdl_component CYGPKG_IO_SERIAL_OPTIONS {
# There is no associated value.
};
# >
# Additional compiler flags
# This option modifies the set of compiler flags for
# building the serial device drivers. These flags are used in addition
# to the set of global flags.
#
cdl_option CYGPKG_IO_SERIAL_CFLAGS_ADD {
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value ""
# value_source default
# Default value: ""
};
# Suppressed compiler flags
# This option modifies the set of compiler flags for
# building the serial device drivers. These flags are removed from
# the set of global flags if present.
#
cdl_option CYGPKG_IO_SERIAL_CFLAGS_REMOVE {
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value ""
# value_source default
# Default value: ""
};
# Serial device driver tests
# This option specifies the set of tests for the serial device drivers.
#
cdl_option CYGPKG_IO_SERIAL_TESTS {
# Calculated value: CYGPKG_IO_SERIAL_DEVICES ? "tests/serial1
tests/serial2 tests/serial3 tests/serial4 tests/serial5 tests/tty1
tests/tty2 tests/flow1 tests/flow2" : ""
# CYGPKG_IO_SERIAL_DEVICES == 0
# Flavor: data
# Current_value:
};
# <
# Enable serial device select support
# This option enables support for the select() API function on all
# serial devices.
#
cdl_option CYGPKG_IO_SERIAL_SELECT_SUPPORT {
# ActiveIf constraint: CYGPKG_IO_FILEIO
# CYGPKG_IO_FILEIO == current
# --> 1
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
# Requires: CYGPKG_IO_FILEIO
# CYGPKG_IO_FILEIO == current
# --> 1
};
# Serial testing specification
#
cdl_component CYGPKG_IO_SERIAL_TEST_SPECS {
# Calculated value: 1
# Flavor: bool
# Current value: 1
};
# >
# Skip 9600 baud testing
#
cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_9600 {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
};
# Skip 14400 baud testing
#
cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_14400 {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
};
# Skip 19200 baud testing
#
cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_19200 {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
};
# Skip 38400 baud testing
#
cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_38400 {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
};
# Skip 57600 baud testing
#
cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_57600 {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
};
# Skip 115200 baud testing
#
cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_115200 {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
};
# Skip even-parity testing
#
cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_PARITY_EVEN {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
};
# Skip odd-parity testing
#
cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_PARITY_ODD {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
};
# Skip 2-stop bit testing
#
cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_STOP_2 {
# No options implement this inferface
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
};
# <
# <
# Infrastructure
# Common types and useful macros.
# Tracing and assertion facilities.
# Package startup options.
#
cdl_package CYGPKG_INFRA {
# Packages cannot be added or removed, nor can their version be
changed,
# simply by editing their value. Instead the appropriate
configuration
# should be used to perform these actions.
# This value cannot be modified here.
# Flavor: booldata
# Current value: 1 current
# The following properties are affected by this value
# package CYGPKG_HAL
# Requires: CYGPKG_INFRA
};
# >
# Asserts & Tracing
# The eCos source code contains a significant amount of
# internal debugging support, in the form of assertions and
# tracing.
# Assertions check at runtime that various conditions are as
# expected; if not, execution is halted.
# Tracing takes the form of text messages that are output
# whenever certain events occur, or whenever functions are
# called or return.
# The most important property of these checks and messages is
# that they are not required for the program to run.
# It is prudent to develop software with assertions enabled,
# but disable them when making a product release, thus
# removing the overhead of that checking.
# It is possible to enable assertions and tracing
# independently.
# There are also options controlling the exact behaviour of
# the assertion and tracing facilities, thus giving users
# finer control over the code and data size requirements.
#
cdl_component CYGPKG_INFRA_DEBUG {
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
# The following properties are affected by this value
# component CYGFUN_KERNEL_THREADS_STACK_CHECKING
# ActiveIf: CYGPKG_INFRA_DEBUG
# component CYGFUN_KERNEL_THREADS_STACK_MEASUREMENT
# DefaultValue: 0 != CYGPKG_INFRA_DEBUG
# option CYGPKG_KERNEL_TESTS
# Calculated:
# "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2
tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth
tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1
tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0
tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1
tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2"
# . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0
tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0
tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3
tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0
tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice
tests/tm_basic tests/fptest tests/kalarm0" : "")
# . ((!CYGPKG_INFRA_DEBUG &&
!CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" :
"")
# . ((CYGPKG_KERNEL_SMP_SUPPORT &&
CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
# . ((!CYGINT_HAL_TESTS_NO_CACHES &&
CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
#
# option CYGDBG_FS_FAT_NODE_CACHE_EXTRA_CHECKS
# ActiveIf: CYGPKG_INFRA_DEBUG && CYGDBG_USE_ASSERTS
};
# >
# Use asserts
# If this option is defined, asserts in the code are tested.
# Assert functions (CYG_ASSERT()) are defined in
# 'include/cyg/infra/cyg_ass.h' within the 'install' tree.
# If it is not defined, these result in no additional
# object code and no checking of the asserted conditions.
#
cdl_component CYGDBG_USE_ASSERTS {
# This option is not active
# The parent CYGPKG_INFRA_DEBUG is disabled
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
# Requires: 1 == CYGINT_INFRA_DEBUG_TRACE_IMPL
# CYGINT_INFRA_DEBUG_TRACE_IMPL == 0
# --> 0
# The following properties are affected by this value
# component CYGFUN_KERNEL_THREADS_STACK_CHECKING
# ActiveIf: CYGDBG_USE_ASSERTS
# option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
# Requires: CYGDBG_USE_ASSERTS
# option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
# DefaultValue: 0 != CYGDBG_USE_ASSERTS
# option CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL
# Requires: CYGDBG_USE_ASSERTS
# option CYGDBG_FS_FAT_NODE_CACHE_EXTRA_CHECKS
# ActiveIf: CYGPKG_INFRA_DEBUG && CYGDBG_USE_ASSERTS
};
# >
# Preconditions
# This option allows individual control of preconditions.
# A precondition is one type of assert, which it is
# useful to control separately from more general asserts.
# The function is CYG_PRECONDITION(condition,msg).
#
cdl_option CYGDBG_INFRA_DEBUG_PRECONDITIONS {
# This option is not active
# The parent CYGDBG_USE_ASSERTS is not active
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
};
# Postconditions
# This option allows individual control of postconditions.
# A postcondition is one type of assert, which it is
# useful to control separately from more general asserts.
# The function is CYG_POSTCONDITION(condition,msg).
#
cdl_option CYGDBG_INFRA_DEBUG_POSTCONDITIONS {
# This option is not active
# The parent CYGDBG_USE_ASSERTS is not active
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
};
# Loop invariants
# This option allows individual control of loop invariants.
# A loop invariant is one type of assert, which it is
# useful to control separately from more general asserts,
# particularly since a loop invariant is typically evaluated
# a great many times when used correctly.
# The function is CYG_LOOP_INVARIANT(condition,msg).
#
cdl_option CYGDBG_INFRA_DEBUG_LOOP_INVARIANTS {
# This option is not active
# The parent CYGDBG_USE_ASSERTS is not active
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
};
# Use assert text
# All assertions within eCos contain a text message
# which should give some information about the condition
# being tested.
# These text messages will end up being embedded in the
# application image and hence there is a significant penalty
# in terms of image size.
# It is possible to suppress the use of these messages by
# disabling this option.
# This results in smaller code size, but there is less
# human-readable information if an assertion actually gets
# triggered.
#
cdl_option CYGDBG_INFRA_DEBUG_ASSERT_MESSAGE {
# This option is not active
# The parent CYGDBG_USE_ASSERTS is not active
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
};
# <
# Use tracing
# If this option is defined, tracing operations
# result in output or logging, depending on other options.
# This may have adverse effects on performance, if the time
# taken to output message overwhelms the available CPU
# power or output bandwidth.
# Trace functions (CYG_TRACE()) are defined in
# 'include/cyg/infra/cyg_trac.h' within the 'install' tree.
# If it is not defined, these result in no additional
# object code and no trace information.
#
cdl_component CYGDBG_USE_TRACING {
# This option is not active
# The parent CYGPKG_INFRA_DEBUG is disabled
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
# Requires: 1 == CYGINT_INFRA_DEBUG_TRACE_IMPL
# CYGINT_INFRA_DEBUG_TRACE_IMPL == 0
# --> 0
# The following properties are affected by this value
# option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE
# ActiveIf: CYGDBG_USE_TRACING
# option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_WRAP
# ActiveIf: CYGDBG_USE_TRACING
# option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_HALT
# ActiveIf: CYGDBG_USE_TRACING
# option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT
# ActiveIf: CYGDBG_USE_TRACING
# option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT_ON_ASSERT
# ActiveIf: CYGDBG_USE_TRACING
# option CYGDBG_KERNEL_TRACE_TIMESLICE
# ActiveIf: CYGDBG_USE_TRACING
# component CYGPKG_LIBM_TRACE
# Requires: CYGDBG_USE_TRACING
};
# >
# Trace function reports
# This option allows individual control of
# function entry/exit tracing, independent of
# more general tracing output.
# This may be useful to remove clutter from a
# trace log.
#
cdl_option CYGDBG_INFRA_DEBUG_FUNCTION_REPORTS {
# This option is not active
# The parent CYGDBG_USE_TRACING is not active
# The parent CYGDBG_USE_TRACING is disabled
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
};
# Use trace text
# All trace calls within eCos contain a text message
# which should give some information about the circumstances.
# These text messages will end up being embedded in the
# application image and hence there is a significant penalty
# in terms of image size.
# It is possible to suppress the use of these messages by
# disabling this option.
# This results in smaller code size, but there is less
# human-readable information available in the trace output,
# possibly only filenames and line numbers.
#
cdl_option CYGDBG_INFRA_DEBUG_TRACE_MESSAGE {
# This option is not active
# The parent CYGDBG_USE_TRACING is not active
# The parent CYGDBG_USE_TRACING is disabled
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
};
# <
# Trace output implementations
#
cdl_interface CYGINT_INFRA_DEBUG_TRACE_IMPL {
# Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_NULL, inactive,
disabled
# Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE, inactive,
disabled
# Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY, inactive,
disabled
# Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER, inactive,
enabled
# This option is not active
# The parent CYGPKG_INFRA_DEBUG is disabled
# This value cannot be modified here.
# Flavor: data
# Current_value: 0
# The following properties are affected by this value
# component CYGDBG_USE_ASSERTS
# Requires: 1 == CYGINT_INFRA_DEBUG_TRACE_IMPL
# component CYGDBG_USE_TRACING
# Requires: 1 == CYGINT_INFRA_DEBUG_TRACE_IMPL
};
# Null output
# A null output module which is useful when
# debugging interactively; the output routines
# can be breakpointed rather than have them actually
# 'print' something.
#
cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_NULL {
# This option is not active
# The parent CYGPKG_INFRA_DEBUG is disabled
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
};
# Simple output
# An output module which produces simple output
# from tracing and assertion events.
#
cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE {
# This option is not active
# The parent CYGPKG_INFRA_DEBUG is disabled
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
# The following properties are affected by this value
# option CYGDBG_KERNEL_TRACE_TIMESLICE
# Requires: !CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE
};
# Fancy output
# An output module which produces fancy output
# from tracing and assertion events.
#
cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY {
# This option is not active
# The parent CYGPKG_INFRA_DEBUG is disabled
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
# The following properties are affected by this value
# option CYGDBG_KERNEL_TRACE_TIMESLICE
# Requires: !CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY
};
# Buffered tracing
# An output module which buffers output
# from tracing and assertion events. The stored
# messages are output when an assert fires, or
# CYG_TRACE_PRINT() (defined in <cyg/infra/cyg_trac.h>)
# is called.
# Of course, there will only be stored messages
# if tracing per se (CYGDBG_USE_TRACING)
# is enabled above.
#
cdl_component CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER {
# This option is not active
# The parent CYGPKG_INFRA_DEBUG is disabled
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
};
# >
# Trace buffer size
# The size of the trace buffer. This counts the number
# of trace records stored. When the buffer fills it
# either wraps, stops recording, or generates output.
#
cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE {
# This option is not active
# The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active
# ActiveIf constraint: CYGDBG_USE_TRACING
# CYGDBG_USE_TRACING == 0
# --> 0
# Flavor: data
# No user value, uncomment the following line to provide one.
# user_value 32
# value_source default
# Default value: 32
# Legal values: 5 to 65535
};
# Wrap trace buffer when full
# When the trace buffer has filled with records it
# starts again at the beginning. Hence only the last
# CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE messages will
# be recorded.
#
cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_WRAP {
# This option is not active
# The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active
# ActiveIf constraint: CYGDBG_USE_TRACING
# CYGDBG_USE_TRACING == 0
# --> 0
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 1
# value_source default
# Default value: 1
};
# Halt trace buffer when full
# When the trace buffer has filled with records it
# stops recording. Hence only the first
# CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE messages will
# be recorded.
#
cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_HALT {
# This option is not active
# The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active
# ActiveIf constraint: CYGDBG_USE_TRACING
# CYGDBG_USE_TRACING == 0
# --> 0
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
# value_source default
# Default value: 0
};
# Print trace buffer when full
# When the trace buffer has filled with records it
# prints the contents of the buffer. The buffer is then
# emptied and the system continues.
#
cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT {
# This option is not active
# The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active
# ActiveIf constraint: CYGDBG_USE_TRACING
# CYGDBG_USE_TRACING == 0
# --> 0
# Flavor: bool
# No user value, uncomment the following line to provide one.
# user_value 0
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss