What's new in Embedded Wizard 11?
With the just-released version 11 you’ve added a second optimization level to the Chora compiler. How does this enhance the development process?
As you probably already know, the Chora Compiler “converts” the GUI program developed with Embedded Wizard Studio to the target’s source code, which is usually for embedded systems ANSI C. We’ve added a new optimization level during this generation process which implies that unused things are eliminated – this is resulting in a significantly reduced flash size. Furthermore, loops or conditional statements depending on a constant operand are “enrolled” and pre-evaluated which further reduces flash size. Just to get an idea of the savings: A simple ‘Hello World’ application was roughly reduced by half of the former flash size. This optimization is based on the Mosaic class library of Embedded Wizard. Of course, the percentage varies from application to application.
Which optimizations were integrated with regards to lowering the memory footprint of the embedded code?
Due to the fact that instructions and constant data are optimized, first of all, the memory flash footprint is reduced and secondly, as unused members are eliminated as well this also has an impact on the RAM usage.
Next to these Chora Compiler updates, we have added more functionalities to optimize caches, for example for the glyph cache: This cache can now be reduced to a minimum of only 32 by 32 pixels which helps also to save a couple of kilobytes of RAM. Next to that, one can also instrumentalize the so-called Graphics Engine, so the underlying Platform Package, in such a way that unused drawing operations, that are not required inside the UI, are not taken into account during the compilation process, e.g. if you do not require to render any gradients you can just eliminate all the source code that handles drawing gradients. This also results in reducing flash size.
I’d like to mention two major UX updates. Firstly, we simplified the gallery handling and added a straightforward filter functionality for all list items. The developer does not need to browse through all the available components anymore. Users can easily grasp the highlighted component template as it is now standing out. Secondly, we have added another really helpful functionality: If you are working on an implementation of a class you normally cannot add a bitmap resource, this is greyed out and cannot be used in the current view. By changing the view to a Unit the developer is now able to easily drag and drop that element into the desired composer.
Embedded Wizard Studio is an application developed for Microsoft Windows as it relies on the Windows own API. Now you’ve adapted Embedded Wizard Studio 11 to be executed directly on Linux by using the WINE environment. In which cases or set-ups is this beneficial and how?
This is beneficial for scenarios where you need to compile the resulting source code for Linux environments, e.g. for MPUs, and therefore the used setups are Linux toolchains and Linux development environments. Sometimes it could be a burden to move the UI from a Windows system, where the UI is developed to a Linux system and there to compile, link and deploy the application to the final target. Hence you do not need to maintain two systems. The overall toolchain that is required when using Embedded Wizard with a Linux system has been significantly reduced so that the developer is now able to use only a Linux system to create a User Interface for microprocessors on Linux systems.
The Release Notes include further improvements within Mosaic. Could you name the ones to make the biggest difference in Embedded Wizard 11?
The most important new functionalities are the new component templates to support certain use cases when it comes to developing embedded GUI applications. To name some we’ve added the combo box or a base to implement a menu system. In addition to that also chart functionalities (like line charts, bar charts et cetera) were also added now as component templates. These give a developer an overall professional foundation for their unique UI widgets – with the useful side effect to save time.
To sum things up: Could you state neat and clean what is key in this release?
Embedded Wizard targets a wide range of MPUs and MCUs. With this update, the framework even expands the scale of use cases. Image a scale that goes from resource-constraint microcontrollers up to powerful microprocessors: Thanks to code optimizations and added functionalities, we go far beyond the MCU side whereas with the lineup of the WINE Linux we are expanding the scale also on the MPU side.
Moreover, Embedded Wizard 11 comes with a range of further MPU platforms, like NXP i.MX 6, i.MX 7 and i.MX 8, and thus the MPU coverage with added Build Environments makes our framework even more attractive for upscaling use cases.
We can proudly say that the overall MCU-MPU scale establishes new standards!
And – last, but not least: Can Embedded Wizard users and interested persons expect further learning materials?
Absolutely! There is a video showcasing these features which are already available (see below). Next to that, we recommend having a detailed reading of the current Release Notes, our (video) Quick Tour, the videos of the Master Classes, our forum, our vast Knowledge Base, or just get in touch with us for individual help!