@@ -162,8 +162,49 @@ extern void temp_too_high_thread(void *, void *, void *) {
162162}
163163```
164164
165+ ## Sequence Diagrams for Thread Communication
166+
167+ - Sequence diagrams visualize how components ** interact over time** .
168+
169+ - Useful for documenting the flow of messages between threads, ISR callbacks,
170+ and kernel services.
171+
172+ - Participants in a Zephyr firmware application may include:
173+
174+ - Threads (e.g., ` main ` , worker threads)
175+
176+ - ISR Callbacks
177+
178+ - Kernel Event Bit Arrays
179+
180+ - Kernel Timers
181+
182+ ## PlantUML Sequence Diagram Example
183+
184+ ``` plantuml
185+ @startuml
186+
187+ participant "Button ISR\nCallback" as ISR
188+ participant "Kernel Event\nBit Array" as KEvents
189+ participant "Worker Thread" as Worker
190+
191+ Worker -> KEvents : k_event_wait()\n[blocking]
192+ activate Worker #LightBlue
193+
194+ note over ISR : Button Pressed
195+ ISR -> KEvents : k_event_post(BUTTON_EVENT)
196+ KEvents --> Worker : BUTTON_EVENT received
197+ deactivate Worker
198+
199+ Worker -> Worker : process event\n(e.g., change state)
200+
201+ @enduml
202+ ```
203+
165204## Resources
166205
167206- [ Nordic DevAcademy: Zephyr RTOS Advanced] ( https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-1-zephyr-rtos-advanced/ )
168207
169- - [ Zephyr Documentation: Events] ( https://docs.zephyrproject.org/latest/kernel/services/synchronization/events.html#events )
208+ - [ Zephyr Documentation: Events] ( https://docs.zephyrproject.org/latest/kernel/services/synchronization/events.html#events )
209+
210+ - [ PlantUML: Sequence Diagrams] ( https://plantuml.com/sequence-diagram )
0 commit comments