Skip to content

Commit 78c6661

Browse files
committed
software: trace software to system req
Linked the newly created Mailboxes Software Requirements to the Generic System Requirement. signed-off-by: Joel Key <[email protected]>
1 parent d66031f commit 78c6661

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed

docs/software_requirements/mailboxes.sdoc

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ The Mailbox module shall provide a mechanism to define and initialize a mailbox
2222
USER_STORY: >>>
2323
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.
2424
<<<
25+
RELATIONS:
26+
- TYPE: Parent
27+
VALUE: ZEP-SYRS-22
2528

2629
[REQUIREMENT]
2730
UID: ZEP-SRS-22-2
@@ -35,6 +38,9 @@ The Mailbox module shall provide a mechanism to statically define and initialize
3538
USER_STORY: >>>
3639
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.
3740
<<<
41+
RELATIONS:
42+
- TYPE: Parent
43+
VALUE: ZEP-SYRS-22
3844

3945
[REQUIREMENT]
4046
UID: ZEP-SRS-22-3
@@ -45,6 +51,9 @@ TITLE: Queue Initialization
4551
STATEMENT: >>>
4652
When a mailbox is initialized, the Mailbox module shall set both the send queue and receive queue of that mailbox to empty.
4753
<<<
54+
RELATIONS:
55+
- TYPE: Parent
56+
VALUE: ZEP-SYRS-22
4857

4958
[REQUIREMENT]
5059
UID: ZEP-SRS-22-4
@@ -55,6 +64,9 @@ TITLE: Message Size Support
5564
STATEMENT: >>>
5665
The Mailbox module shall support message data containing zero or more bytes.
5766
<<<
67+
RELATIONS:
68+
- TYPE: Parent
69+
VALUE: ZEP-SYRS-22
5870

5971
[REQUIREMENT]
6072
UID: ZEP-SRS-22-5
@@ -68,6 +80,9 @@ The Mailbox module shall support messages of any size that the application requi
6880
USER_STORY: >>>
6981
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.
7082
<<<
83+
RELATIONS:
84+
- TYPE: Parent
85+
VALUE: ZEP-SYRS-22
7186

7287
[REQUIREMENT]
7388
UID: ZEP-SRS-22-6
@@ -78,6 +93,9 @@ TITLE: Message Descriptor Usage
7893
STATEMENT: >>>
7994
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.
8095
<<<
96+
RELATIONS:
97+
- TYPE: Parent
98+
VALUE: ZEP-SYRS-22
8199

82100
[REQUIREMENT]
83101
UID: ZEP-SRS-22-7
@@ -88,6 +106,9 @@ TITLE: Message Descriptor Updates
88106
STATEMENT: >>>
89107
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.
90108
<<<
109+
RELATIONS:
110+
- TYPE: Parent
111+
VALUE: ZEP-SYRS-22
91112

92113
[REQUIREMENT]
93114
UID: ZEP-SRS-22-8
@@ -98,6 +119,9 @@ TITLE: Buffer Data Transfer
98119
STATEMENT: >>>
99120
Where message data is in a buffer, the Mailbox module shall correctly handle the data transfer between the sending and receiving threads.
100121
<<<
122+
RELATIONS:
123+
- TYPE: Parent
124+
VALUE: ZEP-SYRS-22
101125

102126
[REQUIREMENT]
103127
UID: ZEP-SRS-22-9
@@ -111,6 +135,9 @@ Where message data is non-existent (i.e., an empty message), the Mailbox module
111135
USER_STORY: >>>
112136
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.
113137
<<<
138+
RELATIONS:
139+
- TYPE: Parent
140+
VALUE: ZEP-SYRS-22
114141

115142
[REQUIREMENT]
116143
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
124151
USER_STORY: >>>
125152
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.
126153
<<<
154+
RELATIONS:
155+
- TYPE: Parent
156+
VALUE: ZEP-SYRS-22
127157

128158
[REQUIREMENT]
129159
UID: ZEP-SRS-22-11
@@ -134,6 +164,9 @@ TITLE: Synchronous Sending Behavior
134164
STATEMENT: >>>
135165
When k_mbox_put is called, the Mailbox module shall block the sending thread until a receiver processes the message or the timeout expires.
136166
<<<
167+
RELATIONS:
168+
- TYPE: Parent
169+
VALUE: ZEP-SYRS-22
137170

138171
[REQUIREMENT]
139172
UID: ZEP-SRS-22-12
@@ -147,6 +180,9 @@ If the synchronous message send operation times out before a receiver processes
147180
USER_STORY: >>>
148181
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.
149182
<<<
183+
RELATIONS:
184+
- TYPE: Parent
185+
VALUE: ZEP-SYRS-22
150186

151187
[REQUIREMENT]
152188
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
160196
USER_STORY: >>>
161197
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.
162198
<<<
199+
RELATIONS:
200+
- TYPE: Parent
201+
VALUE: ZEP-SYRS-22
163202

164203
[REQUIREMENT]
165204
UID: ZEP-SRS-22-14
@@ -170,6 +209,9 @@ TITLE: Asynchronous Sending Behavior
170209
STATEMENT: >>>
171210
When an asynchronous message is sent, the Mailbox module shall not wait for a receiver to process the message before returning to the caller.
172211
<<<
212+
RELATIONS:
213+
- TYPE: Parent
214+
VALUE: ZEP-SYRS-22
173215

174216
[REQUIREMENT]
175217
UID: ZEP-SRS-22-15
@@ -183,6 +225,9 @@ When an asynchronous send command receives a semaphore, the Mailbox module shall
183225
USER_STORY: >>>
184226
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.
185227
<<<
228+
RELATIONS:
229+
- TYPE: Parent
230+
VALUE: ZEP-SYRS-22
186231

187232
[REQUIREMENT]
188233
UID: ZEP-SRS-22-16
@@ -196,6 +241,9 @@ The Mailbox module shall provide a mechanism for a thread to receive a message w
196241
USER_STORY: >>>
197242
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.
198243
<<<
244+
RELATIONS:
245+
- TYPE: Parent
246+
VALUE: ZEP-SYRS-22
199247

200248
[REQUIREMENT]
201249
UID: ZEP-SRS-22-17
@@ -209,6 +257,9 @@ The Mailbox module shall provide a mechanism for a thread to retrieve mailbox me
209257
USER_STORY: >>>
210258
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.
211259
<<<
260+
RELATIONS:
261+
- TYPE: Parent
262+
VALUE: ZEP-SYRS-22
212263

213264
[REQUIREMENT]
214265
UID: ZEP-SRS-22-18
@@ -219,6 +270,9 @@ TITLE: Message Reception Blocking
219270
STATEMENT: >>>
220271
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.
221272
<<<
273+
RELATIONS:
274+
- TYPE: Parent
275+
VALUE: ZEP-SYRS-22
222276

223277
[REQUIREMENT]
224278
UID: ZEP-SRS-22-19
@@ -232,6 +286,9 @@ If the message receive operation times out before a message becomes available, t
232286
USER_STORY: >>>
233287
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.
234288
<<<
289+
RELATIONS:
290+
- TYPE: Parent
291+
VALUE: ZEP-SYRS-22
235292

236293
[REQUIREMENT]
237294
UID: ZEP-SRS-22-20
@@ -242,6 +299,9 @@ TITLE: Thread-Only Message Exchange
242299
STATEMENT: >>>
243300
The Mailbox module shall allow only threads, not ISRs, to exchange messages using the mailbox functions.
244301
<<<
302+
RELATIONS:
303+
- TYPE: Parent
304+
VALUE: ZEP-SYRS-22
245305

246306
[REQUIREMENT]
247307
UID: ZEP-SRS-22-21
@@ -252,6 +312,9 @@ TITLE: Single-Receiver Message Delivery
252312
STATEMENT: >>>
253313
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).
254314
<<<
315+
RELATIONS:
316+
- TYPE: Parent
317+
VALUE: ZEP-SYRS-22
255318

256319
[REQUIREMENT]
257320
UID: ZEP-SRS-22-22
@@ -265,6 +328,9 @@ The Mailbox module shall handle messages non-anonymously, allowing both the send
265328
USER_STORY: >>>
266329
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.
267330
<<<
331+
RELATIONS:
332+
- TYPE: Parent
333+
VALUE: ZEP-SYRS-22
268334

269335
[REQUIREMENT]
270336
UID: ZEP-SRS-22-23
@@ -275,6 +341,9 @@ TITLE: Receiver Thread Queuing
275341
STATEMENT: >>>
276342
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.
277343
<<<
344+
RELATIONS:
345+
- TYPE: Parent
346+
VALUE: ZEP-SYRS-22
278347

279348
[REQUIREMENT]
280349
UID: ZEP-SRS-22-24
@@ -288,6 +357,9 @@ When multiple threads are waiting on an empty mailbox, the Mailbox module shall
288357
USER_STORY: >>>
289358
As a Zephyr RTOS developer, I want message delivery to respect thread priorities so that higher priority tasks receive messages before lower priority ones.
290359
<<<
360+
RELATIONS:
361+
- TYPE: Parent
362+
VALUE: ZEP-SYRS-22
291363

292364
[REQUIREMENT]
293365
UID: ZEP-SRS-22-25
@@ -298,6 +370,9 @@ TITLE: FIFO Message Delivery
298370
STATEMENT: >>>
299371
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.
300372
<<<
373+
RELATIONS:
374+
- TYPE: Parent
375+
VALUE: ZEP-SYRS-22
301376

302377
[REQUIREMENT]
303378
UID: ZEP-SRS-22-26
@@ -311,6 +386,9 @@ The Mailbox module shall support an arbitrary number of mailboxes, limited only
311386
USER_STORY: >>>
312387
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.
313388
<<<
389+
RELATIONS:
390+
- TYPE: Parent
391+
VALUE: ZEP-SYRS-22
314392

315393
[REQUIREMENT]
316394
UID: ZEP-SRS-22-27
@@ -324,6 +402,9 @@ The Mailbox module shall ensure proper cleanup of message resources when operati
324402
USER_STORY: >>>
325403
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.
326404
<<<
405+
RELATIONS:
406+
- TYPE: Parent
407+
VALUE: ZEP-SYRS-22
327408

328409
[REQUIREMENT]
329410
UID: ZEP-SRS-22-28
@@ -337,6 +418,9 @@ If an error occurs during any mailbox operation, the Mailbox module shall return
337418
USER_STORY: >>>
338419
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.
339420
<<<
421+
RELATIONS:
422+
- TYPE: Parent
423+
VALUE: ZEP-SYRS-22
340424

341425
[REQUIREMENT]
342426
UID: ZEP-SRS-22-29
@@ -350,3 +434,6 @@ The Mailbox module shall handle invalid parameters by returning appropriate erro
350434
USER_STORY: >>>
351435
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.
352436
<<<
437+
RELATIONS:
438+
- TYPE: Parent
439+
VALUE: ZEP-SYRS-22

0 commit comments

Comments
 (0)