Skip to content

Commit e636662

Browse files
RSARTE-176557: Document TargetRTS version 8005
1 parent 518480b commit e636662

3 files changed

Lines changed: 35 additions & 4 deletions

File tree

docs-sources/target-rts/build.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,4 +173,19 @@ Increasing the value will make each message bigger, which makes the application
173173
#### OBSERVABLE
174174
This setting controls if the application will be "observable" at run-time. Target observability includes different kinds of features such as debugging, tracing etc. Disabling this setting will improve application performance and decrease memory consumption, but you will then not be able to use any of the target observability features.
175175

176-
Default value: **1** (set to **0** to disable all target observability features)
176+
Default value: **1** (set to **0** to disable all target observability features)
177+
178+
#### MIN_FREE_LIST_SIZE
179+
This setting is related to the [free list](message-communication.md#message-memory-management). It defines the lower limit of the free list size. The free list will always contain at least this number of message blocks.
180+
181+
Default value: **20**
182+
183+
#### MAX_FREE_LIST_SIZE
184+
This setting is related to the [free list](message-communication.md#message-memory-management). It defines the upper limit of the free list size, i.e. the maximum number of message blocks that the free list will contain.
185+
186+
Default value: **100**
187+
188+
#### RTMESSAGE_BLOCK_SIZE
189+
This setting is related to the [free list](message-communication.md#message-memory-management). It defines how many messages each message block contains.
190+
191+
Default value: **250**

docs-sources/target-rts/message-communication.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,10 @@ There is a single free list in the application and it's implemented by the [RTRe
117117
118118
If the application needs to send a large number of messages at a faster pace than they can be dispatched, it can happen that the free list becomes empty. In that case another block of messages get allocated.
119119
120-
The size and behavior of the free list is controlled by a few constants in the TargetRTS implementation:
120+
The size and behavior of the free list is controlled by a few TargetRTS settings:
121121
122122
* **RTMessageBlock::Size** Controls how many messages are contained in each message block.
123-
* **maxFreeListSize** and **minFreeListSize** Controls how messages are freed by `RTController::freeMsg()`. If the size of the free list exceeds **maxFreeListSize** a number of messages are freed to reduce the size of the free list to **minFreeListSize**. Hence, the size of the free list is always kept in the range defined by these two constants.
123+
* **maxFreeListSize** and **minFreeListSize** Controls how messages are freed by `RTController::freeMsg()`. If the size of the free list exceeds **maxFreeListSize** a number of message blocks are freed to reduce the size of the free list to **minFreeListSize**. Hence, the size of the free list is always kept in the range defined by these two constants.
124124
125125
Note that freeing a message doesn't deallocate its memory. Instead it is reset by calling `RTMessage::clear()` so it becomes ready to be used again. This means that the memory occupied by the free list will grow until a certain limit when it's big enough to always contain a free message when the application needs one. That limit is different for different applications, and if you want to avoid dynamic allocation of additional message blocks after application start-up, you may need to adjust the `RTMessageBlock::Size` constant.
126126

docs-sources/target-rts/versions.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ Below is a table that lists all changes made in the TargetRTS since version 8000
3333
| 8002 | [Building without rtperl](#building-without-rtperl) <br> [JSON parser](#json-parser) <br> [Script for creating TargetRTS patch files](#script-for-creating-targetrts-patch-files) <br> [Pointers in JSON encoding/decoding](#pointers-in-json-encodingdecoding) |
3434
| 8003 | [Align terminology in comments](#align-terminology-in-comments) <br> [Configurable max TCP Connections](#configurable-max-tcp-connections) |
3535
| 8004 | [Improved implementation of JSON parser](#improved-implementation-of-json-parser) <br> [JSON encoding/decoding for RTByteBlock](#json-encodingdecoding-for-rtbyteblock) <br> [New target configuration for MacOS on AArch64](#new-target-configuration-for-macos-on-aarch64) |
36+
| 8005 | [New free list macros](#new-free-list-macros) <br> [Static analysis warning reductions](#static-analysis-warning-reductions) |
3637

3738
### JSON decoder
3839
A new decoder class [`RTJsonDecoding`](../targetrts-api/class_r_t_json_decoding.html) is now available for decoding messages and data from JSON. JSON produced from data by the JSON Encoder ([`RTJsonEncoding`](../targetrts-api/class_r_t_json_encoding.html)) can be decoded back to (a copy of) the original data.
@@ -62,4 +63,19 @@ The [`RTJsonParser`](../targetrts-api/class_r_t_json_parser.html) now has an imp
6263
The [`RTJsonEncoding`](../targetrts-api/class_r_t_json_encoding.html) and [`RTJsonDecoding`](../targetrts-api/class_r_t_json_decoding.html) now support JSON encoding/decoding for objects of the [`RTByteBlock`](../targetrts-api/class_r_t_byte_block.html) class.
6364

6465
### New target configuration for MacOS on AArch64
65-
A new target configuration for the Clang 15 compiler for MacOs with ARM processor is now available. It has the name `MacT.AArch64-Clang-15.x`.
66+
A new target configuration for the Clang 15 compiler for MacOs with ARM processor is now available. It has the name `MacT.AArch64-Clang-15.x`.
67+
68+
### New free list macros
69+
New TargetRTS configuration macros are now available in `include/RTConfig.h` for configuring the [free list](message-communication.md#message-memory-management). The new macros are [MIN_FREE_LIST_SIZE](build.md#min_free_list_size), [MAX_FREE_LIST_SIZE](build.md#max_free_list_size) and [RTMESSAGE_BLOCK_SIZE](build.md#rtmessage_block_size). Previously these configuration settings were hard-coded at a number of places in the TargetRTS implementation, but now they are handled like all other configuration settings.
70+
71+
### Static analysis warning reductions
72+
Some static analysis tools previously reported a few warnings on the TargetRTS source code which now have been fixed.
73+
74+
- Reordered member variables according to their types to potentially reduce the size of the container struct or class on certain platforms
75+
- Moved definition of [RTInjector](../targetrts-api/class_r_t_injector.html)::getInstance() from inline function to `RTInjector.cpp` to ensure it always returns a singleton object
76+
- Removed the unused local variable `attached` in the implementation of [RTDebugger](../targetrts-api/class_r_t_debugger.html)::printActorInfo()
77+
- Removed unused #includes
78+
- Removed duplicated assignments of `remotePort` and `remoteIndex` in [RTProtocol](../targetrts-api/class_r_t_protocol.html)::reply()
79+
- Changed type of the `need_lock` variable in [RTProtocol](../targetrts-api/class_r_t_protocol.html)::reply() from int to bool
80+
- Removed dead code
81+
- Improved initialization of a memory buffer in [RTToolSetObserver](../targetrts-api/class_r_t_toolset_observer.html)::sendTxBuffer()

0 commit comments

Comments
 (0)