Getting started with Bloom
Installation
Bloom can be installed via one of the provided Debian, RPM or Pacman packages. Download the package and run one of the following commands to install it:
$ sudo apt install /path/to/bloom-package.deb;
$ sudo yum localinstall /path/to/bloom-package.rpm;
$ sudo pacman -U /path/to/bloom-package.pkg.tar.zst;
Any debug tools that were connected during the installation of Bloom may need to be disconnected and reconnected, due to the udev rule changes made during the installation.
Udev rules
This step can be skipped if Bloom was installed via one of the provided Debian, RPM or Pacman packages.
Bloom requires a set of udev rules to be installed on the host machine before it can access any debug tools. If Bloom was installed via the Debian or RPM package mentioned above, the udev rules should have already been installed, and thus this step can be skipped. Installation of the udev rules can be confirmed by running:
$ ls -al /etc/udev/rules.d/99-bloom.rules
The 99-bloom.rules file should be a symlink to the original file included in the Bloom installation directory.
If Bloom was not installed via one of the distributed packages, the required udev rules can be installed by either running Bloom with root privileges, on a single occasion, or by manually creating the symlink for the rules file.
To manually create the symlink, run the following command:
$ sudo ln -s /opt/bloom/resources/UDevRules/99-bloom.rules /etc/udev/rules.d/
With the above command, Bloom's installation path is assumed to be "/opt". Be sure to change this before running the command, if required.
Any debug tools that were connected during the changing of udev rules may need to be disconnected and reconnected (for the new udev rules to be applied).
Project configuration
Create a project configuration file (bloom.json) in the project directory, via the init
command:
$ cd /path/to/project;
$ bloom init;
Adjust the configuration for your debugging environment (debug tool, target, etc). See the configuration page for more on configuring your project via bloom.json.
Start Bloom
Upon creating your project configuration file (bloom.json), Bloom can now be started via the
bloom
command.
At startup, Bloom will look for the project configuration file (bloom.json) in the working directory. Be sure to start Bloom from the correct directory.
$ bloom [ENVIRONMENT_NAME]
Replace "[ENVIRONMENT_NAME]" with the name of the environment (defined in bloom.json) that you wish to select. Or leave blank to have Bloom fall back to the "default" environment.
Bloom will indicate when it's ready to accept incoming GDB connections:
$ bloom
2022-02-20 15:53:04 GMT [MT] [3]: [INFO] Selected environment: "default"
2022-02-20 15:53:04 GMT [TC] [7]: [INFO] Starting TargetController
2022-02-20 15:53:04 GMT [TC] [8]: [INFO] Connecting to debug tool
2022-02-20 15:53:04 GMT [TC] [10]: [INFO] Debug tool connected
2022-02-20 15:53:04 GMT [TC] [11]: [INFO] Debug tool name: Xplained Pro
2022-02-20 15:53:04 GMT [TC] [12]: [INFO] Debug tool serial: ATML3074061800002208
2022-02-20 15:53:04 GMT [TC] [16]: [INFO] Activating target
2022-02-20 15:53:04 GMT [TC] [31]: [INFO] Target activated
2022-02-20 15:53:05 GMT [TC] [32]: [INFO] AVR8 target promoted to megaAVR target
2022-02-20 15:53:05 GMT [TC] [47]: [INFO] Target ID: 0x1e9651
2022-02-20 15:53:05 GMT [TC] [48]: [INFO] Target name: ATmega4809
2022-02-20 15:53:05 GMT [MT] [51]: [INFO] Selected DebugServer: AVR GDB Remote Serial Protocol Debug Server
2022-02-20 15:53:05 GMT [DS] [52]: [INFO] Starting DebugServer
2022-02-20 15:53:05 GMT [DS] [57]: [INFO] GDB RSP address: 0.0.0.0
2022-02-20 15:53:05 GMT [DS] [58]: [INFO] GDB RSP port: 1442
2022-02-20 15:53:05 GMT [DS] [60]: [INFO] DebugServer ready
2022-02-20 15:53:05 GMT [DS] [61]: [INFO] Waiting for GDB RSP connection
2022-02-20 15:53:05 GMT [MT] [64]: [INFO] Starting Insight
2022-02-20 15:53:06 GMT [MT] [69]: [INFO] Insight ready
From this point, a connection can be established via a GDB client. This can be handled by an IDE such
as CLion, or, directly via avr-gdb
. For more information on debugging with
CLion and Bloom, see Debugging embedded systems with CLion and Bloom.
Questions or feedback?
Questions can be raised on Bloom's GitHub discussions page (GitHub account required). Please feel free to submit any questions or feedback via a new discussion.