In some cases, the system wasn't able to turn off
because the GUI service got stuck. The device
was still working in the background. The cause
was an empty queue in DrawCommandQueue which
hang the GUI worker.
The interface was modified and synchronization
mechanism was removed.
The thread no longer waits in dequeue().
Also changed the worker to close in the right
way the logger worker.
Fix of the issue that caused system crash when
trying to play 96kHz FLAC file with USB cable
connected. The reason of the issue was the lack
of FreeRTOS heap space left, what caused
pvPortMalloc() to fail when allocating
memory for stream buffer.
Additionally minor code cleanup.
Updated FreeRTOS source code to 10.4.6.
Moved FreeRTOS sources to the third-party directory.
Added necessary changes to the CMake configuration.
Split FreeRTOSConfig.h. From now, each board has its own.
Added missing log headers.
Minor refactor of the module-os cmake.
Fixed stack overflows in bell application main and time service.
Allow configuring stack size of a worker by a child class for a better
system heap utilization control.
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
Due to a race condition between source and sink voice is not always
starting when calling. Introduce audio stream connections to avoid
race condition and improve handling of audio start and stop operations.
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
* allow workers to run independently from service
* change worker to use FreeRTOS wrapper Queue class instead of
freeRTOS native queues
* fix bug disallowing to destruct worker that have never ran
* fixed worker bad state transition to Running state
Implement termination of worker threads. To achieve the goal so called
control queue has been introduced which is handled in Worker base class.
Once worker thread receives stop message it tries to kill itself. It is
possible to join a worker thread before deinit know thanks to a
semaphore given before thread termination.
Some improvements to the interface and implementation has been made
including state sanity checks. It is assumed that only service that owns
the worker is allowed to stop it, which allows not to consider code
reentrancy.
Worker destroying procedure has been updated in services that already
own workers.
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
* [EGD-2306] DESKTOP application initial commit
most of this code is foreign and unverified
it's low level magic numbers for the platform
on Linux i used PTY to simulate a serial line
* [EGD-2306] Add contact-list and contact-count commands
* [EGD-2306] Add command for geting contact by id and minor fixes
* [EGD-2856][WIP] Add basic serial parser
* [EGD-2855] Set usb device config buffer property cacheable
* [EGD-2856] Separate handlers from fsms, add status codes
* [EGD-2855] fd passed to state machine for linux renderer support
* [EGD-2856] Fix warnings
* [EGD-2855] New send task added and buffer queque
* [EGD-2856] Add simple ServiceDesktop documentation
* [EGD-2855] rt1051 worker refactor
* [EGD-2855] Added service workers for desktop app.
Changed linux USB driver mock up.
Added queue name mapping for service workers.
Added queue registry support (maybe redundant with mapping)
* [EGD-2855] Added proper message pointer to queue send and memory free
Added bsp driver namespace for linux and rt1051
* [EGD-2856] Major cleanup
* [EGD-2856] Fix typo
* [EGD-2856] Fix warnings
* [EGD-2856] Delete recursive fsm calling to prevent stack overflow
* [EGD-2856] Reduce http codes
* [EGD-2856] Rename serial parser to parser
* [EGD-2855] USB_CDC drives renames and cleanups
Service Worker queue cleanups
* [EGD-2855] Service Worker queue cleanups
* [EGD2855] Fixed external driver import
* [EGD-2856] Remove redundant message type
* [EGD-2856] Switch on enums instead of ints, and other minor changes requested after code review
* [EGD-2855] usb driver moved to bsp directory structure, pull request fixes
* [EGD-2855] clang #include fix
* [EGD-2856] Add tinyfsm as git submodule, update readme and minor fix
Co-authored-by: rkubiak01 <56821808+rkubiak01@users.noreply.github.com>
Co-authored-by: PrzeBrudny <60609703+PrzeBrudny@users.noreply.github.com>