You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/software_requirements/mailboxes.sdoc
+87Lines changed: 87 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -22,6 +22,9 @@ The Mailbox module shall provide a mechanism to define and initialize a mailbox
22
22
USER_STORY: >>>
23
23
As a Zephyr RTOS developer, I want to be able to initialize a mailbox instance so that it is ready to be used for message exchange between threads.
24
24
<<<
25
+
RELATIONS:
26
+
- TYPE: Parent
27
+
VALUE: ZEP-SYRS-22
25
28
26
29
[REQUIREMENT]
27
30
UID: ZEP-SRS-22-2
@@ -35,6 +38,9 @@ The Mailbox module shall provide a mechanism to statically define and initialize
35
38
USER_STORY: >>>
36
39
As a Zephyr RTOS developer, I want to be able to statically define and initialize a mailbox at compile time so that it is available immediately without runtime initialization.
37
40
<<<
41
+
RELATIONS:
42
+
- TYPE: Parent
43
+
VALUE: ZEP-SYRS-22
38
44
39
45
[REQUIREMENT]
40
46
UID: ZEP-SRS-22-3
@@ -45,6 +51,9 @@ TITLE: Queue Initialization
45
51
STATEMENT: >>>
46
52
When a mailbox is initialized, the Mailbox module shall set both the send queue and receive queue of that mailbox to empty.
47
53
<<<
54
+
RELATIONS:
55
+
- TYPE: Parent
56
+
VALUE: ZEP-SYRS-22
48
57
49
58
[REQUIREMENT]
50
59
UID: ZEP-SRS-22-4
@@ -55,6 +64,9 @@ TITLE: Message Size Support
55
64
STATEMENT: >>>
56
65
The Mailbox module shall support message data containing zero or more bytes.
57
66
<<<
67
+
RELATIONS:
68
+
- TYPE: Parent
69
+
VALUE: ZEP-SYRS-22
58
70
59
71
[REQUIREMENT]
60
72
UID: ZEP-SRS-22-5
@@ -68,6 +80,9 @@ The Mailbox module shall support messages of any size that the application requi
68
80
USER_STORY: >>>
69
81
As a Zephyr RTOS developer, I want to be able to send messages of different sizes using the same mailbox so that I can efficiently communicate different types of information between threads.
70
82
<<<
83
+
RELATIONS:
84
+
- TYPE: Parent
85
+
VALUE: ZEP-SYRS-22
71
86
72
87
[REQUIREMENT]
73
88
UID: ZEP-SRS-22-6
@@ -78,6 +93,9 @@ TITLE: Message Descriptor Usage
78
93
STATEMENT: >>>
79
94
The Mailbox module shall use message descriptors to specify where a message's data is located and how the message is to be handled by the mailbox.
The Mailbox module shall update message descriptor fields during the exchange to allow both threads to know what has occurred during the message exchange process.
90
108
<<<
109
+
RELATIONS:
110
+
- TYPE: Parent
111
+
VALUE: ZEP-SYRS-22
91
112
92
113
[REQUIREMENT]
93
114
UID: ZEP-SRS-22-8
@@ -98,6 +119,9 @@ TITLE: Buffer Data Transfer
98
119
STATEMENT: >>>
99
120
Where message data is in a buffer, the Mailbox module shall correctly handle the data transfer between the sending and receiving threads.
100
121
<<<
122
+
RELATIONS:
123
+
- TYPE: Parent
124
+
VALUE: ZEP-SYRS-22
101
125
102
126
[REQUIREMENT]
103
127
UID: ZEP-SRS-22-9
@@ -111,6 +135,9 @@ Where message data is non-existent (i.e., an empty message), the Mailbox module
111
135
USER_STORY: >>>
112
136
As a Zephyr RTOS developer, I want to be able to send signals or notifications that don't carry data so that I can trigger actions in other threads without the overhead of data transfer.
113
137
<<<
138
+
RELATIONS:
139
+
- TYPE: Parent
140
+
VALUE: ZEP-SYRS-22
114
141
115
142
[REQUIREMENT]
116
143
UID: ZEP-SRS-22-10
@@ -124,6 +151,9 @@ The Mailbox module shall provide a mechanism for a thread to send a message in a
124
151
USER_STORY: >>>
125
152
As a Zephyr RTOS developer, I want to be able to send a message and wait for it to be processed so that I can be sure the message was received before continuing execution.
When k_mbox_put is called, the Mailbox module shall block the sending thread until a receiver processes the message or the timeout expires.
136
166
<<<
167
+
RELATIONS:
168
+
- TYPE: Parent
169
+
VALUE: ZEP-SYRS-22
137
170
138
171
[REQUIREMENT]
139
172
UID: ZEP-SRS-22-12
@@ -147,6 +180,9 @@ If the synchronous message send operation times out before a receiver processes
147
180
USER_STORY: >>>
148
181
As a Zephyr RTOS developer, I want to be able to limit how long my thread waits for a message to be received so that I can implement fallback behavior if communication takes too long.
149
182
<<<
183
+
RELATIONS:
184
+
- TYPE: Parent
185
+
VALUE: ZEP-SYRS-22
150
186
151
187
[REQUIREMENT]
152
188
UID: ZEP-SRS-22-13
@@ -160,6 +196,9 @@ The Mailbox module shall provide a mechanism for a thread to send a message in a
160
196
USER_STORY: >>>
161
197
As a Zephyr RTOS developer, I want to be able to send a message without waiting for it to be processed so that my thread can continue execution immediately.
When an asynchronous message is sent, the Mailbox module shall not wait for a receiver to process the message before returning to the caller.
172
211
<<<
212
+
RELATIONS:
213
+
- TYPE: Parent
214
+
VALUE: ZEP-SYRS-22
173
215
174
216
[REQUIREMENT]
175
217
UID: ZEP-SRS-22-15
@@ -183,6 +225,9 @@ When an asynchronous send command receives a semaphore, the Mailbox module shall
183
225
USER_STORY: >>>
184
226
As a Zephyr RTOS developer, I want to be notified when my asynchronously sent message has been fully processed so that I can perform follow-up actions without polling.
185
227
<<<
228
+
RELATIONS:
229
+
- TYPE: Parent
230
+
VALUE: ZEP-SYRS-22
186
231
187
232
[REQUIREMENT]
188
233
UID: ZEP-SRS-22-16
@@ -196,6 +241,9 @@ The Mailbox module shall provide a mechanism for a thread to receive a message w
196
241
USER_STORY: >>>
197
242
As a Zephyr RTOS developer, I want to be able to receive messages from other threads with control over how long to wait for a message to arrive.
198
243
<<<
244
+
RELATIONS:
245
+
- TYPE: Parent
246
+
VALUE: ZEP-SYRS-22
199
247
200
248
[REQUIREMENT]
201
249
UID: ZEP-SRS-22-17
@@ -209,6 +257,9 @@ The Mailbox module shall provide a mechanism for a thread to retrieve mailbox me
209
257
USER_STORY: >>>
210
258
As a Zephyr RTOS developer, I want to be able to extract message data into my buffer after message reception so that I can process the information contained in the message.
When message reception is requested and no message is available, the Mailbox module shall block the receiving thread until a message is available or the timeout expires.
221
272
<<<
273
+
RELATIONS:
274
+
- TYPE: Parent
275
+
VALUE: ZEP-SYRS-22
222
276
223
277
[REQUIREMENT]
224
278
UID: ZEP-SRS-22-19
@@ -232,6 +286,9 @@ If the message receive operation times out before a message becomes available, t
232
286
USER_STORY: >>>
233
287
As a Zephyr RTOS developer, I want to be able to limit how long my thread waits for a message to arrive so that I can implement fallback behavior if communication takes too long.
The Mailbox module shall ensure that each message may be received by only one thread (i.e., point-to-multipoint and broadcast messaging is not supported).
254
314
<<<
315
+
RELATIONS:
316
+
- TYPE: Parent
317
+
VALUE: ZEP-SYRS-22
255
318
256
319
[REQUIREMENT]
257
320
UID: ZEP-SRS-22-22
@@ -265,6 +328,9 @@ The Mailbox module shall handle messages non-anonymously, allowing both the send
265
328
USER_STORY: >>>
266
329
As a Zephyr RTOS developer, I want to be able to identify the source or destination of messages so that I can implement thread-specific handling of message content.
While a thread is waiting to receive a message, the Mailbox module shall keep the thread in the receive queue until a matching message arrives or the waiting period expires.
277
343
<<<
344
+
RELATIONS:
345
+
- TYPE: Parent
346
+
VALUE: ZEP-SYRS-22
278
347
279
348
[REQUIREMENT]
280
349
UID: ZEP-SRS-22-24
@@ -288,6 +357,9 @@ When multiple threads are waiting on an empty mailbox, the Mailbox module shall
288
357
USER_STORY: >>>
289
358
As a Zephyr RTOS developer, I want message delivery to respect thread priorities so that higher priority tasks receive messages before lower priority ones.
290
359
<<<
360
+
RELATIONS:
361
+
- TYPE: Parent
362
+
VALUE: ZEP-SYRS-22
291
363
292
364
[REQUIREMENT]
293
365
UID: ZEP-SRS-22-25
@@ -298,6 +370,9 @@ TITLE: FIFO Message Delivery
298
370
STATEMENT: >>>
299
371
When multiple messages are available in the send queue, the Mailbox module shall deliver them in FIFO (First In, First Out) order to waiting threads.
300
372
<<<
373
+
RELATIONS:
374
+
- TYPE: Parent
375
+
VALUE: ZEP-SYRS-22
301
376
302
377
[REQUIREMENT]
303
378
UID: ZEP-SRS-22-26
@@ -311,6 +386,9 @@ The Mailbox module shall support an arbitrary number of mailboxes, limited only
311
386
USER_STORY: >>>
312
387
As a Zephyr RTOS developer, I want to be able to create as many mailboxes as my application needs without arbitrary limitations so that I can design my communication architecture freely.
313
388
<<<
389
+
RELATIONS:
390
+
- TYPE: Parent
391
+
VALUE: ZEP-SYRS-22
314
392
315
393
[REQUIREMENT]
316
394
UID: ZEP-SRS-22-27
@@ -324,6 +402,9 @@ The Mailbox module shall ensure proper cleanup of message resources when operati
324
402
USER_STORY: >>>
325
403
As a Zephyr RTOS developer, I want the system to automatically clean up resources when operations fail or time out so that my application doesn't experience memory leaks.
326
404
<<<
405
+
RELATIONS:
406
+
- TYPE: Parent
407
+
VALUE: ZEP-SYRS-22
327
408
328
409
[REQUIREMENT]
329
410
UID: ZEP-SRS-22-28
@@ -337,6 +418,9 @@ If an error occurs during any mailbox operation, the Mailbox module shall return
337
418
USER_STORY: >>>
338
419
As a Zephyr RTOS developer, I want to receive specific error codes when mailbox operations fail so that I can implement appropriate error handling and recovery.
339
420
<<<
421
+
RELATIONS:
422
+
- TYPE: Parent
423
+
VALUE: ZEP-SYRS-22
340
424
341
425
[REQUIREMENT]
342
426
UID: ZEP-SRS-22-29
@@ -350,3 +434,6 @@ The Mailbox module shall handle invalid parameters by returning appropriate erro
350
434
USER_STORY: >>>
351
435
As a Zephyr RTOS developer, I want the system to validate my inputs and return errors rather than crash when I provide invalid parameters so that I can develop more robust applications.
0 commit comments