diff --git a/.ci/vcpkg-configuration.json b/.ci/vcpkg-configuration.json index 2e69caa2..0e247465 100644 --- a/.ci/vcpkg-configuration.json +++ b/.ci/vcpkg-configuration.json @@ -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" } } \ No newline at end of file diff --git a/.gitignore b/.gitignore index 4d04967c..52ffd734 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/README.md b/README.md index 22afaa22..322f7f57 100644 --- a/README.md +++ b/README.md @@ -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.