Need debug support for Linux™ Operating System on ARM9™, ARM11™, Cortex™ or PowerPC™?
The debugger Universal Debug Engine UDE supports the Linux™ Kernel and Application Debugging of ARM9™, ARM11™, Cortex™, PowerPC™ microcontrollers.
Linux™ for ARM9™, ARM11™, Cortex™, PowerPC™Linux is a free Unix-like operating system. It is developed under the GNU General Public License; the source code for Linux is freely available. The embedded version of Linux is designed for devices with relatively limited resources. It is optimized to target specific hardware configurations and usage situations.
The UDE add-on enables Microsoft Windows based parallel debugging of a Linux kernel and additional Linux applications within one user interface. The target processor will be connected with the kernel debugger instance via the standard JTAG interface. An UDE view contains a remote console bash interface to the target system, which enables loading and unloading of kernel modules as well as controlling of the Linux system in the running state. New modules are recognized by the debugger and necessary symbol information will load automatically.
The application debugger instances are connected with the target application via a PLS master server running on the target. The Executable and Linking Format (ELF) files (Linux kernel and applications) can be thereby located and built on a virtual Linux PC VMware Image that can be loaded by the VMware Player. The application ELF file will be automatically uploaded to the target file system via the Ethernet or JTAG communication channel during development. This ensures symbol and data consistency between host and target.
Typical Linux applications load libraries only with their first use (lazy binding). In this case, the debugger pre-loads the required additional symbol information. Furthermore, the breakpoints - already set from previous debug sessions in these libraries - will be activated.
Nowadays complex user applications create several threads to handle different tasks.
The UDE Linux application debugging feature now supports investigating of these multi-thread applications. The user is now able to start and stop of all or just one thread, switch between threads (context switch) or check the thread context register. A list of all created threads including their function names and thread-ids (TID) avoids any confusion to the user.
What about signal debugging in Linux user applications? With the UDE Linux application debugging feature the debugging of generated signals (e.g. signal interrupt (SIGINT), division by zero (SIGFPE), ...) is now possible. To catch a generated exception the desired signal can be easily configured in a dialog box. If the signal was catched by the UDE, the application is halted and gives control to the user.
With the help of the 'Linux Support' complementary tools and the Universal Debug Engine, target Linux applications can be tested on normal Windows PCs, running the VMware Image. Corresponding solutions for Freescale's PowerArchitecture® and Intel's XScale architecture are in preparation.
UDE Linux Kernel debugging
- Linux kernel versions 2.6/3.x are currently supported
- Sample VMware image contains the Linux kernel image (3.x) and appropriate sources
- No Linux kernel patches are necessary
- JTAG is used as communication channel between target and UDE
- Linux kernel module debugging support
- Debugging the Linux kernel "from the first line"
- Lookup process internals (kernel / user processes)
- A ShockWave Flash animation about the UDE Linux Kernel debugging is available here
UDE Debugging of Linux Applications
- Ability of parallel UDE kernel and application debugging
- Additional application examples make first steps very easy
- Ethernet or JTAG interface can be used as communication channel
- Multi-thread debugging support
- User-library debugging support
- Signal debugging support
- PLS master server and GNU gdbserver (v7.x) must be installed in the target root file system
- A ShockWave Flash animation about the UDE Linux Application debugging is available here
- Linux Kernel: 2.6.x/3.x.y
- Sample Device Drivers: Ethernet, GPIO, I2C, NAND Flash, NOR Flash, RTC, Serial, SD/MMC, SPI, USB Host, Watchdog
- NFS root file system support
- GNU Tool chain: gcc 4.1.2, glibc 2.5, binutils 2.18
Trademarks: ARM7, ARM9 and Embedded Trace Macrocell, are trademarks of ARM Limited. Cortex and CoreSight are trademarks of ARM Limited. Power Architecture is a registered trademark of Power.org. PowerPC is a trademark of IBM Corporation.