📄 ecos.ecc
字号:
# 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 0
# value_source default
# Default value: CYGPKG_KERNEL_EXCEPTIONS
# CYGPKG_KERNEL_EXCEPTIONS (unknown) == 0
# --> 0
# Requires: CYGPKG_KERNEL_EXCEPTIONS
# CYGPKG_KERNEL_EXCEPTIONS (unknown) == 0
# --> 0
};
# 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 (unknown) == 0
# --> 0
};
# 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 {
# 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 == 1
# CYG_HAL_STARTUP == ROM
# --> 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
user_value 0
# value_source user
# Default value: 1
# The following properties are affected by this value
# package CYGPKG_REDBOOT
# Requires: CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0
};
# 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
user_value 4096
# value_source user
# Default value: CYGPKG_KERNEL ? 4096 : 32768
# CYGPKG_KERNEL (unknown) == 0
# --> 32768
# 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
user_value 0
# value_source user
# 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
# component CYGBLD_BUILD_REDBOOT
# 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
};
# 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
# The inferred value should not be edited directly.
inferred_value 0
# value_source inferred
# 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
# option CYGBLD_BUILD_GDB_STUBS
# Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
# component CYGBLD_BUILD_REDBOOT
# 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,
#
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -