📄 hal.cdl
字号:
# ====================================================================
#
# hal.cdl
#
# HAL configuration data
#
# ====================================================================
#####COPYRIGHTBEGIN####
#
# -------------------------------------------
# The contents of this file are subject to the Red Hat eCos Public License
# Version 1.1 (the "License"); you may not use this file except in
# compliance with the License. You may obtain a copy of the License at
# http://www.redhat.com/
#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
# License for the specific language governing rights and limitations under
# the License.
#
# The Original Code is eCos - Embedded Configurable Operating System,
# released September 30, 1998.
#
# The Initial Developer of the Original Code is Red Hat.
# Portions created by Red Hat are
# Copyright (C) 1998, 1999, 2000, 2001 Red Hat, Inc.
# All Rights Reserved.
# -------------------------------------------
#
#####COPYRIGHTEND####
# ====================================================================
######DESCRIPTIONBEGIN####
#
# Author(s): bartv
# Original data: nickg,jskov,jlarmour
# Contributors: dmoseley
# Date: 1999-06-13
#
#####DESCRIPTIONEND####
#
# ====================================================================
cdl_package CYGPKG_HAL {
display "eCos HAL"
include_dir cyg/hal
description "
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."
doc redirect/the-ecos-hardware-abstraction-layer-hal.html
compile generic-stub.c thread-packets.c hal_stub.c drv_api.c bplist-dynamic.c
compile -library=libextras.a dummy.c
make -priority 250 {
<PREFIX>/lib/extras.o: <PREFIX>/lib/libextras.a
$(CC) $(CFLAGS) -nostdlib -Wl,-r -Wl,--whole-archive -o $@ $<
}
cdl_component CYGPKG_HAL_COMMON {
display "Platform-independent HAL options"
flavor none
description "
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."
script common.cdl
}
cdl_component CYGPKG_HAL_COMMON_INTERRUPTS {
display "HAL interrupt handling"
flavor none
description "
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."
script interrupts.cdl
}
cdl_component CYGPKG_HAL_COMMON_CONTEXT {
display "HAL context switch support"
flavor none
description "
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_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
display "Use minimum thread context"
parent CYGPKG_HAL_COMMON_CONTEXT
default_value 1
description "
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_component CYGPKG_HAL_CACHE_CONTROL {
display "Explicit control over cache behaviour"
flavor none
no_define
description "
These options let the default behaviour of the caches
be easily configurable."
cdl_option CYGSEM_HAL_ENABLE_DCACHE_ON_STARTUP {
display "Enable DATA cache on startup"
default_value 1
description "
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_option CYGSEM_HAL_ENABLE_ICACHE_ON_STARTUP {
display "Enable INSTRUCTION cache on startup"
default_value 1
description "
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_component CYGPKG_HAL_DEBUG {
display "Source-level debugging support"
flavor none
description "
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."
script debugging.cdl
}
cdl_component CYGPKG_HAL_ROM_MONITOR {
display "ROM monitor support"
flavor none
no_define
description "
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_interface CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT {
display "Target has virtual vector support"
no_define
}
cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT_NOT_GUARANTEED {
display "The platform port predates virtual vectors"
no_define
description "
Many platform HALs have adopted the virtual vector support
only after its introduction. On those platforms, old ROM
monitors will not provide the necessary services - and
so the use of these services should be disabled per default.
Newer ports, however, guarantee to provide the necessary
services in all ROM monitors, and so default to use the
services."
}
cdl_component CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT {
display "Enable use of virtual vector calling interface"
active_if CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
calculated 1
description "
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."
compile hal_if.c hal_misc.c
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE {
display "Inherit console settings from ROM monitor"
active_if CYGSEM_HAL_USE_ROM_MONITOR
default_value { !CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT_NOT_GUARANTEED \
&& !CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS }
description "
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 CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE {
display "Debug channel is configurable"
calculated { CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS }
description "
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_CONSOLE_CHANNEL_CONFIGURABLE {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -