distortos 0.5.0 released

Half a year of intensive development, represented by over 600 commits, led to the fifth release of distortos0.5.0. As previously, snapshots of distortosExamples and distortosTemplateSubfolder were also created with a 20170914 timestamp.

With introduction of support for the whole STM32L0 family of microcontrollers (ARM Cortex-M0+ core, ARMv6-M architecture), the number of chips on which distortos can be used has risen to almost 500!

Support for two new boards was contributed:

It is worth noting, that all supported boards are now generated from devicetree files (*.dts). This format is used commonly in Linux, where it is used to describe hardware in a hierarchical tree structure. New release of distortos contains Python scripts which can read such devicetree files (using ply package for lexing and parsing) and generate appropriate files (using Jinja2 template engine). This new functionality can be used with make board CONFIG_FILE=path/to/config.dts command.

New release also contains GDB pretty-printers for all lists (like list of threads in scheduler, list of active software timers, …) and queues (message queues, fifo queues, …) used in distortos. This is an invaluable debugging feature, allowing easy examination of contents of such objects, which otherwise is nearly impossible. Compare the two screenshots below, which show the contents of distortos::StaticMessageQueue<char, 16> with characters of the string "pretty ;)" inserted in random order, but with appropriate priority. The left screenshot – with pretty-printers disabled – won’t allow you to guess the contents of the queue unless you have deep knowledge about underlying implementation – without such knowledge, you can’t be sure whether there is anything in the queue or not. The right screenshot – showing the situation with pretty-printers enabled – clearly shows the priority of each element (even entries, numbers) and its contents (odd entries, characters), with no doubt about amount of data currently stored in the queue.

Source packages in 7z and tar.xz formats may be found in Downloads section or downloaded directly using the links below:

Browse the changelogs of respective packages for a complete list of changes: