Debugging AVR microcontrollers on Linux, with Bloom

Go To Last Post
14 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 3

Hi all,

 

First post, please go easy on me.

 

I've been working on Bloom for some time now. I published version 0.5.0 earlier today, and I'd like to share it with you.

 

Bloom is a debug interface for embedded systems development, for Linux users. It exposes an interface to over 240 microcontrollers, by means of a GDB server, for any IDE with remote GDB capabilities.

 

https://bloom.oscillate.io

 

Currently, Bloom only supports AVR 8-bit targets. It supports most AVRs on sale today.

 

Along with the GDB server, Bloom comes with an optional GUI for providing Insight into the target. This GUI gives users access to all known registers in the data address space, GPIO pin states and target memories. You can manipulate registers and GPIO pin states, as well as inspect RAM & EEPROM.

 

Currently, Bloom supports eight debug tools:

 

  1. Atmel-ICE
  2. Power Debugger
  3. MPLAB Snap
  4. MPLAB PICkit 4
  5. Curiosity Nano Evaluation Board
  6. Xplained Mini Evaluation Board
  7. Xplained Nano Evaluation Board
  8. Xplained Pro Evaluation Board

 

The goal of Bloom is to give Linux users an alternative to depending on vendor supplied IDEs, and to help IDE developers implement better support for embedded systems development.

 

There is a lot more info on the Bloom website (linked above). Please check it out and send over any feedback.

 

Thanks,
Nav

Nav

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Welcome!

navnav wrote:
It supports most AVRs on sale today.
Thank you for supporting AVRxt.

Consider growth from AVR into SAM D, SAM L, and PIC24.

navnav wrote:
Currently, Bloom supports eight debug tools:
EDBG; fyi, the ones at Microchip Technology maintain EDBG tools.

navnav wrote:
The goal of Bloom is to give Linux users an alternative to depending on vendor supplied IDEs,
Some FOSS IDE have a Python interface.

 


Embedded Development - Features | CLion

 

Supported Targets - Bloom

Device Tables | AVR® Instruction Set Manual

 

GitHub - microchip-pic-avr-tools/pyedbglib: Low-level protocol library for communicating with Microchip CMSIS-DAP based debuggers

Apache Thrift - Home

 

What is GNAT Studio? | GitHub - AdaCore/gnatstudio: GNAT Studio is a powerful and lightweight IDE for Ada and SPARK.

15.5.2. Defining Actions | 15. Customizing and Extending GNAT Studio — GNAT Studio 23.0w documentation

[debug_server]

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

Brilliant...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 2

One still needs to wrap pyedbglib in a gdbserver driver for general use (general as in targeting existing gdbserver support present in many debuggers).  pyAVRdbg is one example of a gdbserver built on top of pyedbglib, but it only supports UPDI devices, due to the limitation of the pymcuprog layer pyAVRdbg depends on.

 

Bloom implements a very large fraction of the available EDBG functionality, so at the moment it is really the top open source gdbserver candidate for general AVR debugging using EDBG capable tools.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 2

Thanks gchapman!

 

gchapman wrote:

Consider growth from AVR into SAM D, SAM L, and PIC24.

 

Yep, the long term goal is to support 32-bit ARM targets, starting with Microchip's SAM products. But I'm not sure when I'll get around to that.

 

Do let me know if any one of you have any questions or issues RE Bloom. Either on here or report an issue at https://bloom.oscillate.io/repor.... I will be happy to help smiley

Nav

Last Edited: Thu. Dec 30, 2021 - 08:54 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

navnav wrote:
I published version 0.5.0 earlier today,
0.10 in June'22

Release Bloom v0.10.0 · navnavnav/Bloom · GitHub

Support for programming

Bloom can now write to the target's program memory. GDB's load command can be used to program the target. Bloom users no longer need to rely on other software to apply code changes during their debug sessions.

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Nice work!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

It is for Linux only, right? Do you have any plan to make it windows compatible in the future?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

gchapman wrote:

navnav wrote:
I published version 0.5.0 earlier today,
0.10 in June'22

Release Bloom v0.10.0 · navnavnav/Bloom · GitHub

Support for programming

Bloom can now write to the target's program memory. GDB's load command can be used to program the target. Bloom users no longer need to rely on other software to apply code changes during their debug sessions.

 

Thanks for updating the thread!

 

MattRW wrote:

Nice work!

 

Thanks!

 

tepalia02 wrote:

It is for Linux only, right? Do you have any plan to make it windows compatible in the future?

 

Yeah, GNU/Linux only I'm afraid. Sorry, no current plans to support other operating systems ATM

Nav

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi everybody! I just recently switched to linux and am trying to install tools for debugging AVR. I paid attention to BLOOM. In the process of setting up bloom, an error pops up at the "Start Bloom" step — the program does not see the MCU connected to the computer.

Just in case, a screenshot of the json file:

My tools: Atmega 48, avr isp mk II programmer, Ubuntu 22.04.1 LTS. Maybe someone can help with this?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

NightAngel_13 wrote:

My tools: Atmega 48, avr isp mk II programmer, Ubuntu 22.04.1 LTS. Maybe someone can help with this?

You specified atmel-ice as the debug tool.  This is not the same as an AVRISP mkII programmer.

 

Also, the debug interface used by the atmega48 is debugwire, not PDI.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

NightAngel_13 wrote:

Hi everybody! I just recently switched to linux and am trying to install tools for debugging AVR. I paid attention to BLOOM. In the process of setting up bloom, an error pops up at the "Start Bloom" step — the program does not see the MCU connected to the computer.

 

Hello! Great to hear that you've switched to Linux.

 

It looks like that error you're seeing is down to the Atmel-ICE not being connected to your machine. Can you confirm that you are in possession of an Atmel-ICE and that it's connected to your machine whilst you're running Bloom?

 

NightAngel_13 wrote:

My tools: Atmega 48, avr isp mk II programmer, Ubuntu 22.04.1 LTS. Maybe someone can help with this?

 

To be clear, the AVRISP MKII is not equivalent to an Atmel-ICE. The AVRISP MKII does not provide debugging functionality, so it cannot be used with Bloom.

 

The latest version of Bloom (v0.10.0) supports the following debug tools:

 

  • Atmel-ICE
  • Power Debugger
  • MPLAB Snap (in AVR mode)
  • Xplained Pro Evaluation Board (EDBG)
  • Xplained Mini Evaluation Board (mEDBG)
  • Xplained Nano Evaluation Board (mEDBG)
  • Curiosity Nano Evaluation Board (nEDBG)
  • MPLAB PICkit 4 (in AVR mode)
  • JTAGICE3 (firmware version 3.x+)

 

Configuration values can be found at https://bloom.oscillate.io/docs/...

 

The cheapest of those is the MPLAB Snap, which works pretty well for debugWire targets. But if you're willing to spend a little more, I'd highly recommend an Atmel-ICE or a PICKit 4 - they're both excellent.

 

Thanks,

Nav

Last Edited: Wed. Aug 24, 2022 - 05:50 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

Hi all,

 

Just FYI: Published v0.11.0 earlier today.

 

Lots of bug fixes, changed project configuration format to YAML (JSON still supported, for now), new GDB monitor commands, many changes to the memory inspection panes in the Insight GUI, and more.

 

See full change log at https://bloom.oscillate.io/releases

 

Looking forward to introducing memory snapshots in v0.12.0.

Nav

Last Edited: Sun. Sep 18, 2022 - 09:17 PM