diff --git a/README.md b/README.md index addf68b..ba01e7d 100644 --- a/README.md +++ b/README.md @@ -377,10 +377,13 @@ Every thread running in your TACOS project has a priority that the underlying RT We conclude this section with a short list of design principles that have been useful in previous projects: * Find a base priority (usually `osPriorityNormal`) that all threads should have by default. Those are then scheduled via round-robin. -* There is no reason for your logger to log with 1KHz. Use thread blocking to limit the amount of computing time a thread consumes. For example, this could be the method `sleep(ms)` that the TacosThread class provides. It's also always a good idea to use interrupts in combination with RtosEvents (discussed later). +* There is no reason for your radio thread to check for incoming messages every two milliseconds. Use thread blocking to limit the amount of computing time a thread consumes. For example, this could be the method `sleep(ms)` that the TacosThread class provides. It's also always a good idea to use interrupts in combination with RtosEvents (discussed later). * What are more important tasks in your system? What tasks have strict time requirements? Find a new base priority (for example `osPriorityAboveNormal`) and assign it to all higher priority threads. Repeat this step if these threads are not equally important. * Use global timers in combination with events (as dicussed later in this chapter) to ensure that threads are unblocked at different times. +> [!WARNING] +> The priorities of your threads must always be lower than the priority of the Statemachine in TACOS. Per default, the the statemachine has priority `osPriorityHigh`. + ### Using Inter-Thread Communication This section serves to give you a brief overview of both the fundamental building blocks and useful design patterns for inter-thread communication.