📄 hal.cdl
字号:
display "Console channel is configurable"
calculated { !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE \
&& !CYGDBG_HAL_DIAG_TO_DEBUG_CHAN }
description "
This option is a configuration hint - it is enabled
when the HAL initialization code will make use
of the console channel configuration option."
}
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE {
display "Initialize whole of virtual vector table"
default_value { CYG_HAL_STARTUP != "RAM" || !CYGSEM_HAL_USE_ROM_MONITOR || CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT_NOT_GUARANTEED }
requires CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_ICTRL
requires CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET
requires CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US
requires CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE
requires CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA
requires CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
description "
This option will cause the whole of the virtual
vector table to be initialized with dummy values on
startup. When this option is enabled, all the
options below must also be enabled - or the
table would be empty when the application
launches.
On targets where older ROM monitors without
virtual vector support may still be in use, it is
necessary for RAM applictions to initialize the
table (since all HAL diagnostics and debug IO
happens via the table). The default setting of
this option will see to this, but it is still
possible to override the option when a target with
a newer ROM monitor is used."
}
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT {
display "Claim virtual vector table entries by default"
active_if !CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
default_value 1
description "
By default most virtual vectors will be claimed by
RAM startup configurations, meaning that the RAM
application will provide the services. The
exception is COMMS support (HAL
diagnostics/debugging IO) which is left in the
control of the ROM monitor.
The reasoning behind this is to get as much of the
code exercised during regular development so it
is known to be working the few times a new ROM
monitor or a ROM production configuration is used
- COMMS are excluded only by necessity in order to
avoid breaking an existing debugger connections
(there may be ways around this).
For production RAM configurations this option can
be switched off, causing the appliction to rely on
the ROM monitor for these services, thus
saving some space.
Individual vectors may also be left unclaimed,
controlled by the below options (meaning that the
associated service provided by the ROM monitor
will be used)."
}
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_ICTRL {
display "Claim ictrl/exc virtual vectors"
default_value { CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE \
|| CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT }
description "
This option will cause the ictrl/exc virtual
vectors to be claimed. These are pointers to
the HAL interrupt handlers table and the HAL VSR
table."
}
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET {
display "Claim reset virtual vectors"
default_value { CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE \
|| CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT }
description "
This option will cause the reset and kill_by_reset
virtual vectors to be claimed."
}
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US {
display "Claim delay_us virtual vector"
default_value { CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE \
|| CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT }
description "
This option will cause the delay_us
virtual vector to be claimed."
}
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE {
display "Claim cache virtual vectors"
default_value { CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE \
|| CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT }
description "
This option will cause the cache virtual vectors
to be claimed."
}
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA {
display "Claim data virtual vectors"
default_value { CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE \
|| CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT }
description "
This option will cause the data virtual vectors
to be claimed. These are (unused at present)
pointers to CPU, board and debug information."
}
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS {
display "Claim comms virtual vectors"
default_value { CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE \
|| CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS }
description "
This option will cause the communication tables
that are part of the virtual vectors mechanism to
be claimed. Note that doing this may cause an
existing ROM monitor communication connection to
be closed. For this reason, the option is disabled
per default for normal application
configurations."
}
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_DIAG {
display "Do diagnostic IO via virtual vector table"
calculated 1
description "
All HAL IO happens via the virtual vector table / comm
tables when those tables are supported by the HAL.
If so desired, the low-level IO functions can
still be provided by the RAM application by
enabling the CLAIM_COMMS option."
}
}
cdl_option CYGBLD_BUILD_COMMON_GDB_STUBS {
display "Build common GDB stub ROM image"
default_value 0
parent CYGBLD_GLOBAL_OPTIONS
requires CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
no_define
description "
Unless a target board has specific requirements to the
stub implementation, it can use a simple common stub.
This option, which gets enabled by platform HALs as
appropriate, controls the building of the common stub."
make -priority 315 {
<PREFIX>/bin/gdb_module.img : <PACKAGE>/src/stubrom/stubrom.c <PREFIX>/lib/extras.o <PREFIX>/lib/libtarget.a <PREFIX>/lib/target.ld <PREFIX>/lib/vectors.o
@sh -c "mkdir -p src/stubrom $(dir $@)"
$(CC) -c $(INCLUDE_PATH) -Wp,-MD,deps.tmp -I$(dir $<) $(CFLAGS) -o src/stubrom/gdb_module.o $<
@echo $@ ": \\" > $(notdir $@).deps
@echo $(wildcard $(PREFIX)/lib/*) " \\" >> $(notdir $@).deps
@tail +2 deps.tmp >> $(notdir $@).deps
@echo >> $(notdir $@).deps
@rm deps.tmp
$(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o $@ src/stubrom/gdb_module.o
}
}
}
# Does platform need special I/O initializations?
cdl_interface CYGINT_HAL_PLF_IF_INIT {
display "Platform defined I/O channels."
description "
Platforms which provide additional I/O channels can implement
this interface, indicating that the function plf_if_init()
needs to be called."
}
# Does platform provide IDE I/O macros?
cdl_interface CYGINT_HAL_PLF_IF_IDE {
display "Platform IDE I/O support."
description "
Platforms which provide IDE controllers can implement
this interface, indicating that IDE I/O macros are
available."
}
define_proc {
puts $::cdl_header "/***** proc output start *****/"
puts $::cdl_header "#include <pkgconf/system.h>"
puts $::cdl_header "#include CYGBLD_HAL_TARGET_H"
puts $::cdl_header "#ifdef CYGBLD_HAL_VARIANT_H"
puts $::cdl_header "#include CYGBLD_HAL_VARIANT_H"
puts $::cdl_header "#endif"
puts $::cdl_header "#include CYGBLD_HAL_PLATFORM_H"
puts $::cdl_header "/****** proc output end ******/"
}
cdl_option CYGPKG_HAL_BUILD_COMPILER_TESTS {
display "Build Compiler sanity checking tests"
description "
Enabling this option causes compiler tests to be built."
}
cdl_option CYGPKG_HAL_TESTS {
display "Common HAL tests"
flavor data
no_define
calculated { (!CYGPKG_HAL_BUILD_COMPILER_TESTS) ? "tests/cache tests/context tests/intr" :
"tests/cache tests/context tests/intr tests/cpp1 tests/vaargs" }
description "
This option specifies the set of tests for the common HAL."
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -