μP7 (micro P7) is lightweight C library for sending trace/logs & telemetry data from your Micro-controller’s firmware to host/HW FIFO/cycle buffer/network/etc. for further analysis. It is designed to be integrated on almost every microcontroller, even with very limited resources.
The library is oriented on firmware developers (Bare-metal or RTOS) & real-time task. contains exhaustive documentation inside package.
From software engineer’s point of view trace is a source code line (function with variable arguments list):
//... uP7DBG(0, hModule, "Iteration %I64d", llIter); //...
And at another side it looks like that:
It is very similar to logging, but unlike logging - trace gives your much better performance in term of CPU cycles and transmission data bandwidth. To reach best performance next optimizations are used:
From software engineer’s point of view telemetry is a few source code lines:
huP7TelId hCounter = uP7_TELEMETRY_INVALID_ID; uP7TelCreateCounter("CPU/Cycle", 0, 0, 1, 1, true, &hCounter); while (bProcessing) { uP7TelSentSample(hCounter, 1); //some user code ... //... uP7TelSentSample(hCounter, 0); }
And at another side it may looks like that (thread cyclograms, buffers sizes, delays, handles count, etc.):
Telemetry is a simple and fast way to record any dynamically changed values for further or real time analysis on Baical server side. You may use it for a lot of things: system statistics (cpu, memory, hdd, etc.), buffers filling, threads cyclograms or synchronization, mutexes, networks delays, packets sizes, etc. There are plenty of possible usage cases.