Centralized Dynamic ID on STM32F4


How to correctly create event tracer and storage backend on STM32. In tutorial, event tracer explained what it could be empty, but at compiling it gives error message

error: declaration does not declare anything [-fpermissive]

if I try to declare

error: cannot declare variable 'event_tracer' to be of abstract type 'uavcan::dynamic_node_id_server::IEventTracer'

code line wich gives errors

uavcan::dynamic_node_id_server::IEventTracer event_tracer;

and how to solve storage backend if using only NUCLEO-F446ZE.
Do Dynamic ID Server needs some dedicated memory storage ?

I am not so strong at C++ abstractions and any advanced C++x features, Mostly deeply low level embedded and scientific parallel/distributed programming. So I can ask stupid question.
In addition I have managed from tutorial dynamic ID Client, but it’s works only with babel and it will be great to work purely on embedded system.

Thank You for explanation and time dedication :slight_smile:

Just add some no-op statement to squelch the warning. When the tutorial says “empty” it means “semantically meaningless”, i.e., an implementation that does not define any useful behavior.

Because it’s an abstract class.

Yes, and the static server needs that, too. Its implementation is entirely up to you. You could just write into a dedicated flash sector; taking advantage of the fact that the allocation table is a write-only data structure you can avoid costly sector erasure operations.