Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ARM.CMSIS-Compiler.pdsc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<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">
<vendor>ARM</vendor>
<name>CMSIS-Compiler</name>
<description>CMSIS Compiler extensions for Arm Compiler, GCC, Clang, and IAR Compiler</description>
<description overview="overview/README.md">CMSIS Compiler extensions for Arm Compiler, GCC, Clang, and IAR Compiler</description>
<url>https://www.keil.com/pack/</url>
<license>LICENSE</license>
<licenseSets>
Expand Down
1 change: 1 addition & 0 deletions documentation/doxygen/compiler.dxy.in
Original file line number Diff line number Diff line change
Expand Up @@ -996,6 +996,7 @@ INPUT = ./src/mainpage.md \
./src/history.txt \
./src/rt_io.md \
./src/rt_os.md \
./src/usage.md \
./src/rt_example.md \
./src/templates.md \
./src/templates_file.md \
Expand Down
2 changes: 1 addition & 1 deletion documentation/doxygen/gen_doc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ set -o pipefail
# Set version of gen pack library
# For available versions see https://github.com/Open-CMSIS-Pack/gen-pack/tags.
# Use the tag name without the prefix "v", e.g., 0.7.0
REQUIRED_GEN_PACK_LIB="0.11.3"
REQUIRED_GEN_PACK_LIB="0.13.0"

DIRNAME=$(dirname "$(readlink -f "$0")")
GENDIR=../html
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion documentation/doxygen/src/mainpage.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,11 @@ This documentation contains the following sections:
- \ref rev_hist : lists CMSIS-Compiler releases.
- \ref rt_io : explains low-level I/O retargeting, list available components and describes available user code templates.
- \ref rt_os : explains multithreading support retargeting, list available components and describes available user code templates.
- \ref usage : instructs how to enable and use the CMSIS-Compiler software components.
- \ref rt_example shows how to retarget the output to a UART on an Arm Virtual Hardware model.
- \ref rt_templates : contains the user code template files for the different use cases.
- [**API Reference**](topics.html) describes the API and the functions of the CMSIS-Compiler components in details.


## License {#doc_license}

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)
35 changes: 35 additions & 0 deletions documentation/doxygen/src/usage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Use CMSIS-Compiler {#usage}

The following steps are required to install the **ARM::CMSIS-Compiler** pack and to use the software components that
are shipped with the CMSIS-Pack.

> **Note**
>
> The installation and usage instructions are assuming you are using a
> [CMSIS-Toolbox](https://open-cmsis-pack.github.io/cmsis-toolbox/) based environment.

## Pack installation

Add the **ARM::CMSIS-Compiler** pack to your installation:

```sh
cpackget add ARM::CMSIS-Compiler
```

Alternatively, you can download the latest version from the
[CMSIS-Compiler](https://www.keil.arm.com/packs/cmsis-compiler-arm/versions/) page.

## Component selection and usage

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

![Manage software components](./images/component-selection.png)

> **Note**
>
> Refer to the sections [Low-level I/O](./rt_io.md) and
> [Multithreading Support Retarget](./rt_os.md) for more information about the retargeting options.
3 changes: 2 additions & 1 deletion gen_pack.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ set -o pipefail
# Set version of gen pack library
# For available versions see https://github.com/Open-CMSIS-Pack/gen-pack/tags.
# Use the tag name without the prefix "v", e.g., 0.7.0
REQUIRED_GEN_PACK_LIB="0.11.3"
REQUIRED_GEN_PACK_LIB="0.13.0"

# Set default command line arguments
DEFAULT_ARGS=(-c "v")
Expand All @@ -33,6 +33,7 @@ PACK_DIRS="
documentation
example
include
overview
source
template
"
Expand Down
30 changes: 30 additions & 0 deletions overview/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Overview

**CMSIS-Compiler** provides software components that simplify retargeting of standard C run-time library functions.

Application code frequently uses standard C library functions, such as `fopen`, `fwrite`, `printf()`, `scanf()` and
others to perform input/output operations. These functions may as well be used in a multithreaded environment.

The structure of these functions in the standard C run-time library together with the retarget interfaces is:

![Software Structure Overview](./overview.png)

Standard C library functions are platform independent and can be easily ported, while the low-level interfaces needs to
be tailored to the chosen platform. Generally low-level I/O functions serve to interact with the file system and a
serial interface, i.e. terminal. Multithreading support is available for applications that run on top of an RTOS kernel.

CMSIS-Compiler enables platform specific retargeting by providing software components that break down into the following interfaces:

- **File interface** that enables reading and writing files
- **STDIN interface** that enables standard input stream redirection
- **STDOUT interface** that enables standard output stream redirection
- **STDERR interface** that enables standard error stream redirection
- **OS interface** that enables multithread safety using an arbitrary RTOS

Using CMSIS-Compiler developers can retarget standard I/O streams and file operations to specific platform and enable
thread safe operations using RTOS interface.

## Links

- [Documentation](https://arm-software.github.io/CMSIS-Compiler/latest/index.html)
- [Issues](https://github.com/ARM-software/CMSIS-Compiler/issues)
Binary file added overview/overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading