In the last few months we have passed an important milestone for DSP and a smaller but for some no less important announcement of tools that can help build DSP systems. In some small way I’ve been involved with both so I’m particularly proud to write about them!
The first, announced on the 29th of October was the first official release of MatLab and Simulink support for ARM. This is something we started with The MathWorks over a year ago and for me is both an important milestone and the start of a development path that I hope will make ARM the best supported architecture in the MathWorks tools world. What was announced, well it was that the key code generation tools within the environment now produce optimised code for ARM, through the CMSIS DSP libraries.
Why is this so important, well because for many industries MATLAB is the key environment used by developers for the rapidly growing use of model-based development. For the smallest MCUs (and even the largest) the potential overheads of auto-code can mean it is not as widely used as it could be.
The technology is clever and in essence uses code replacement techniques to map the MATLAB graphical system simulation environment called Simulink to direct calls from the DSP System Toolbox to ARM’s optimised DSP libraries. The results so far are very promising, about a 10x performance improvement when compared to compiling generic, portable C. This could clearly make the difference between a usable system and one that simply needs more resources that a cost-focused embedded system could afford.
At the recent TechCon event we showed an audio demo that uses this code replacement technology to good effect. The demo was put together for us by our friends at DSP Concepts. We are going to be showing this demo at some other ARM events in the near future including Embedded World in February.
Another really useful tool that makes a big contribution to DSP development on ARM was also announced recently following many years of development. If you are building a DSP system digital filters will often as not play a key part in the system. As a result a graphical editing tool that enables these to be generated efficiently and rapidly is vital. When I started to talk to Mike Taylor at MicroModeler in the spring, supporting ARM was the next on his list and it was good to have been able to help out at that point. Now full ARM support is in place, again using CMSIS DSP library to provide a really optimal code implementation. Here is the link to this site:
http://www.micromodeler.com/
What I really like about their technology is that it fills a really useful gap for a DSP engineer between the high level application requirement for a filter, the specific characteristics that then follow on and what we provide in way of optimised code. It also very nicely complements tools like MatLab where filter design is certainly possible and still harder than some users can tackle.
I’m going to see if I can persuade Mike to write us a blog as an intro to digital filters, it is a complex topic and yet one that is more and more relevant as low cost DSP-capable Cortex-M processor-based MCUs are readily available.