📄 kernel.cdl
字号:
# ====================================================================
#
# kernel.cdl
#
# eCos kernel configuration data
#
# ====================================================================
#####ECOSGPLCOPYRIGHTBEGIN####
## -------------------------------------------
## This file is part of eCos, the Embedded Configurable Operating System.
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
##
## eCos is free software; you can redistribute it and/or modify it under
## the terms of the GNU General Public License as published by the Free
## Software Foundation; either version 2 or (at your option) any later version.
##
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
## WARRANTY; without even the implied warranty of MERCHANTABILITY or
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
## for more details.
##
## You should have received a copy of the GNU General Public License along
## with eCos; if not, write to the Free Software Foundation, Inc.,
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
##
## As a special exception, if other files instantiate templates or use macros
## or inline functions from this file, or you compile this file and link it
## with other works to produce a work based on this file, this file does not
## by itself cause the resulting work to be covered by the GNU General Public
## License. However the source code for this file must still be made available
## in accordance with section (3) of the GNU General Public License.
##
## This exception does not invalidate any other reasons why a work based on
## this file might be covered by the GNU General Public License.
##
## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
## at http://sources.redhat.com/ecos/ecos-license/
## -------------------------------------------
#####ECOSGPLCOPYRIGHTEND####
# ====================================================================
######DESCRIPTIONBEGIN####
#
# Author(s): bartv
# Original data: nickg
# Contributors:
# Date: 1999-06-13
#
#####DESCRIPTIONEND####
#
# ====================================================================
cdl_package CYGPKG_KERNEL {
display "eCos kernel"
doc ref/kernel.html
include_dir cyg/kernel
description "
This package contains the core functionality of the eCos
kernel. It relies on functionality provided by various HAL
packages and by the eCos infrastructure. In turn the eCos
kernel provides support for other packages such as the device
drivers and the uITRON compatibility layer."
# FIXME: The compile statement should be split up and integrated as
# part of the components - so files only get comiled when they
# will actually be used.
compile common/clock.cxx common/timer.cxx common/kapi.cxx \ common/thread.cxx common/except.cxx \ intr/intr.cxx \ sched/bitmap.cxx sched/lottery.cxx sched/mlqueue.cxx \ sched/sched.cxx \ sync/bin_sem.cxx sync/cnt_sem.cxx sync/flag.cxx \ sync/cnt_sem2.cxx sync/mbox.cxx sync/mutex.cxx \ debug/dbg-thread-demux.c
# ---------------------------------------------------------------------
# The first component within the kernel is related to interrupt
# handling.
cdl_component CYGPKG_KERNEL_INTERRUPTS {
display "Kernel interrupt handling"
flavor none
doc ref/kernel-interrupts.html
description "
The majority of configuration options related to interrupt
handling are in the HAL packages, since usually the code has
to be platform-specific. There are a number of options
provided within the kernel related to slightly higher-level
concepts, for example Delayed Service Routines."
script interrupts.cdl
}
# ---------------------------------------------------------------------
# Exceptions. Currently there are only two options. The first
# determines whether or not exceptions are enabled at all. The
# second controls whether they apply globally or on a per-thread
# basis. There should probably be more options, but the boundary
# between the HAL and kernel becomes blurred.
cdl_component CYGPKG_KERNEL_EXCEPTIONS {
display "Exception handling"
requires CYGPKG_HAL_EXCEPTIONS
default_value 1
doc ref/kernel-exceptions.html
description "
In the context of the eCos kernel exceptions are unexpected
events detected by the hardware, for example an attempt to
execute an illegal instruction. There is no relation with
other forms of exception, for example the catch and throw
facilities of languages like C++. It is possible to disable
all support for exceptions and thus save some memory."
cdl_option CYGSEM_KERNEL_EXCEPTIONS_DECODE {
display "Decode exception types in kernel"
default_value 0
description "
On targets where several different types of exception are
possible, for example executing an illegal instruction and
division by zero, it is possible for the kernel to do some
decoding of the exception type and deliver the different
types of exception to different handlers in the application
code. Alternatively the kernel can simply pass all
exceptions directly to application code, leaving the
decoding to be done by the application"
}
cdl_option CYGSEM_KERNEL_EXCEPTIONS_GLOBAL {
display "Use global exception handlers"
default_value 1
description "
In the context of the eCos kernel exceptions are
unexpected events detected by the hardware, for
example an attempt to execute an illegal
instruction. If the kernel is configured
to support exceptions then two implementations are
possible. The default implementation involves a single set
of exception handlers that are in use for the entire
system. The alternative implementation allows different
exception handlers to be specified for each thread."
}
}
# ---------------------------------------------------------------------
cdl_component CYGPKG_KERNEL_SCHED {
display "Kernel schedulers"
flavor none
doc ref/kernel-overview.html#KERNEL-OVERVIEW-SCHEDULERS
description "
The eCos kernel provides a choice of schedulers. In addition
there are a number of configuration options to control the
detailed behaviour of these schedulers."
script scheduler.cdl
}
# ---------------------------------------------------------------------
# SMP support
cdl_component CYGPKG_KERNEL_SMP_SUPPORT {
display "SMP support"
flavor bool
requires CYGPKG_HAL_SMP_SUPPORT
default_value 0
}
# ---------------------------------------------------------------------
cdl_component CYGPKG_KERNEL_COUNTERS {
display "Counters and clocks"
flavor none
doc ref/kernel-counters.html
description "
The counter objects provided by the kernel provide an
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -