mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-30 15:15:21 +00:00
- Ring buffers provide no concurrency control. Since the ring buffer is being installed as the system log hook, multiple contexts may try to write to it simultaneously. Lock interrupts to prevent corruption of the ring buffer. - NULL pointers were being passed into sys_ring_buf_get() for the 'type' and 'value' parameters, causing undesirable behavior when they are dereferenced. - The 'size32' parameter of sys_ring_buf_put() was being passed the number of bytes, not the number of 32-bit words. - The 'size32' parameter of sys_ring_buf_get() was not bring correctly initialized the size of the destination buffer in terms of 32-bit words. This has been fixed. There is no longer a need to query the API twice. Issue: ZEP-1789 Change-Id: I96f9cc74f3711297727b4c5114b6c93510f4a8c1 Signed-off-by: Andrew Boie <andrew.p.boie@intel.com> |
||
---|---|---|
.. | ||
src | ||
Makefile | ||
prj.conf | ||
README.txt | ||
sample.tc | ||
testcase.ini |
Title: Logger application hook sample Description: A simple example on how to use logger hook in order to redirect the logger output to various backends. In this case, the logger is sending the output to ringbuf, logger output can be sent to a driver such as UART / USIF etc. as well. -------------------------------------------------------------------------------- Building and Running Project: This unified project outputs to the console. It can be built and executed on QEMU as follows: make run -------------------------------------------------------------------------------- Troubleshooting: Problems caused by out-dated project information can be addressed by issuing one of the following commands then rebuilding the project: make clean # discard results of previous builds # but keep existing configuration info or make pristine # discard results of previous builds # and restore pre-defined configuration info -------------------------------------------------------------------------------- Sample Output: [sample-unified] [ERR] main: SYS LOG ERR is ACTIVE [sample-unified] [WRN] main: SYS LOG WRN is ACTIVE [sample-unified] [INF] main: SYS LOG INF is ACTIVE