GDB Agent
GDB Agent provide an execellent communication protocol to debug remote targets using UART. New functionalities are provided with GDB remote protocol to use with real time systems. Breakpoint_Dif_Time is a 64 Bits internal GDB Agent variable that register rdtsc time between 2 consecutive breakpoints. "printf" or "display" gdb commands allow us to get this information. New GDB commands are provided with "maintenance packet" gdb command. Some of them are cacheon and cacheoff commands that enable/disable remote target cache. Usufull for getting worst case task execution time.

Low Overhead Remote Tracer
A problem in remote target debugging is the big time overhead introduced with target serial communication. I try to avoid big overhead in tracer API using the GDB Agent. I use a optimized architecture dependent RTL_TRACER macro to insert event information in tracer buffer. When tracer buffer is full breakpoint interrupt is executed and GDB Agent waits commands. We can use "x /FMT address" gdb command to get all tracer buffer and process this information using gdb2vcd.pl perl script.

Ocera (Open Components for Embedded Real-Time Applications, is an European project, based on Open Source, which provides an integrated execution environment for embedded real-time applications. Ocera combines the use of two kernels, Linux and RTLinux-GPL to provide support for critical tasks and soft real-time applications.