Releases: orbcode/orbuculum
Release 2.2.0
This is a full release which is recommended for all users.
Orbuculum 2.2.0 is required if you have ORBTrace Mini gateware 1.4.0 or later - earlier versions of Orbuculum simply won't see the trace interfaces on a 1.4.0 device. 2.2.0 is back compatible with earlier gateware releases.
The biggest changes in V2.2.0 are the inclusion of orbflow protocol and experimental support for ETM4 in orbmortem. FreeBSD is now supported too.
Main changes in Release V2.2.0 against V2.1.0
- Add COBS draining state to re-sync as quickly as possible
- Report when client is disconnected for not keeping up
- Addition of orbflow support (COBS over arbitrary bearer with orbflow protocol on top)
- Support for ORBTrace 1.4 series gateware
- Support in-probe TPIU frame stripping for both parallel and SWO sources
- Support TPIU frames in orbflow tag 1
- The saved file format has been updated to differentiate orbflow files from legacy ones
- Simplification of client handling (speedup and less crud)
- FreeBSD support
- Improved statistics reporting accuracy
- Detection of dynamic bmp endpoint
- Add pacing support for read from file
- improved support for C++
- Addition of ETM4 decode (experimental)
- Timestamping for orbtop, in various formats
- Colour support in orbcat for metadata (timestamps)
- Exception reporting for orbtop
- OSX CI Builder support
- Orbuculum can now be used as a meson subproject
- sam5 session setup support
- NXP IMXRT117x session setup support
- s32K344 session setup support
- TM4C session setup support
For parallel trace the current code supports MTB, ETM3 and ETM4. All should be considered beta quality.
Bugfixes
- orbtop: fix incremental memory use over time
- Ensure utilities respect CTRL-C even when orbuculum mux is not available
Known issues and observations
- Individual clients no longer decode TPIU - use orbuculum mux if you need this
- If orbuculum drops into an already in progress stream it can mis-decode the first packet. This can lead to it thinking it has a lot of active streams which will be reported for 2 seconds before they 'die away'. None of the proposed solutions for this issue are really good, so it's still a slight irritation in this release.
Note that the windows build uses a forked implementation of libusb because the upstream does not currently support the concurrent opening of multiple interfaces on a single device by different clients. Please provide feedback on the performance of this patch (does it work? any problems or negative consequences?). It is taking a while to get that change admitted upstream.
Version 2.2.0Beta1
This is a beta release which is recommended for users who are prepared to yell up when they find something that doesn't work. There will be no functionality enhancements, only bugfixes, between 2.2.0 Betas and final.
This first Beta has received very little testing on Windows or FreeBSD...contributions welcome.
Orbuculum 2.2.0 is required if you have ORBTrace Mini gateware 1.4.0 or later - earlier versions of Orbuculum simply won't see the trace interfaces on a 1.4.0 device. 2.2.0 is back compatible with earlier gateware releases.
The biggest changes in V2.2.0 are the inclusion of orbflow protocol and experimental support for ETM4 in orbmortem. FreeBSD is now supported too.
Main changes in Release V2.2.0 against V2.1.0
- Addition of orbflow support (COBS over arbitary bearer with orbflow protocol on top)
- Support for ORBTrace 1.4 series gateware
- Support in-probe TPIU frame stripping for both parallel and SWO sources
- Support TPIU frames in orbflow tag 1
- The saved file format has been updated to differentiate orbflow files from legacy ones
- Simplification of client handling (speedup and less crud)
- FreeBSD support
- Improved statistics reporting accuracy
- Detection of dynamic bmp endpoint
- Add pacing support for read from file
- improved support for C++
- Addition of ETM4 decode (experimental)
- Timestamping for orbtop, in various formats
- Colour support in orbcat for metadata (timestamps)
- Exception reporting for orbtop
- OSX CI Builder support
- Orbuculum can now be used as a meson subproject
- sam5 session setup support
- NXP IMXRT117x session setup support
- s32K344 session setup support
- TM4C session setup support
For parallel trace the current code supports MTB, ETM3 and ETM4. All should be considered beta quality.
Bugfixes
- orbtop: fix incremental memory use over time
- Ensure utilities respect CTRL-C even when orbuculum mux is not available
Known issues and observations
- Individual clients no longer decode TPIU - use orbuculum mux if you need this
- Python support moved to its own project
Note that the windows build uses a forked implementation of libusb because the upstream does not currently support the concurrent opening of multiple interfaces on a single device by different clients. Please provide feedback on the performance of this patch (does it work? any problems or negative consequences?). It is taking a while to get that change admitted upstream.
Version 2.1.0
This is a full release which is recommended for all users.
The biggest changes in V2.1.0 are the support of both Manchester and UART encoded SWO trace, several new utilities and some nice performance enhancements/bugfixes.
Main changes in Release V2.1.0 against V2.0.0
- Support for host side and device side timestamping in orbtop
- Stability improvements
- Move to ninja/meson build system
- Cleaner stream abstraction for data sourcing
- Improved orbtop interval monotonicity
- Improved shutdown and error handling for orbuculum mux
- Suite and connected probe version reporting
- Move to separate library to support third party tooling
- Better max interrupt depth tracking under overload conditions
- Automated udev and gdb init files installation in Linux builds
- Changes to usb transfer arrangements for improved performance
- Orbtop gains wall time and interrupt utilisation percentage
- Support for SWO over UART speed setting on ORBTRrace
- Improved OSX support
- Much improved windows support
- Python support
- Addition of orblcd utility for host-side emulation of lcd panels.
For parallel trace the current code supports up to ETM 3.5...4.0 support is outstanding.
Note that the windows build uses a forked implementation of libusb because the upstream does not currently support the concurrent opening of multiple interfaces on a single device by different clients. Please provide feedback on the performance of this patch (does it work? any problems or negative consequences?) so we can get that change admitted upstream soon and the two can re-converge.
Known issues
- No known issues
Version 2.0.0
Release 2.0.0
This is a full release which is recommended for all users.
The biggest changes in V2.0.0 are the support of parallel trace and the ORBTrace FPGA-based solution (see the ORBTrace repository..it pairs with V1.1.0 of the ORBTrace gateware), but there are numerous other smaller improvements throughout the codebase.
Main changes in Release against Beta2
- Bug and compatibility fixes to orbzmq, and move to port 3442 by default.
- Ensure orbuculum does not exit when ORBTrace is unplugged.
Main changes in Beta2 against Beta1;
- Improved TPIU deframer in orbuculum leading to significantly reduced CPU load
- Removal of internal packet layer in orbuculum, again reducing CPU load. We're near the point you won't even notice it's running!
- Windows support!! Woohoo
- Verbosity reduction across several utilities
- Addition of longopts and unification of command line options
- Code review and minor fixup as a result of -fanalyzer reports
- Trivial installer integrated into makefile for both POSIX and Windows
- Tidy connect and reconnect behaviour in multiple utilities
- Exception name integration into orbtop
- Support for SWO over Manchester transport in ORBTrace (in the orbtrace utility)
- Cleanup of feeder sources to allow better unification of codebase across platforms
- MTB support integrated into orbmortem
- Addition of health warning to orbprofile
- Addition of ZeroMQ support in the orbzmq utility (early visibility, not production ready yet)
Earlier changes from Beta1 against V1.13;
- Addition of ORBMortem for post-mortem analysis
- Split of orbuculum into the network server (orbuculum) and the fifo server (orbfifo)
- Alpha version of orbprofile for code profiling support
- orbtrace utility for controlling tracing functionality
- Extensive refactoring and simplification (e.g. removal of need for libbfd etc)
- New cpu family support in gdbinit
We remain in new territory with parallel trace and there is still much be be learnt. Current code supports up to ETM 3.5...4.0 support is outstanding.
Known issues
- No known issues
Version 2.0.0Beta2
Beta 2 Release for 2.0.0
This is a transient release which will be removed when a new Beta or full release is issued. It is intended for the testing and feedback of issues with V2.00 prior to release.
The biggest changes in V2.0.0 are the support of parallel trace and the ORBTrace FPGA-based solution (see the ORBTrace repository..it pairs with V1.1.0 of the ORBTrace gateware), but there are numerous other smaller improvements throughout the codebase.
Main changes in Beta2 against Beta1;
- Improved TPIU deframer in orbuculum leading to significantly reduced CPU load
- Removal of internal packet layer in orbuculum, again reducing CPU load. We're near the point you won't even notice it's running!
- Windows support!! Woohoo
- Verbosity reduction across several utilities
- Addition of longopts and unification of command line options
- Code review and minor fixup as a result of -fanalyzer reports
- Trivial installer integrated into makefile for both POSIX and Windows
- Tidy connect and reconnect behaviour in multiple utilities
- Exception name integration into orbtop
- Support for SWO over Manchester transport in ORBTrace (in the orbtrace utility)
- Cleanup of feeder sources to allow better unification of codebase across platforms
- MTB support integrated into orbmortem
- Addition of health warning to orbprofile
- Addition of ZeroMQ support in the orbzmq utility (early visibility, not production ready yet)
Earlier changes from Beta1 against V1.13;
- Addition of ORBMortem for post-mortem analysis
- Split of orbuculum into the network server (orbuculum) and the fifo server (orbfifo)
- Alpha version of orbprofile for code profiling support
- orbtrace utility for controlling tracing functionality
- Extensive refactoring and simplification (e.g. removal of need for libbfd etc)
- New cpu family support in gdbinit
Even when fully released V2.0.0 should be viewed as somewhat experimental. We're into new territory with parallel trace and there is still much be be learnt. Current code supports up to ETM 3.5...4.0 support is outstanding.
Known issues
- orbzmq binding is a bit 'odd' on Linux. Use the updated version from the Devel branch (with accompanying notes) or set the bind address to
tcp://*:1234
or similar.
Version 2.0.0Beta1
Beta 1 Release for 2.00
This is a pre-release of V2.0.0 intended for production testing and feedback of issues with V2.0.0 prior to release.
The biggest changes in V2.00 are the support of parallel trace and the ORBTrace FPGA-based solution (see the ORBTrace repository), but there are numerous other smaller improvements throughout the codebase.
- Addition of ORBMortem for post-mortem analysis
- Split of orbuculum into the network server (orbuculum) and the fifo server (orbfifo)
- Alpha version of orbprofile for code profiling support
- orbtrace utility for controlling tracing functionality
- Extensive refactoring and simplification (e.g. removal of need for libbfd etc)
- New cpu family support in gdbinit
Even when fully released V2.00 should be viewed as somewhat experimental. We're into new territory with parallel trace and there is still much be be learnt. Current code supports up to ETM 3.5...4.0 support is outstanding.
Version 1.13
Orbuculum V1.13 (Maintenance Release)
This release is an incremental bugfix and minor upgrades release. It is expected to be the last waypoint before V2.00. This release, in common with the rest of V1, is almost exclusively SWO focused. It is a recommended update for all users.
Main changes are;
- Fix -v missing parameter
- Allow orbcat sockets to reconnect on loss of connection
- Add SAM5X SWO support
- Prevent segfault in orbtop when elf changes
- Fix assert when fpga has no data to deliver
- Add pyocd to list of trace sources
*Complete fix for specified length integers on 32 bit platforms (Rasbian support) - Compatibility with languages other than C family (specifically Rust)