📄 uitron.cdl
字号:
# ====================================================================
#
# uitron.cdl
#
# uITRON 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: hmt
# Contributors:
# Date: 1999-06-13
#
#####DESCRIPTIONEND####
#
# ====================================================================
cdl_package CYGPKG_UITRON {
display "uITRON compatibility layer"
include_dir cyg/compat/uitron
doc ref/compat-uitron.html
requires CYGPKG_KERNEL
description "
eCos supports a uITRON Compatibility Layer, providing
full Level S (Standard) compliance with Version 3.02 of
the uITRON Standard, plus many Level E (Extended) features.
uITRON is the premier Japanese embedded RTOS standard."
compile uit_func.cxx uit_ifnc.cxx uit_objs.cxx
# ------------------------------------------------------------------------
# Conformance check
# ------------------------------------------------------------------------
cdl_interface CYGINT_UITRON_CONFORMANCE {
requires 1 == CYGINT_UITRON_CONFORMANCE
}
cdl_option CYGIMP_UITRON_STRICT_CONFORMANCE {
display "Check strict uITRON standards conformance"
default_value 0
requires CYGVAR_KERNEL_COUNTERS_CLOCK
requires CYGSEM_KERNEL_SCHED_MLQUEUE
requires !CYGSEM_KERNEL_SCHED_TIMESLICE
requires CYGFUN_KERNEL_THREADS_TIMER
implements CYGINT_UITRON_CONFORMANCE
description "
Require the rest of the system configuration
to match the needs of strict uITRON standards conformance.
This option can only be set if the rest of the system is
configured correctly for uITRON semantics, for example
there must be a realtime clock, a suitable scheduler, and no
timeslicing.
Of course a system without this selected can be completely
conformant; this is here to help you check."
}
cdl_option CYGIMP_UITRON_LOOSE_CONFORMANCE {
display "System configuration overrides uITRON"
default_value 1
implements CYGINT_UITRON_CONFORMANCE
description "
Do not require the rest of the system configuration
to match the needs of strict uITRON standards conformance.
For example a bitmap scheduler, or timeslicing, can be used
with the uITRON functions, but such an environment is not
strictly conformant with the uITRON specification.
Of course a system with this selected can be completely
conformant; but it is up to you to configure it correctly."
}
# ------------------------------------------------------------------------
# uITRON FUNCTION CALLS
# ------------------------------------------------------------------------
cdl_option CYGIMP_UITRON_INLINE_FUNCS {
display "Inline functions"
default_value 0
description "
If compiling your application with a C++ compiler,
uITRON functions can be inline: set this to make it so.
Inlining functions often increases execution speed,
though possibly at the cost of a larger executable,
depending on what functions are used.
Do NOT set this if compiling your application
in plain C."
}
cdl_option CYGIMP_UITRON_CPP_OUTLINE_FUNCS {
display "C++ function names"
default_value 0
description "
If compiling your application with a C++ compiler,
uITRON functions can be given C++ style mangled names:
set this to make it so.
This option may make debugging your program easier,
depending on your development environment.
Do NOT set this if compiling your application
in plain C."
}
cdl_option CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS {
display "Return error codes for bad params"
default_value 1
description "
When an application is fully debugged there is no need
to check for bad parameters on every system call, for those
parameters which are typically pointers or constants.
Removing the checking code saves space
and improves performance: set this to make it so.
When this option is set, the correctness of parameters
is asserted using CYG_ASSERT() which compiles to
nothing in a non-debug configuration."
}
cdl_option CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR {
display "NULL is a good pointer"
default_value 0
description "
uITRON deliberately defines the constant NADR (-1) for
use as an invalid memory address.
The value -1 is chosen to allow working in microcontrollers
which have real memory at address zero, the traditional 'C'
NULL pointer.
By default, uITRON functions check for both NULL and NADR as
bad addresses: set this option to prevent checking for
NULL and allow pointers to address zero to be used."
}
# ------------------------------------------------------------------------
# uITRON KERNEL OBJECTS
# ------------------------------------------------------------------------
cdl_component CYGPKG_UITRON_SEMAS {
display "Semaphores"
flavor bool
default_value 1
description "
uITRON Semaphore objects are used with functions
named xxx_sem(); they support traditional semaphore
semantics."
script semas.cdl
}
cdl_component CYGPKG_UITRON_MBOXES {
display "Mailboxes"
flavor bool
default_value 1
description "
uITRON Mailbox objects are used with functions
named xxx_msg() and xxx_mbx(); they support
passing addresses (of 'messages') between tasks
in a safe manner."
script mboxes.cdl
}
cdl_component CYGPKG_UITRON_FLAGS {
display "Eventflags"
flavor bool
default_value 1
description "
uITRON Eventflag objects are used with functions
named xxx_flg(); they support communication between
tasks by means of setting and clearing bits in a word
or flag value.
Waiting for all or any of a set of bits is supported."
script flags.cdl
}
# ------------------------------------------------------------------------
# uITRON TASKS
# ------------------------------------------------------------------------
cdl_component CYGPKG_UITRON_TASKS {
display "Tasks"
flavor none
description "
uITRON Tasks are the basic blocks of multi-tasking
in the uITRON world; they are threads or lightweight
processes, sharing the address space and the CPU.
They communicate using the primitives outlined above.
Each has a stack, an entry point (a C or C++ function),
and (where appropriate) a scheduling priority."
script tasks.cdl
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -