libstored
image/svg+xml
libstored
double
velo;
int
x = 42;
double
pid_p = 0.5;
double
pid_i = 0.1;
double
pid_d = 0.3;
double
velo
int
=42 x
{
double
=0.5 p
double
=0.1 i
double
=0.3 d
} pid
Store definition
Application data
+ initialization
+ get/set hooks
+ run-time name lookup
+ iterators
C++ library
Store
Another
store
Yet another
store
generate
Debugger
Segmentation
Retransmit
CRC
ASCII escape
Terminal inject
Retransmit
Buffer
ZeroMQ
Debugger client
(PC)
Device/process/node
TCP
UART (lossy)
CAN
TCP
UART (lossy)
CAN
Synchronizer
Store
Another
store
Device/process/node/FPGA
Synchronizer
Another
store
Device/process/node
Synchronizer
Debugger
This is your data.
Based on a description,
the C++ and cmake files
are generated.
So, this is your store.
You can a have as many
stores and instances
as you want.
The Debugger knows
all stores and provides
a protocol to access them.
Depending on the hardware of
your device, a set of protocol layers
can be combined to provide access
to the Debugger from the outside.
libstored provides a python
GUI client and class, which
can be used to base custom
scripts or GUI upon.
Like the Debugger, the protocol
stack can be assembled, as
required by the device.
Stores can be synchronized
between instances. Any
topology can be constructed.
Any (sub)set of stores, at any
update frequency...
libstored
LGPLv3, gcc/MSVC/clang/armcc,
Linux, Windows, Mac, bare metal
C++98 and higher, VHDL,
Xilinx Vivado
1
Application data
Store definition
Store
Stores
Debugger
Protocol stack
Debugger client
Synchronizer
Overview