📄 ecos.ecc
字号:
};
# <
# SST 39VFXXX FLASH memory support
# FLASH memory device support for SST 39VFXXX
#
cdl_package CYGPKG_DEVS_FLASH_SST_39VFXXX {
# 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_FLASH
# CYGPKG_IO_FLASH == current
# --> 1
# ActiveIf constraint: CYGINT_DEVS_FLASH_SST_39VFXXX_REQUIRED
# CYGINT_DEVS_FLASH_SST_39VFXXX_REQUIRED == 1
# --> 1
# This value cannot be modified here.
# Flavor: booldata
# Current value: 1 current
};
# <
# 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
# The following properties are affected by this value
};
# >
# 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 0
# value_source default
# Default value: CYG_HAL_STARTUP != "RAM"
# CYG_HAL_STARTUP == RAM
# --> 0
# 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 {
# 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 == current
# CYGPKG_HAL_POWERPC_MPC8xx (unknown) == 0
# CYGPKG_HAL_V85X_V850 (unknown) == 0
# CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 1
# --> 1
# Flavor: bool
user_value 0
# value_source user
# Default value: (CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS || CYG_HAL_STARTUP == "RAM") ? 1 : 0
# CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
# CYG_HAL_STARTUP == RAM
# --> 1
# 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 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
# option CYGBLD_BUILD_GDB_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.
#
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -