The xPack eXtensible Component Definition Language framework
Last modified on Mon Feb 6 19:25:53 2017 UTC.
This site is generated by Jekyll and is currently hosted by GitHub.
The first contact with configuration definitions languages happened in the early 2000, when I used eCos in an embedded project. Since the GUI based eCos configuration tools were mainly Windows tools, and at that time I was a hard core command line Unix user, the configuration framework was more of a nuisance than a useful technology.
The situation changed when I started work on the µOS++, a C++ embedded OS. Although the design was influenced by eCos, the eCos CDL was considered too eCos specific to be useful in other projects, not to mention that Tcl was already a bit too rusty, even then.
However, after using µOS++ for several years, it became clear that managing large collections of sources without an automated tool is more and more difficult.
After several studies the idea of a Python implementation of a CDL proved feasible, and a rapid prototyping version in Python was implemented.
To give this new project a new home, a SourceForge forge project was created, basically a Git repository and two ticketing systems, one for bugs and one for feature requests, complemented by a Wiki.
After the successful rapid prototyping phase, the SRS wiki page was written, followed by the XCDL Definition Reference for all objects and properties.
This was followed by a more or less exhaustive implementation, and on January 13th the XCDL framework produced the first functional run of a build generated with the configMakefile tool, the conversions test for the Debug class.
In early 2014, ARM released a preliminary version of CMSIS Pack, as a “a delivery mechanism for software components, device parameters, and evaluation board support”. Although far from eCos and aiming at different purposes, the CMSIS Pack was considered an important step forward, and discussions with the CMSIS team; on April 14th an invitation to join the internal CMSIS Google Group was received.
On April 27th, a branch was created in the GNU ARM Eclipse repository, and work on an Eclipse plug-in to manage XCDL/CMSIS packs was started.
The first goal was to write a plug-in to manage the existing Keil CMSIS packages, to be used as a base for future XCDL specific extensions. The release candidate of the packs manager plug-in was made available for review on June 16th, 2014.
A more or less complete set of specifications, based on The eCos Component Writer’s Guide, with multiple changes, was put together on the XCDL MediaWiki site.
The project wiki was migrated to GitHub Wiki. The initial version is still available from SourceForge.
The GitHub Wiki pages were migrated to GitHub Pages.