Skip to content

Commit 58c5c11

Browse files
authored
Update documentation for RTT (#85)
Resolves #73
1 parent 073b56e commit 58c5c11

10 files changed

Lines changed: 110 additions & 10 deletions
43 Bytes
Binary file not shown.
-61.8 KB
Loading
641 Bytes
Loading
72.1 KB
Loading
22.5 KB
Loading
68.5 KB
Loading
26.7 KB
Loading
82.9 KB
Loading

documentation/doxygen/src/rt_io.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,14 @@ The subcomponent selection allows you to change the target hardware interface of
3434

3535
The following subcomponents are available:
3636

37-
Variant | Description
38-
:---------------------|:-------------------
39-
**Breakpoint** | When the I/O stream is used, the application stops with [BKPT](https://developer.arm.com/documentation/100073/latest/The-Arm-C-and-C---Libraries/Support-for-building-an-application-with-the-C-library/Using-the-C-and-C---libraries-with-an-application-in-a-semihosting-environment?lang=en) instruction. No additional code is required.
40-
**Event Recorder** | STDOUT and STDERR can be redirected using the [Event Recorder](https://arm-software.github.io/CMSIS-View/main/evr.html) (especially interesting for targets without ITM (such as Cortex-M0/M0+/M23)).
41-
**ITM** | Use [Instrumentation Trace Macrocell (ITM)](https://developer.arm.com/documentation/ddi0314/h/Instrumentation-Trace-Macrocell?lang=en) for I/O communication via the debugger (only available for Cortex-M3/M4/M7/M33/M55/M85 processors).<br/> Usually, data is shown in a dedicated window.<br/> No additional code is required to output or input data through the ITM channel. However, you have to configure the ITM channel for tracing.
42-
**UART** | Retarget I/O streams to UART. Default implementation variant uses CMSIS-Driver USART.
43-
**Custom** | Retarget I/O stream to a user defined interface (such as custom UART implementation or other application specific interface).<br/>See \subpage custom_subcomponent for further details.
37+
Variant | Description
38+
:------------------|:-------------------
39+
**Breakpoint** | When the I/O stream is used, the application stops with [BKPT](https://developer.arm.com/documentation/100073/latest/The-Arm-C-and-C---Libraries/Support-for-building-an-application-with-the-C-library/Using-the-C-and-C---libraries-with-an-application-in-a-semihosting-environment?lang=en) instruction. No additional code is required.
40+
**Event Recorder** | STDOUT and STDERR can be redirected using the [Event Recorder](https://arm-software.github.io/CMSIS-View/main/evr.html) (especially interesting for targets without ITM (such as Cortex-M0/M0+/M23)).
41+
**ITM** | Use [Instrumentation Trace Macrocell (ITM)](https://developer.arm.com/documentation/ddi0314/h/Instrumentation-Trace-Macrocell?lang=en) for I/O communication via the debugger (only available for Cortex-M3/M4/M7/M33/M55/M85 processors).<br/> Usually, data is shown in a dedicated window.<br/> No additional code is required to output or input data through the ITM channel. However, you have to configure the ITM channel for tracing.
42+
**RTT** | Retarget I/O streams to SEGGER RTT Channel 0.
43+
**UART** | Retarget I/O streams to UART. Default implementation variant uses CMSIS-Driver USART.
44+
**Custom** | Retarget I/O stream to a user defined interface (such as custom UART implementation or other application specific interface).<br/>See \subpage custom_subcomponent for further details.
4445

4546

4647
> **Note**

documentation/doxygen/src/usage.md

Lines changed: 102 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,116 @@ cpackget add ARM::CMSIS-Compiler
1919
Alternatively, you can download the latest version from the
2020
[CMSIS-Compiler](https://www.keil.arm.com/packs/cmsis-compiler-arm/versions/) page.
2121

22-
## Component selection and usage
22+
## Component selection
2323

2424
1. In your IDE, open the
2525
[Manage software components](https://mdk-packs.github.io/vscode-cmsis-solution-docs/create_app.html#software-components)
2626
dialog.
2727
2. If you cannot see the **CMSIS-Compiler** component, select to display **All installed packs**.
2828
3. You must select the component **CMSIS-Compiler::CORE** and at least one additional **API**.
2929

30+
3031
![Manage software components](./images/component-selection.png)
3132

33+
## Resolve Dependencies {#usage_resolve_dependencies}
34+
35+
### Using Event Recorder {#usage_evr}
36+
37+
The **Event Recorder** subcomponent requires the `CMSIS-View::Event Recorder` component from the [CMSIS-View](https://www.keil.arm.com/packs/cmsis-view-arm/) pack.
38+
39+
1) Install the **CMSIS-View** pack:
40+
41+
```sh
42+
cpackget add ARM::CMSIS-View
43+
```
44+
45+
2) In the **Manage Software Components** dialog, select **Software Pack**, then choose **All installed packs** and find and select **ARM::CMSIS-View**.
46+
47+
![Select CMSIS-View Pack](./images/stdio_evr_pack.png)
48+
49+
3) Select the **CMSIS-View::Event Recorder** component.
50+
51+
![Select CMSIS-View::Event Recorder Component](./images/stdio_evr_components.png)
52+
53+
The project yml file should contain:
54+
55+
```yml
56+
packs:
57+
- pack: ARM::CMSIS-Compiler
58+
- pack: ARM::CMSIS-View
59+
```
60+
61+
```yml
62+
components:
63+
- component: CMSIS-Compiler:CORE
64+
- component: CMSIS-Compiler:STDOUT:Event Recorder
65+
- component: CMSIS-View:Event Recorder&DAP
66+
```
67+
68+
### Using RTT {#usage_rtt}
69+
70+
The **RTT** subcomponent requires the `SEGGER::RTT` component from the [SEGGER RTT](https://www.keil.arm.com/packs/rtt-segger/) pack.
71+
72+
1) Install the **SEGGER RTT** pack:
73+
74+
```sh
75+
cpackget add SEGGER::RTT
76+
```
77+
78+
2) In the **Manage Software Components** dialog, select **Software Pack**, then choose **All installed packs** and find and select **SEGGER::RTT**.
79+
80+
![Select SEGGER Pack](./images/stdio_rtt_pack.png)
81+
82+
3) Select the **SEGGER::RTT** component.
83+
84+
![Select SEGGER::RTT Component](./images/stdio_rtt_components.png)
85+
86+
The project yml file should contain:
87+
88+
```yml
89+
packs:
90+
- pack: ARM::CMSIS-Compiler
91+
- pack: SEGGER::RTT
92+
```
93+
94+
```yml
95+
components:
96+
- component: CMSIS-Compiler:CORE
97+
- component: CMSIS-Compiler:STDOUT:RTT
98+
- component: SEGGER:RTT
99+
```
100+
101+
### Using UART {#usage_uart}
102+
103+
The **UART** subcomponent provides default implementation variant **CMSIS** which requires the `CMSIS Driver::USART` implementation, typically provided by a Board Support Pack (BSP) or Device Family Pack (DFP) for the target hardware.
104+
32105
> **Note**
33106
>
34-
> Refer to the sections [Low-level I/O](./rt_io.md) and
35-
> [Multithreading Support Retarget](./rt_os.md) for more information about the retargeting options.
107+
> Use the [CMSIS Packs catalog](https://www.keil.arm.com/packs/) to find the appropriate pack for your target hardware.
108+
109+
1) Install the Board Support Pack (BSP) or Device Family Pack (DFP):
110+
111+
```sh
112+
cpackget add Vendor::Pack
113+
```
114+
115+
2) In the **Manage Software Components** dialog, select **Software Pack**, then choose **All installed packs** and find and select installed BSP or DFP.
116+
117+
3) Select the **CMSIS Driver::USART** component.
118+
119+
![Select CMSIS Driver::USART Component](./images/stdio_uart_components.png)
120+
121+
The project yml file should contain:
122+
123+
```yml
124+
packs:
125+
- pack: ARM::CMSIS-Compiler
126+
- pack: Vendor::Pack
127+
```
128+
129+
```yml
130+
components:
131+
- component: CMSIS-Compiler:CORE
132+
- component: CMSIS-Compiler:STDOUT:UART&CMSIS
133+
- component: CMSIS Driver:USART
134+
```

0 commit comments

Comments
 (0)