Skip to content

Commit 5689cb6

Browse files
committed
Added usage and overview.
1 parent 260fdba commit 5689cb6

8 files changed

Lines changed: 71 additions & 3 deletions

File tree

ARM.CMSIS-Compiler.pdsc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<package schemaVersion="1.7.36" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="https://raw.githubusercontent.com/Open-CMSIS-Pack/Open-CMSIS-Pack-Spec/v1.7.36/schema/PACK.xsd">
33
<vendor>ARM</vendor>
44
<name>CMSIS-Compiler</name>
5-
<description>CMSIS Compiler extensions for Arm Compiler, GCC, Clang, and IAR Compiler</description>
5+
<description overview="overview/README.md">CMSIS Compiler extensions for Arm Compiler, GCC, Clang, and IAR Compiler</description>
66
<url>https://www.keil.com/pack/</url>
77
<license>LICENSE</license>
88
<licenseSets>

documentation/doxygen/compiler.dxy.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -996,6 +996,7 @@ INPUT = ./src/mainpage.md \
996996
./src/history.txt \
997997
./src/rt_io.md \
998998
./src/rt_os.md \
999+
./src/usage.md \
9991000
./src/rt_example.md \
10001001
./src/templates.md \
10011002
./src/templates_file.md \
183 KB
Loading

documentation/doxygen/src/mainpage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,11 @@ This documentation contains the following sections:
6060
- \ref rev_hist : lists CMSIS-Compiler releases.
6161
- \ref rt_io : explains low-level I/O retargeting, list available components and describes available user code templates.
6262
- \ref rt_os : explains multithreading support retargeting, list available components and describes available user code templates.
63+
- \ref usage : instructs how to enable and use the CMSIS-Compiler software components.
6364
- \ref rt_example shows how to retarget the output to a UART on an Arm Virtual Hardware model.
6465
- \ref rt_templates : contains the user code template files for the different use cases.
6566
- [**API Reference**](topics.html) describes the API and the functions of the CMSIS-Compiler components in details.
6667

67-
6868
## License {#doc_license}
6969

7070
CMSIS-Compiler is provided free of charge by Arm under the [Apache 2.0 License](https://raw.githubusercontent.com/ARM-software/CMSIS-Compiler/main/LICENSE)

documentation/doxygen/src/usage.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Use CMSIS-Compiler {#usage}
2+
3+
The following steps are required to install the **ARM::CMSIS-Compiler** pack and to use the software components that
4+
are shipped with the CMSIS-Pack.
5+
6+
> **Note**
7+
>
8+
> The installation and usage instructions are assuming you are using a
9+
> [CMSIS-Toolbox](https://open-cmsis-pack.github.io/cmsis-toolbox/) based environment.
10+
11+
## Pack installation
12+
13+
Add the **ARM::CMSIS-Compiler** pack to your installation:
14+
15+
```sh
16+
cpackget add ARM::CMSIS-Compiler
17+
```
18+
19+
Alternatively, you can download the latest version from the
20+
[CMSIS-Compiler](https://www.keil.arm.com/packs/cmsis-compiler-arm/versions/) page.
21+
22+
## Component selection and usage
23+
24+
1. In your IDE, open the
25+
[Manage software components](https://mdk-packs.github.io/vscode-cmsis-solution-docs/create_app.html#software-components)
26+
dialog.
27+
2. If you cannot see the **CMSIS-Compiler** component, select to display **All installed packs**.
28+
3. You must select the component **CMSIS-Compiler::CORE** and at least one additional **API**.
29+
30+
![Manage software components](./images/component-selection.png)
31+
32+
> **Note**
33+
>
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.

gen_pack.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ set -o pipefail
99
# Set version of gen pack library
1010
# For available versions see https://github.com/Open-CMSIS-Pack/gen-pack/tags.
1111
# Use the tag name without the prefix "v", e.g., 0.7.0
12-
REQUIRED_GEN_PACK_LIB="0.11.3"
12+
REQUIRED_GEN_PACK_LIB="0.13.0"
1313

1414
# Set default command line arguments
1515
DEFAULT_ARGS=(-c "v")
@@ -32,6 +32,7 @@ PACK_DIRS="
3232
documentation
3333
example
3434
include
35+
overview
3536
source
3637
template
3738
"

overview/README.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Overview
2+
3+
**CMSIS-Compiler** provides software components that simplify retargeting of standard C run-time library functions.
4+
5+
Application code frequently uses standard C library functions, such as `fopen`, `fwrite`, `printf()`, `scanf()` and
6+
others to perform input/output operations. These functions may as well be used in a multithreaded environment.
7+
8+
The structure of these functions in the standard C run-time library together with the retarget interfaces is:
9+
10+
![Software Structure Overview](./overview.png)
11+
12+
Standard C library functions are platform independent and can be easily ported, while the low-level interfaces needs to
13+
be tailored to the chosen platform. Generally low-level I/O functions serve to interact with the file system and a
14+
serial interface, i.e. terminal. Multithreading support is available for applications that run on top of an RTOS kernel.
15+
16+
CMSIS-Compiler enables platform specific retargeting by providing software components that break down into the following interfaces:
17+
18+
- **File interface** that enables reading and writing files
19+
- **STDIN interface** that enables standard input stream redirection
20+
- **STDOUT interface** that enables standard output stream redirection
21+
- **STDERR interface** that enables standard error stream redirection
22+
- **OS interface** that enables multithread safety using an arbitrary RTOS
23+
24+
Using CMSIS-Compiler developers can retarget standard I/O streams and file operations to specific platform and enable
25+
thread safe operations using RTOS interface.
26+
27+
## Links
28+
29+
- [Documentation](https://arm-software.github.io/CMSIS-Compiler/latest/index.html)
30+
- [Repository](https://github.com/ARM-software/CMSIS-Compiler)
31+
- [Issues](https://github.com/ARM-software/CMSIS-Compiler/issues)

overview/overview.png

39.2 KB
Loading

0 commit comments

Comments
 (0)