Open-CMSIS-Pack Home
Welcome to Open-CMSIS-Pack Project Home
The project vision:
Create a flexible and easy to use end to end development flow - from project creation to execution of the software on real or virtual hardware - for embedded software that supports:
- command line, CI and IDEs that are cloud or host based
- at least windows, linux on x86 and arm, and macOS host operating systems
- multiple toolchains for building libraries and executables
- multiple dependent projects targeting different contexts of the same hardware or the same context of different hardware
- multiple configuration for fine tuning settings and selections for reusing projects for different use cases like test, debug and release
- usage of meta information for devices, boards and software components shared via publicly hosted and privately maintained software packs with the aim to maximize ease of use and reuse
- definition and management of hardware resources that enables the processing of template files to create context specific configuration files (e.g. linker script)
- distribution, sharing and reuse of complex multi-projects (solution), projects and partial projects (layers)
- hardware specific programming and debug of complex, dependent project executables
- discovery of boards, devices, processors as well as software components, layers, projects, solutions and packs
- tools and methodologies for creating, maintaining and validating a distributable
- training material and documentation for developers and end-users
Help Wanted
There is still a lot do. Do you want to get involved?
Look at the areas below and visit the associated repositories to learn more. We currently use C++ and GO, depending on the project.
Join our weekly meetings.
The project aims: (https://www.Open-CMSIS-Pack.org)
- Lead the evolution of the definition of the CMSIS-Pack specification
- The project uses github issues to discuss input: https://github.com/Open-CMSIS-Pack/Open-CMSIS-Pack-Spec/issues/new/choose
- Doxygen based documentation: https://github.com/Open-CMSIS-Pack/Open-CMSIS-Pack-Spec/tree/main/doxygen
- Any update to the specification requires an update of the Schema and PackChk utility
- Backed by documentation and training material
- CLI tools for major host platforms targeting:
- Package creation and validation
- packgen https://github.com/Open-CMSIS-Pack/devtools/tree/main/tools/packgen - create a software pack for a Cmake based software repository
- schema validation of the package description: https://github.com/Open-CMSIS-Pack/Open-CMSIS-Pack-Spec/blob/main/schema/PACK.xsd - using tools like xmllint.
- packchk https://github.com/Open-CMSIS-Pack/devtools/tree/main/tools/packchk - semantic validation of a software pack description and the archive content
- Package management including discovery of components, devices, boards and examples
- cpackget https://github.com/Open-CMSIS-Pack/cpackget - download, add and remove packs and local repositories to CMSIS_PACK_ROOT
- Project management for constructing projects from local files and components
- projmgr https://github.com/Open-CMSIS-Pack/devtools/tree/main/tools/projmgr - yml formatted solution/project/layer descriptions.
- Project build management
- buildmgr (aka CMSIS-Build) https://github.com/Open-CMSIS-Pack/devtools/tree/main/tools/buildmgr - converting a single target, single configuration project (XML: cprj) into a CMake build
- Package index utilities
- vidx2pidx https://github.com/Open-CMSIS-Pack/vidx2pidx - create a flat index file from a vendor index file (a public index file is maintained here: www.keil.com/pack/index.pidx (vendor index: www.keil.com/pack/keil.vidx)
- Shared Components (C++) - shared by genpack, packchk, buildmgr, projmgr
- e.g. RTE Data Model: https://github.com/Open-CMSIS-Pack/devtools/tree/main/libs/rtemodel
- Package creation and validation
Open-CMSIS-Pack Project:
- Source Repository Organization: github.com/Open-CMSIS-Pack
- Scheduled meetings: weekly Technical Project Meetings - Tuesdays 16:00 - 17:00 CET - https://linaro-org.zoom.us/j/98302382714?pwd=SVdtS0ZGWlg1cXVBRU9JUkpNa21CUT09
Working Group (WG) Meeting Notes: Meeting notes
- Key contacts:
- Bill.Fletcher@linaro.org
- Joachim.Krech@arm.com (Project Lead)
- Mailing list:
- register/unregister here: https://op-lists.linaro.org/mailman3/lists/open-cmsis-pack-dev.op-lists.linaro.org/
- GitHub project boards: Open-CMSIS-Pack
Need inspiration?
Get a quick intro into what spaces are, and how to best use them at Confluence 101: organize your work in spaces.
Check out our guide for ideas on how to set up your space overview.
If starting from a blank space is daunting, try using one of the space templates instead.