📄 infra.h
字号:
cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY { display "Fancy output" type radio parent CYGPKG_INFRA_DEBUG description "An output module which produces fancy output from tracing and assertion events." } cdl_component CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER { display "Buffered tracing" type radio parent CYGPKG_INFRA_DEBUG description "An output module which buffers output from tracing and assertion events. The stored messages are output when an assert fires, or cyg_trace_output() is called. Of course, there will only be stored messages if tracing per se (CYGDBG_USE_TRACING) is enabled above." } cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE { display "Trace buffer size" type count legal_values 5 to 65535 parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER description "The size of the trace buffer. This counts the number of trace records stored. When the buffer fills it either wraps, stops recording, or generates output." } cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_WRAP { display "Wrap trace buffer when full" type radio parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER description "When the trace buffer has filled with records it starts again at the beginning. Hence only the last CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE messages will be recorded." } cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_HALT { display "Halt trace buffer when full" type radio parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER description "When the trace buffer has filled with records it stops recording. Hence only the first CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE messages will be recorded." } cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT { display "Print trace buffer when full" type radio parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER description "When the trace buffer has filled with records it prints the contents of the buffer. The buffer is then emptied and the system continues." } cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT_ON_ASSERT { display "Print trace buffer on assert fail" type bool parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER description "When an assertion fails the trace buffer will be printed to the default diagnostic device." } }}CFG_DATA */# if defined( CYGDBG_USE_TRACING ) || defined( CYGDBG_USE_ASSERTS )# undef CYGDBG_INFRA_DEBUG_TRACE_ASSERT_NULL# undef CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE# undef CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY# define CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER# endif# if defined(CYGDBG_USE_TRACING)# if defined(CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER)# define CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE 32# define CYGDBG_INFRA_DEBUG_TRACE_BUFFER_WRAP# undef CYGDBG_INFRA_DEBUG_TRACE_BUFFER_HALT# undef CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT# define CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT_ON_ASSERT# endif# endif/* * All assertions within eCos contain a text message which should give * some information about the condition being tested. These text messages * will end up being embedded in the final application image and hence * there is a significant penalty in terms of code size. It is possible * to suppress the use of these messages by disabling * CYGDBG_INFRA_DEBUG_ASSERT_MESSAGE. * This results in smaller code size, but there is less information if * an assertion actually gets triggered. * * Similarly eCos trace macros also make use of a text message, and * this message can be suppressed by disabling * CYGDBG_INFRA_DEBUG_TRACE_MESSAGE. *//* {{CFG_DATA cdl_option CYGDBG_INFRA_DEBUG_ASSERT_MESSAGE { display "Use assert text" type boolean parent CYGDBG_USE_ASSERTS description "All assertions within eCos contain a text message which should give some information about the condition being tested. These text messages will end up being embedded in the application image and hence there is a significant penalty in terms of image size. It is possible to suppress the use of these messages by disabling this option. This results in smaller code size, but there is less human-readable information if an assertion actually gets triggered." } cdl_option CYGDBG_INFRA_DEBUG_TRACE_MESSAGE { display "Use trace text" type boolean parent CYGDBG_USE_TRACING description "All trace calls within eCos contain a text message which should give some information about the circumstances. These text messages will end up being embedded in the application image and hence there is a significant penalty in terms of image size. It is possible to suppress the use of these messages by disabling this option. This results in smaller code size, but there is less human-readable information available in the trace output, possibly only filenames and line numbers." } }}CFG_DATA */#define CYGDBG_INFRA_DEBUG_ASSERT_MESSAGE#define CYGDBG_INFRA_DEBUG_TRACE_MESSAGE/* ======================================================================== * By default all assertion and trace macros will make use of the name * of the current function, via gcc's __PRETTY_FUNCTION__ extension. * This provides useful extra information, but again there is some * code size overhead. It is possible to suppress the use of function * names, and have the assertions and trace facilities only use the * filename and linenumber information provided by __FILE__ and __LINE__. *//* {{CFG_DATA cdl_option CYGDBG_INFRA_DEBUG_FUNCTION_PSEUDOMACRO { display "Use function names" type boolean parent CYGPKG_INFRA_DEBUG description "All trace and assert calls within eCos contain a reference to the builtin macro '__PRETTY_FUNCTION__', which evaluates to a string containing the name of the current function. This is useful when reading a trace log. It is possible to suppress the use of the function name by disabling this option. This results in smaller code size, but there is less human-readable information available in the trace output, possibly only filenames and line numbers." } }}CFG_DATA */#define CYGDBG_INFRA_DEBUG_FUNCTION_PSEUDOMACRO/* ================================================================= * The following options allow particular compatibility modes to be * enabled, when they require specialised support from the startup * process. These can affect the environment in which the program * runs. * * CYGSEM_START_ISO_C_COMPATIBILITY enables compatibility with ISO C, * in particular in eCos it creates a thread that invokes the function * main() which the user must supply. It does this by invoking the function * cyg_iso_c_start(). For more information, refer to the C library * documentation. * * CYGSEM_START_UITRON_COMPATIBILITY enables compatibility with uItron. * You must configure uItron with the correct tasks, and then enabling this * option starts the uItron subsystem. It does this by invoking the function * cyg_uitron_start(). * * Both these can also be done by the user overriding cyg_user_start(), * cyg_package_start(), or cyg_prestart(). Refer to the documentation on * how and when to do this. *//* {{CFG_DATA cdl_component CYGPKG_INFRA_STARTUP { display "Startup options" type dummy parent CYGPKG_INFRA description "Some packages require a startup routine to be called. This can be carried out by application code, by supplying a routine called cyg_package_start() which calls the appropriate package startup routine(s). Alternatively, this routine can be constructed automatically and configured to call the startup routines of your choice." doc ref/ecos-ref/c-library-startup.html } cdl_option CYGSEM_START_ISO_C_COMPATIBILITY { display "Start ISO C library" type boolean parent CYGPKG_INFRA_STARTUP requires CYGPKG_LIBC description "Generate a call to initialize the ISO C library (libc) within the system version of cyg_package_start(). This enables compatibility with ISO C, in particular in eCos it creates a thread that invokes the function main() which the user must supply. It does this by invoking the function cyg_iso_c_start(). If this is disabled, and you want to use the C library, you call cyg_iso_c_start() from your own cyg_package_start() or cyg_userstart()." } cdl_option CYGSEM_START_UITRON_COMPATIBILITY { display "Start uITRON subsystem" type boolean parent CYGPKG_INFRA_STARTUP requires CYGPKG_UITRON description "Generate a call to initialize the uITRON compatibility subsystem within the system version of cyg_package_start(). This enables compatibility with uITRON. You must configure uITRON with the correct tasks before starting the uItron subsystem. If this is disabled, and you want to use uITRON, you must call cyg_uitron_start() from your own cyg_package_start() or cyg_userstart()." } }}CFG_DATA */#ifdef CYGPKG_LIBC#define CYGSEM_START_ISO_C_COMPATIBILITY#endif#ifdef CYGPKG_UITRON#undef CYGSEM_START_UITRON_COMPATIBILITY#endif/* ======================================================================== * memcpy()/memset() configuration * * The infra package contains implementations of memcpy() and memset() * because gcc generates code that uses these when initialising * structures, if it has been configured with its own builtin versions * disabled (-fno-builtin). * *//* {{CFG_DATA cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMCPY { display "Smaller slower memcpy()" description "Enabling this option causes the implementation of the standard memcpy() routine to reduce code size at the expense of execution speed. This option is automatically enabled with the use of the -Os option to the compiler. Also note that the compiler will try to use its own builtin version of memcpy() if possible, ignoring the implementation in this package, unless given the -fno-builtin compiler option." type boolean parent CYGPKG_INFRA } cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMSET { display "Smaller slower memset()" description "Enabling this option causes the implementation of the standard memset() routine to reduce code size at the expense of execution speed. This option is automatically enabled with the use of the -Os option to the compiler. Also note that the compiler will try to use its own builtin version of memset() if possible, ignoring the implementation in this package, unless given the -fno-builtin compiler option." type boolean parent CYGPKG_INFRA } }}CFG_DATA*/#undef CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMCPY#undef CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMSET/* ======================================================================== * Debugging-related miscellania. * * NOTE: this is not yet fully supported, by CDL nor by having a proper * symbol name. * * Define how diag data is directed off of the board. If using an actual * device then a device must be configured to support diag. */#undef CYGDBG_INFRA_DIAG_USE_DEVICE/* ======================================================================== * That's all. */#endif /* CYGONCE_PKGCONF_INFRA_H *//* EOF infra.h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -