Bloom v0.12.0
Feature release
EEPROM access via GDB
- Support for EEPROM access via GDB - all GDB memory access commands can now be used with EEPROM. The
0x00810000
offset must be applied to EEPROM addresses. - Support for loading ELFs with EEPROM sections.
- New
monitor eeprom fill
command, to fill EEPROM with a given value.
Support for new AVR-EA targets
-
Support for the following targets is included in this release:
- AVR64EA28 (untested)
- AVR64EA32 (untested)
- AVR64EA48 (untested)
-
See https://bloom.oscillate.io/docs/supported-targets for target config values.
Insight hex viewer performance improvements (in preparation for memory snapshot viewer and diffs)
- Refactored the HexViewer to limit the number of QGraphicsItem objects - significantly reducing RAM usage and improving performance when inspecting large memories.
- Stress tested with memories up to 5MB (meaning over 5 million byte items) - more than enough for current use cases.
- Additional work done in preparation for nested group items (for object annotations - something that will be looked at later on).
Memory snapshots via Insight
- A snapshot of the entire contents of RAM, EEPROM or FLASH can now be captured and stored in the project directory.
- Snapshots can be viewed, individually.
- Snapshots can be compared to others, or to the current memory.
- Snapshots can be restored (RAM and EEPROM only).
Flash memory inspection via Insight
- Flash memory can now be inspected via Insight
- Snapshots can be taken and be compared against.
- Worth keeping in mind: Given the sizes of flash memory on some AVR targets, the hex viewer can consume a considerable amount of RAM.
Other improvements
- The Insight window now uses ~60% less RAM, and is much more responsive.
- Focused memory regions can now span multiple lines.
- Replaced stack highlighting with stack grouping in RAM inspection pane - stack memory is now displayed as a separate group, with additional annotations, to clearly distinguish it from the rest of the target's RAM.
- Background tasks window
- Task progress bar on memory inspection pane
- Added some new "Copy Selection" actions to hex viewer
- Added
preserveEeprom
AVR8 target config boolean parameter, to control the backup-then-restore function employed for JTAG and UPDI targets. Setting this tofalse
will improve upload times for those who don't care about losing EEPROM data when uploading program changes. - Added OCDEN fuse bit management for JTAG-enabled targets. Controlled via the new
manageOcdenFuseBit
AVR8 target config boolean parameter. See https://bloom.oscillate.io/docs/configuration - Improved error messages
- For hybrid debug tools (MPLAB Snap and PICkit 4), Bloom will now check if the device is in AVR mode and report back to the user if the device was found on the system, but not in AVR mode.
Bug fixes
- Memory inspection panes were remaining disabled when switching between them.
- From CLion version 2023.1, Bloom was failing to detect CLion managing its process, resulting in the known shutdown bug.
- Interrupts from GDB were not being properly handled, resulting in some being ignored.