Ozone — Feature Overview
Ozone has a rich set of features and capabilities. The list below gives a quick overview.
- Stand-alone graphical debugger
- Debug output of any tool chain and IDE 1
- C/C++ source level debugging and assembly instruction debugging
- Debug information windows for any purpose: disassembly, memory, globals and locals, (live) watches, CPU and peripheral registers
- Source editor to fix bugs immediately
- High-speed programming of the application into the target
- Direct use of J-Link built-in features (Unlimited Flash Breakpoints, Flash Download, Real Time Terminal, Instruction Trace)
- Scriptable project files to set up everything automatically
- New project wizard to ease the basic configuration of new projects
1 Ozone has been tested with the output of the following compilers: GCC, Clang, ARM, IAR. Output of other compilers may be supported but is not guaranteed to be.
Wide Range of Supported File Formats
Ozone supports a wide range of program and data file formats:
ELF or compatible files (*.elf, *.out, *.axf), Motorola s-record files (*.srec, *.mot), Intel hex files (*.hex), Binary data files (*.bin)
C and C++ Source Level Debugging
With the application output file from the compiler, Ozone enables Source Level Debugging of C and C++ applications. All debugging windows display the relevant symbolic information, such as symbol type for C/C++ symbols or the namespace for C++-only symbols.
Source Code Editor
Ozone features a basic source code editor, that enables changing code and fixing bugs in-place, immediately on detection in the debugger. Find a bug and fix it, rebuild in the IDE, reload and continue.
Automatic Reload of Modified Program Files
Ozone can detect changes made to the program file via an external compiler and provides the user with the option to reload the modified file.
Ozone features a C-programming language conformant programming (scripting) interface that enables users to reconfigure the graphical user interface and most parts of the debugging work flow via script files. All actions that are accessible via the graphical user interface have an affiliated script function that can be evoked from script files or the debugger's console window.
Fully Customizable User Interface
Ozone features a fully customizable multi-window user interface. All windows can be undocked from the main window and freely positioned and resized on the desktop. Fonts, colors and toolbars can be adjusted according to the user's preference. Content can be moved amongst windows via Drag&Drop.
System Variable Editor
Ozone’s System Variable Editor enables users to modify behavioral debugger settings from a central location.
Unlimited Flash Breakpoints
Ozone integrates SEGGER's flash-breakpoint technology which allows users to set an unlimited number of software breakpoints in flash memory
Ozone emphasizes changes to user interface values with a set of three different colors depending on the recency of the change. Change levels are updated each time program execution is advanced.
Easy Data Member Navigation
All of Ozone’s symbol windows are based on a tree-structure which permits users to easily navigate through the data hierarchy of complex symbols.
Ozone is able to trace symbol values and values of arbitrary C-style expressions at time resolutions of down to 1 microseconds and visualize the resulting time signals within the Data Graph Window.
Advanced Memory Window
Ozone's memory window implements an asynchronous scrolling approach that has been optimized for scrolling performance at both high and low MCU interface speeds. The memory window is fully editable and has many advanced features such as disk-IO, periodic updating and copy/paste of clipboard content.
Peripheral and CP15 Register Support
Ozone supports CMSIS System View Description files that describe the memory-mapped (peripheral) register set of the selected MCU. Once an SVD-File is specified, the register window displays peripheral registers and their bit-fields next to the core registers of the selected MCU. Additionally, the register window allows users to observe and edit coprocessor-15 registers of the selected MCU.
Ozone can capture printf-output by the embedded application via the Cortex-M SWO capability, Semihosting and SEGGER's Real Time Transfer (RTT) technology that provides extremely fast IO coupled with low MCU intrusion.
Ozone is able to trace program execution on a machine instruction level. The history of executed machine instructions is accessible via the instruction trace window and – used in conjunction with the call stack window – gives the developer additional insight into the program’s execution path.
Ozone’s Timeline Window visualizes the course of the program’s call stack over time. It provides advanced navigation features that allow users to quickly understand relative and absolute call frame sizes and positions, which make it a great profiling tool as well.
Ozone’s code profiling features assist users in optimizing their program code. The Code Profile Window displays CPU load and code coverage statistics selectively at a file, function or instruction level. Code profiles can be saved to disk in human-readable or in CSV format for further processing. Ozone’s code windows display code profile statistics inlined with the code. A color coding scheme is used to indicate to users source code lines and machine instructions that can be removed or improved.