XCDL (eXtensible Component Definition Language) Wiki
Contents
Introduction
This SourceForge project aims to define and implement an eXtensible Component Definition Language (CDL) intended to configure and build complex, package based, multi-variant (multi-architecture, multi-board, multi-toolchain) embedded projects. It is inspired by eCos CDL and ARM CMSIS Pack. The primary projects to benefit from XCDL are µOS++ IIIe (as content for the components) and GNU ARM Eclipse plug-ins (as tools to manage the components).
Credits
XCDL was definitely inspired by the eCos CDL, and many concepts are borrowed from it, including large excerpts from the eCos manuals, especially from The eCos Component Writer’s Guide.
The XCDL Eclipse implementation also maintains a good degree of compatibility with the current ARM CMSIS Packs (v1.x). More CMSIS Packs features are planned to be integrated, so that XCDL to be a superset of CMSIS Pack.
Reference implementations
The reference implementation will include one or more Eclipse plug-ins as graphical configuration tools (part of GNU ARM Eclipse plug-ins), and several Python command line tools for non graphical environments (source code part of this project).
Although targeted to Eclipse, these specifications should not prevent other development environments to implement them, so, if needed, these specifications might be amended to make alternate implementations possible.
Specifications & documentation
- XCDL concepts and rationals
- The XCDL language
- XCDL packages
- The build process (not yet updated for XCDL)
- The XCDL graphical tools
Reference
SRS
How to use
TBD
License
The XCDL software is released under the MIT License.
Miscellaneous
- eCos CDL remarks and criticism
- CMSIS Pack remarks and criticism
- XCDL remarks and criticism
- Project history
- Scratchpad
Old version (Python) pages
- The XCDL.py Software Requirements Specifications (outdated!)
- The XCDL.py Definitions Reference (outdated)
- The XCDL.py Tools Reference (outdated)
- The XCDL.py first run (outdated!)
References
- eCos - The embedded configurable operating system by Cygnus Solutions (Wikipedia)
- Manual: The eCos Component Writer’s Guide, by Bart Veer and John Dallaway, published in 2001, available from eCos Documentation.
- Book: Embedded software development with eCos, by Anthony J. Massa, published in 2003 at Prentice Hall, available from Amazon
- Book: Software Build Systems: Principles and Experience, by Peter Smith, published in 2011 at Addison Wesley, available from Amazon
- IEEE Std 830-1998: IEEE Recommended Practice for Software Requirements Specifications, published in 1998
- CMSIS-Pack - ARM mechanism to install software, device support, APIs, and example projects
Distribution management systems
- OpenEmbedded - the build framework for embedded Linux (with more detail in the Yocto documentation)
- BitBake User Manual (PDF)
- Gentoo Development Guide
- MacPorts Guide
- Arch PKGBUILD
Build tools
For an exhaustive list, see Wikipedia.
- Apache Maven (written in Java, XML configuration files)
- SCons (configuration files are Python scripts)
- RAKE - Ruby Make (tasks and dependencies in Ruby)
- Gradle (written in Groovy)
- CMake (written in C++; uses native builders like make)
- Waf (a build tool written in Python)
- GNU Make
Continuous integration
For an exhaustive list see Wikipedia.
- Hudson (the original Sun project, donated by Oracle to the Eclipse Foundation)
- Jenkins (the more active fork, backed by the project creator)
MediaWiki links
Consult the User's Guide for information on using the wiki software.