Skip to content
Open
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
12 changes: 6 additions & 6 deletions .ci/vcpkg-configuration.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
}
],
"requires": {
"arm:tools/kitware/cmake": "^3.28.4",
"arm:tools/ninja-build/ninja": "^1.12.0",
"arm:tools/open-cmsis-pack/cmsis-toolbox": "^2.9.0",
"arm:tools/arm/mdk-toolbox":" ^1.0.0",
"arm:compilers/arm/armclang": "^6.22.0",
"arm:compilers/arm/arm-none-eabi-gcc": "^13.3.1"
"arm:tools/open-cmsis-pack/cmsis-toolbox": "^2.12.0",
"arm:tools/kitware/cmake": "^3.31.5",
"arm:tools/ninja-build/ninja": "^1.12.1",
"arm:tools/arm/mdk-toolbox":" ^1.1.0",
"arm:compilers/arm/armclang": "^6.24.0",
"arm:compilers/arm/arm-none-eabi-gcc": "^14.3.1"
}
}
88 changes: 83 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,83 @@
build
output
site
docs
linkchecker-out.csv
# Prerequisites
*.d

# Object files
*.o
*.ko
*.obj
*.elf

# Linker output
*.ilk
*.map
*.exp

# Precompiled Headers
*.gch
*.pch

# Libraries
*.lib
*.a
*.la
*.lo

# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib

# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex

# Debug files
*.dSYM/
*.su
*.idb
*.pdb

# Kernel Module Compile Results
*.mod*
*.cmd
.tmp_versions/
modules.order
Module.symvers
Mkfile.old
dkms.conf

# Clangd
.clangd

# uv2csolution generated log file
uv2csolution.log

# CMSIS Solution files and folders not to be tracked
# default directory of build artifacts
**/out
# directory containing intermediate files to be regenerated
**/tmp

# Update config files must be merged before commit
*.update@*

# cbuild output files
*.cbuild.yml
*.cbuild-idx.yml
*.cbuild-run.yml
*.cbuild-set.yml

# .vscode JSON and debug adapter files generated by CMSIS Solution
.vscode/cmsis.json
.vscode/launch.json
.vscode/tasks.json
.vscode/settings.json
.cmd.jlink

# legacy intermediate project file
*.cprj
62 changes: 46 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,43 +1,73 @@
[![License](https://img.shields.io/github/license/arm-software/SDS-Framework?label)](https://github.com/ARM-software/SDS-Framework/blob/main/LICENSE)
[![Pack](https://img.shields.io/github/actions/workflow/status/Arm-Software/SDS-Framework/pack.yml?logo=arm&logoColor=0091bd&label=Build%20pack)](./.github/workflows/pack.yml)
[![GH-Pages](https://img.shields.io/github/actions/workflow/status/Arm-Software/SDS-Framework/gh-pages.yml?logo=arm&logoColor=0091bd&label=Deploy%20content)](./.github/workflows/gh-pages.yml)
[![Build examples](https://img.shields.io/github/actions/workflow/status/Arm-Software/SDS-Framework/build_examples.yml?logo=arm&logoColor=0091bd&label=Build%20examples)](./.github/workflows/build_examples.yml)

# SDS Framework

The **Synchronous Data Stream (SDS) Framework** implements a data stream management, provides methods and helper tools for developing and optimizing embedded applications that integrate DSP and ML algorithms. This framework may be used stand-alone, but also in combination with [**CMSIS-Stream**](https://github.com/ARM-software/CMSIS-Stream) that allows to combine algorithms using a compute graph.

Refer to [Overview](./overview/README.md) for more details.

## Repository structure
## Examples

The [SDS template application](https://arm-software.github.io/SDS-Framework/main/template.html) demonstarte the recording and playback of real-world data streams using physical hardware or simulation via [Arm Virtual Hardware - FVP](https://github.com/ARM-software/AVH). Simulation enables cost-effective, automated regression testing on desktops or in cloud-based CI/MLOps pipelines. The real-world data streams are captured in [SDS data files](https://arm-software.github.io/SDS-Framework/main/theory.html#sds-data-files).

Refer to [Overview](./overview/README.md) for more details.

Directory | Description
----------------------------------|-------------------------------
[overview](./overview) | Top-level overview of SDS Framework.
[documentation](./documentation/) | [User documentation](https://arm-software.github.io/SDS-Framework/main/index.html) of the SDS Framework.
[template](./template) | [SDS template application](https://arm-software.github.io/SDS-Framework/main/template.html), a test framework for DSP and ML algorithms.
[layer/sdsio](./layer/sdsio) | Configured [SDSIO layers](https://arm-software.github.io/SDS-Framework/main/sdsio.html) for file I/O via Network, USB, or File System.
[utilities](./utilities) | Python scripts for processing of SDS binary data files.
[schema](./schema) | Schema for [SDS YAML metadata format](https://arm-software.github.io/SDS-Framework/main/theory.html#yaml-metadata-format) that describes the content of SDS files.
[sds](./sds) | SDS-Framework source files and implementation of various SDSIO interfaces.
[.github/workflows](./.github/workflows) | GitHub Actions for validation and publishing.
[.ci](./.ci) | Files that relate to CI tests.

## Related

- [SDS Pack](https://www.keil.arm.com/packs/sds-arm) available on [keil.arm.com/packs](https://www.keil.arm.com/packs).
- [SDS Examples](https://github.com/Arm-Examples/sds-examples) a repository with SDS template applications that are configured for evaluation boards and use cases.
- The [SDS Pack](https://www.keil.arm.com/packs/sds-arm) is available on [keil.arm.com/packs](https://www.keil.arm.com/packs).
- The [SDS Examples](https://github.com/Arm-Examples/sds-examples) is a repository with SDS examples configured for various Evaluation Boards and use the [MDK-Middleware](https://www.keil.arm.com/packs/mdk-middleware-keil/overview/) for the[SDSIO Interface](https://arm-software.github.io/SDS-Framework/main/sdsio.html).
- [ML Developers Guide for Cortex-M Processors and Ethos-U NPU](https://developer.arm.com/documentation/109267).
- [Arm Virtual Hardware - FVP](https://github.com/arm-software/avh) repository with documentation.


## Files and Directories

This is a list of the relevant files and directories.

| Directory | Description |
|--- |--- |
| [overview](./overview) | Top-level overview of SDS Framework. |
| [documentation](./documentation/) | [User documentation](https://arm-software.github.io/SDS-Framework/main/index.html) of the SDS Framework. |
| [template](./template) | [SDS template application](https://arm-software.github.io/SDS-Framework/main/template.html), a test framework for DSP and ML algorithms. |
| [layer/sdsio](./layer/sdsio) | Configured [SDSIO layers](https://arm-software.github.io/SDS-Framework/main/sdsio.html) for file I/O via Network, USB, or File System. |
| [utilities](./utilities) | Python scripts for processing of SDS binary data files. |
| [schema](./schema) | Schema for [SDS YAML metadata format](https://arm-software.github.io/SDS-Framework/main/theory.html#yaml-metadata-format) that describes the content of SDS files. |
| [sds](./sds) | SDS-Framework source files and implementation of various SDSIO interfaces. |
| [.github/workflows](./.github/workflows) | GitHub Actions for validation and publishing. |
| [.ci](./.ci) | Files that relate to CI tests. |


## Continuous Integration (CI)

The underlying build system of [Keil Studio](https://www.keil.arm.com/) uses the [CMSIS-Toolbox](https://open-cmsis-pack.github.io/cmsis-toolbox/) and CMake. [CI](https://en.wikipedia.org/wiki/Continuous_integration) is effectively supported with:
- Tool installation based on a single [`vcpkg-configuration.json`](./vcpkg-configuration.json) file for desktop and CI environments.
- CMSIS solution files (`*.csolution.yml`) that enable seamless builds in CI, for example using GitHub actions.

| CI Workflow | Description |
|--- |--- |
| [pack](./.github/workflows/pack.yml) | Builds the pack on a GitHub hosted runner. |
| [gh-pages](./.github/workflows/gh-pages.yml) | Deploying this content to GitHub Pages. |
| [build_examples](./.github/workflows/build_examples.yml) | Builds the application binaries by using the Arm Compiler for Embedded (AC6) on a GitHub hosted runner. |


## License

The SDS Framework is licensed under [![License](https://img.shields.io/github/license/arm-software/sds-framework?label)](https://github.com/ARM-software/sds-framework/blob/main/LICENSE).


## Documentation

The [documentation](https://arm-software.github.io/SDS-Framework/main/index.html) is generated using [Doxygen](https://www.doxygen.nl/) and [MKDocs](https://www.mkdocs.org/) with the following additional plugins:
The [documentation](https://arm-software.github.io/SDS-Framework/main/index.html) is generated by using [Doxygen](https://www.doxygen.nl/) and [MKDocs](https://www.mkdocs.org/) with the following additional plugins:

- [mermaid2](https://mkdocs-mermaid2.readthedocs.io/en/latest/) for sequence diagrams.
- [mkdoxy](https://pypi.org/project/mkdoxy) for API documentation.

Use `mkdocs serve` to generate the documentation on a local computer.


## Contributions and Pull Requests

Contributions are accepted under [![License](https://img.shields.io/github/license/arm-software/CMSIS_6?label)](https://github.com/ARM-software/CMSIS_6/blob/main/LICENSE). Only submit contributions where you have authored all of the code.
Expand Down
Loading