Mercurial > ecos
view examples/instrument-test.c @ 3132:80f232caf539
* tests/except1.cxx (cause_exception): Fix compiler warning about
variable that is set but not used. Enter CYGBLD_ATTRIB_UNUSED.
* tests/kexcept1.c (cause_exception): Ditto.
* tests/kmbox1.c (entry1): Fix compiler warning about variable that
is set but not used. Use by a conditional CYGMTH_MBOX_PUT_CAN_WAIT.
* tests/mbox1.cxx (entry1): Ditto.
* tests/tm_basic.cxx (run_thread_tests, run_mbox_tests,
run_flag_tests): Remove unused variables.
| author | sergeig |
|---|---|
| date | Tue, 20 Mar 2012 15:39:58 +0000 |
| parents | ead06911cbae |
| children |
line wrap: on
line source
/* this is a program which uses eCos instrumentation buffers; it needs to be linked with a kernel which was compiled with support for instrumentation */ #include <stdio.h> #include <pkgconf/kernel.h> #include <cyg/kernel/instrmnt.h> #include <cyg/kernel/kapi.h> #ifndef CYGVAR_KERNEL_INSTRUMENT_EXTERNAL_BUFFER # error You must configure eCos with CYGVAR_KERNEL_INSTRUMENT_EXTERNAL_BUFFER #endif struct Instrument_Record { CYG_WORD16 type; // record type CYG_WORD16 thread; // current thread id CYG_WORD timestamp; // 32 bit timestamp CYG_WORD arg1; // first arg CYG_WORD arg2; // second arg }; struct Instrument_Record instrument_buffer[20]; cyg_uint32 instrument_buffer_size = 20; int main(void) { int i; cyg_instrument_enable(CYG_INSTRUMENT_CLASS_CLOCK, 0); cyg_instrument_enable(CYG_INSTRUMENT_CLASS_THREAD, 0); cyg_instrument_enable(CYG_INSTRUMENT_CLASS_ALARM, 0); printf("Program to play with instrumentation buffer\n"); cyg_thread_delay(2); cyg_instrument_disable(CYG_INSTRUMENT_CLASS_CLOCK, 0); cyg_instrument_disable(CYG_INSTRUMENT_CLASS_THREAD, 0); cyg_instrument_disable(CYG_INSTRUMENT_CLASS_ALARM, 0); for (i = 0; i < instrument_buffer_size; ++i) { printf("Record %02d: type 0x%04x, thread %d, ", i, instrument_buffer[i].type, instrument_buffer[i].thread); printf("time %5d, arg1 0x%08x, arg2 0x%08x\n", instrument_buffer[i].timestamp, instrument_buffer[i].arg1, instrument_buffer[i].arg2); } return 0; }
