Matlab/Simulink Code-Generierung für Cortex-M-Prozessoren

Das Target Support Package für Cortex-M erzeugt aus Simulink-Blöcken optmierten Code unter Einsatz der ARM-CMSIS-Bibliothek
Das Target Support Package für Cortex-M erzeugt aus Simulink-Blöcken optmierten Code unter Einsatz der ARM-CMSIS-Bibliothek

Mit dem neuen Release 2013b und den richtigen Zusatzpaketen kann aus Matlab und Simulink Quellcode erzeugt werden, der für die Cortex-M-Prozessoren von ARM optimiert ist.

Besonders vorteilhaft ist diese Optimierung, wenn ein Cortex-M4-Prozessor eingesetzt wird, weil dann die im M4 integrierte DSP-Hardware benutzt wird. Um automatisch Code zu generieren ist zu Matlab und Simulink der Embedded Coder erforderlich, der zunächst plattformunabhängigen ANSI/ISO-C-Code erzeugt. Außerdem bietet sich für Steuer- und Regelungsaufgaben die DSP System Toolbox an. Diese DSP-Toolbox enthält typische DSP-Funktionen, z.B. Signaltransformationen wie Fast Fourier Transformation (FFT), Methoden zur Entwicklung und Implementierung digitaler FIR- und IIR-Filter (Filter mit endlicher und unendlicher Impulsantwort), Routinen für lineare Algebra, Matrizenberechnung u.v.m. Um natürliche Signale aus der realen Welt für einen Regelungsalgorithmus weiterzuverarbeiten ist die DSP-Toolbox also ein wertvolles Hilfsmittel.

Auf einem hochgezüchteten PC laufen die mit Simulink entworfenen Filterkreise oder Regelschleifen auch weitgehend flüssig ab. Anders sieht es auf schwachbrüstigen Embedded-Systemen aus, deren Prozessoren auf Energieeffizienz optimiert sind. Und da die Cortex-M-Prozessoren von ARM weit verbreitet sind, gibt es jetzt eine Funktion im Embedded-Coder, die den Code für diese Prozessoren optimiert. Das bedeutet, dass anstelle der Standard-ANSI/ISO-C-Routinen auf die Routinen der CMSIS-Bibliothek (Cortex Microcontroller Software Interface Standard) von ARM zugegriffen wird. Dieses sog. Target Support Package wird seit Version 2013b mit dem Embedded Coder standardmäßig mitgeliefert.

Das Target Support Package entstand im Rahmen einer Zusammenarbeit mit ST Microelectronics, die von Mathworks ein Support Package für das STM32F4 Discovery Board entwickeln ließen. Der Embedded Coder erzeugt nun generischen Code für alle Cortex-M-Prozessoren. Wer allerdings den STM32F4 verwendet, erhält von ST obendrein noch Simulink-Blöcke, die auch die auf dem F4 vorhandene Peripherie abbilden und den dafür notwendigen Code erzeugen. Für andere Prozessoren muss man die Kommunikation mit der Außenwelt manuell implementieren.