|
| 1 | +[](https://github.com/ARM-software/MDK-Middleware/releases/latest) |
| 2 | + |
1 | 3 | # MDK-Middleware
|
| 4 | + |
| 5 | +This is the development repository of the [Keil MDK-Middleware](https://www.keil.arm.com/packs/mdk-middleware-keil) Version 8. MDK-Middleware uses the [CMSIS](https://arm-software.github.io/CMSIS_6/main/General/index.html) software framework and can be compiled with various toolchains such as Arm Compiler 6, GCC, IAR, and LLVM. |
| 6 | + |
| 7 | +## Useful Links |
| 8 | + |
| 9 | +- [Documentation](https://arm-software.github.io/MDK-Middleware/latest/General/index.html) - access to MDK-Middleware user's manual. |
| 10 | +- [Raise Issues](https://github.com/ARM-software/MDK-Middleware/issues) - to provide feedback or report problems. |
| 11 | + |
| 12 | +## Software Pack |
| 13 | + |
| 14 | +The MDK-Middleware is released as [CMSIS software pack](https://www.keil.arm.com/packs/mdk-middleware-keil/versions/) and therefore accessible by CMSIS-Pack enabled software development tools. The pack is compatible with tools such as [µVision 5.40](https://www.keil.arm.com/#km6-pro-tools) and the [CMSIS-Pack Management for Eclipse](https://github.com/ARM-software/cmsis-pack-eclipse). Examples utilize new features of the [CMSIS-Toolbox](https://github.com/Open-CMSIS-Pack/cmsis-toolbox) and the VS Code integration. |
| 15 | + |
| 16 | +The MDK-Middleware is annotated for the [CMSIS-View](https://arm-software.github.io/CMSIS-View/latest/index.html) Event Recorder and Component Viewer and uses [CMSIS-Compiler](https://arm-software.github.io/CMSIS-Compiler/main/index.html) for retargeting of standard C run-time library functions. It works therefore with the following other software packs: |
| 17 | + |
| 18 | +- [ARM::CMSIS](https://www.keil.arm.com/packs/cmsis-arm) version 5.9.0 or higher. |
| 19 | +- [ARM::CMSIS-Compiler](https://www.keil.arm.com/packs/cmsis-compiler-arm) version 2.0.0 or higher. |
| 20 | +- [ARM::CMSIS-View](https://www.keil.arm.com/packs/cmsis-view-arm) version 1.0.0 or higher. |
| 21 | + |
| 22 | +The MDK-Middleware examples use the *csolution project* format of the [CMSIS-Toolbox](https://github.com/Open-CMSIS-Pack/cmsis-toolbox) and are framed as [Reference Applications](https://github.com/Open-CMSIS-Pack/cmsis-toolbox/blob/main/docs/ReferenceApplications.md) that require an additional software layer to run on an evaluation board. The CMSIS-Toolbox is developed under the [Open-CMSIS-Pack project](https://github.com/Open-CMSIS-Pack) and an integral part of several IDEs. |
| 23 | + |
| 24 | +### Using the development repository |
| 25 | + |
| 26 | +This development repository of the MDK-Middleware can be used in a local directory and [mapped as software pack](https://github.com/Open-CMSIS-Pack/cmsis-toolbox/blob/main/docs/build-tools.md#install-a-repository) using for example `cpackget` with: |
| 27 | + |
| 28 | + packget add <path>/Keil.MDK-Middleware.pdsc |
| 29 | + |
| 30 | +### Generate software pack |
| 31 | + |
| 32 | +The software pack is generated using bash shell scripts. |
| 33 | + |
| 34 | +- `./gen_pack.sh` (provided via [Open-CMSIS-Pack/gen-pack]( |
| 35 | +https://github.com/Open-CMSIS-Pack/gen-pack)) generates the software pack. Run this script locally with: |
| 36 | + |
| 37 | + MDK-Middleware $ ./gen_pack.sh |
| 38 | + |
| 39 | +- `./Documentation/Doxygen/gen_doc.sh` generates the HTML documentation from the input in the folder `/Documentation/Doxygen/`. Run this script locally with: |
| 40 | + |
| 41 | + MDK-Middleware $ ./Documentation/Doxygen/gen_doc.sh |
| 42 | + |
| 43 | +### GitHub Actions |
| 44 | + |
| 45 | +The repository uses GitHub Actions to generate the pack, publish documentation, and verify reference applications: |
| 46 | + |
| 47 | +- `.github/workflows/pack.yml` based on [Open-CMSIS-Pack/gen-pack-action](https://github.com/Open-CMSIS-Pack/gen-pack-action) generates pack and documentation using the [Generate software pack](#generate-software-pack) scripts. |
| 48 | + |
| 49 | +- `.github/workflows/gh-pages.yml` publishes the documentation to [arm-software.github.io/MDK-Middleware](https://arm-software.github.io/MDK-Middleware/latest/General/index.html). The version drop-down selects previous documentation releases. |
| 50 | + |
| 51 | +- `.github/workflows/build_fs.yml` is a build test for the [File System reference applications](https://github.com/ARM-software/MDK-Middleware/tree/main/Examples/FileSystem). |
| 52 | + |
| 53 | +- `.github/workflows/build_net.yml` is a build test for the [Network reference applications](https://github.com/ARM-software/MDK-Middleware/tree/main/Examples/Network). |
| 54 | + |
| 55 | +- `.github/workflows/build_usb.yml` is a build test for the [USB reference applications](https://github.com/ARM-software/MDK-Middleware/tree/main/Examples/USB). |
| 56 | + |
| 57 | +## Repository top-level structure |
| 58 | + |
| 59 | +Directory | Description |
| 60 | +:---------------------------|:-------------- |
| 61 | +[.ci](https://github.com/ARM-software/MDK-Middleware/tree/main/.ci) | Build tests for components and reference applications. |
| 62 | +[.github/workflows](https://github.com/ARM-software/MDK-Middleware/tree/main/.github/workflows) | [GitHub Actions](#github-actions). |
| 63 | +[Components](https://github.com/ARM-software/MDK-Middleware/tree/main/Components) | Source code of MDK-Middleware components. |
| 64 | +[Documentation](https://github.com/ARM-software/MDK-Middleware/tree/main/Documentation) | Doxygen source of the [documentation](https://arm-software.github.io/MDK-Middleware/latest/General/index.html). |
| 65 | +[Examples](https://github.com/ARM-software/MDK-Middleware/tree/main/Examples) | Reference applications that show the usage of MDK-Middleware. |
| 66 | +[license_terms](https://github.com/ARM-software/MDK-Middleware/tree/main/license_terms) | Standard Arm Tools license with MDK-Middleware usage permission. |
| 67 | + |
| 68 | +## License |
| 69 | + |
| 70 | +The MDK-Middleware can be used free-of-charge with Arm-based devices and deployed as part of software applications. Refer to [redistributables.txt](https://github.com/ARM-software/MDK-Middleware/blob/main/license_terms/redistributables.txt) for more information. |
| 71 | + |
| 72 | +Users of the [MDK-Professional or MDK-Essential edition](https://www.keil.arm.com/keil-mdk/#mdk-v6-editions) are entitled to contact Arm for support and maintenance. |
0 commit comments