MbedTarget - A Simulink Target for Cortex-M Microcontrollers · Simulink model.slx Simulink Coder...

Preview:

Citation preview

MbedTarget - A Simulink

Target for Cortex-M

Microcontrollers

Olaf Hagendorf

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018 2

Inhalt

Motivation und Ziele

Cortex-M Mikrocontroller

Simulink/Embedded Coder Targets

Mbed Target

Fazit/Ausblick

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018 3

Spezifikationen

Prozessanalyse

(Technologieschema,..)

Modellierung

Simulation

Entwickl. von

Steuerungsfunktionen

Erprobung

Codierung

Test des

Gesamtsystems

Test von

Teilsystemen

Komponententests

ImplementierungImplementierung

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Masterarbeit – mechatronische Hand

4

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

studentischen Arbeiten – Segway und

Strömungskanal

5

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Entwurf Regler/Steuerung

6

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Entwurf Regler/Steuerung

7

Realer Prozess

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Ziel

8

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Cortex-M Serien

9

Quelle: https://www.arm.com

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Standardisierte Cortex Mx Kerne

10

Quelle: https://www.arm.com

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Cortex M4F: STM32F407

11

Quelle: https://www.st.com Datasheet STM32F407xx

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Mbed

12

Quelle: https://www.mbed.com/en/

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Mbed

13

Quelle: https://www.mbed.com/en/

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Mbed OS Grundstruktur

14

allg. Code identisch für alle Targetsmbed API

Applikation

mbed HAL

Hersteller HAL

CMSIS

Mikrocontroller

targetspezifischer wrapper zw.

Mbed HAL und Hersteller HAL

allg. Hersteller HAL+CMSIS (nicht mbed spezif.)

C++

C

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Mbed Beispiel: Blinky

15

#include "mbed.h"

DigitalOut myled(LED1);

int main() {

while (1) {

myled = 1;

wait(0.5);

myled = 0;

wait(0.5);

}

}

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Simulink Targets für Cortex-M

Von Mathworks:

Embedded Coder Support Package for STMicroelectronics

Discovery Boards

Simulink Coder Support Package for STMicroelectronics Nucleo

Boards

Vom MCU Hersteller:

STM32-MAT/TARGET

Von Drittanbietern:

Waijung Blockset

16

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Simulink Targets für Cortex-M

Bewertung:

Sehr unterschiedliche Funktionalität:

STM32-MAT/TARGET – fast vollständige MCU

Support Packages von Mathworks – minimal

Eingeschränkte Kompatibilität

Mathworks: verschiedene Targets für wenige MCUs

Herstellerspezifisch: nur vom Hersteller

Closed Source

17

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Mbed Target

Blockset für Peripheriefunktionen basierend auf Mbed OS

Digital- und Analog Input/Output, Timer, Encoder, …

Kommunikation: UART, I2C, SPI, Onewire, Ethernet, …

Externe ICs:

ADCs, DACs, I/O

Sensoren: Temperatur, Druck, Entfernung, IMUs

Aktoren: Schrittmotor

Basiert auf Mbed Offline Toolchain

Unterstützt Embedded Coder und Simulink Coder

Open Source

18

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Mbed Target - Beispiel

19

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Mbed Target - Beispiel

20

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

%function Start(block, system) Output

%assign nPortName = LibBlockParameterValue(PortName, 0)

%assign nPinNumber = LibBlockParameterValue(PinNumber, 0)

%assign pname = "P" + FEVAL("char",nPortName+64) + "_" + FEVAL("int2str",nPinNumber-1)

%assign name = FEVAL("strrep",LibGetFormattedBlockPath(block),"/","_")

...

// %<Type> (digitalOutput): '%<Name>'

DigitalOut %<name>(%<pname>);

...

%endfunction

%function Outputs(block, system) Output

%assign u1_val = LibBlockInputSignal(0, "", "", 0)

%assign name = FEVAL("strrep",LibGetFormattedBlockPath(block),"/","_")

%<name> = %<u1_val>;

%endfunction

Mbed Target – Simulink Block

21

S-Function

DigitalOut myled(LED1);

myled = 1; myled = 0;

TLC Datei

Mbed Code

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Mbed Target - Workflow

22

Simulinkmodel.slx

Simulink CoderBuild

Target Language Compiler

Make

Target flash

model.cpp+

Makefile

model.rtw

Mbed OS SimulinkProject generator

Mbed OS 5library

target_tools.mk

Simulink CoderSimulink Coder

Run-time interfacesupport files

extensionlibraries

model.bin

librarieslibraries

Mbed OS 5offline toolchain

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Mbed Target

23

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Fazit/Ausblick

24

Fazit:

Komplett freies Target für Simulink und Embedded Coder

Unterstützung aller Mbed kompatiblen Mikrocontroller

Umfangreiches Blockset für Mbed OS API

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Fazit/Ausblick

25

Fazit:

Komplett freies Target für Simulink und Embedded Coder

Unterstützung aller Mbed kompatiblen Mikrocontroller

Umfangreiches Blockset für Mbed OS API

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Fazit/Ausblick

26

Fazit:

Komplett freies Target für Simulink und Embedded Coder

Unterstützung aller Mbed kompatiblen Mikrocontroller

Umfangreiches Blockset für Mbed OS API

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Fazit/Ausblick

27

Fazit:

Komplett freies Target für Simulink und Embedded Coder

Unterstützung aller Mbed kompatiblen Mikrocontroller

Umfangreiches Blockset für Mbed OS API

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Fazit/Ausblick

28

Fazit:

Komplett freies Target für Simulink und Embedded Coder

Unterstützung aller Mbed kompatiblen Mikrocontroller

Umfangreiches Blockset für Mbed OS API

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Fazit/Ausblick

29

Fazit:

Komplett freies Target für Simulink und Embedded Coder

Unterstützung aller Mbed kompatiblen Mikrocontroller

Umfangreiches Blockset für Mbed OS API

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Fazit/Ausblick

30

Fazit:

Komplett freies Target für Simulink und Embedded Coder

Unterstützung aller Mbed kompatiblen Mikrocontroller

Umfangreiches Blockset für Mbed OS API

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Fazit/Ausblick

31

Fazit:

Komplett freies Target für Simulink und Embedded Coder

Unterstützung aller Mbed kompatiblen Mikrocontroller

Umfangreiches Blockset für Mbed OS API

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Fazit/Ausblick

32

Fazit:

Komplett freies Target für Simulink und Embedded Coder

Unterstützung aller Mbed kompatiblen Mikrocontroller

Umfangreiches Blockset für Mbed OS API

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Fazit/Ausblick

33

Fazit:

Komplett freies Target für Simulink und Embedded Coder

Unterstützung aller Mbed kompatiblen Mikrocontroller

Umfangreiches Blockset für Mbed OS API

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Fazit/Ausblick

34

Fazit:

Komplett freies Target für Simulink und Embedded Coder

Unterstützung aller Mbed kompatiblen Mikrocontroller

Umfangreiches Blockset für Mbed OS API

Nachteil: Ressourcenverbrauch (Speicher)

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Fazit/Ausblick

35

Fazit:

Komplett freies Target für Simulink und Embedded Coder

Unterstützung aller Mbed kompatiblen Mikrocontroller

Umfangreiches Blockset für Mbed OS API

Nachteil: Ressourcenverbrauch (Speicher)

programming

principle

Flash size

(byte)

RAM size

(byte)

assembler 88 0

C without library 716 1632

MCU specific HAL 13921

28522

10321

10322

Mbed HAL 225763

377164

14323

84844

MbedTarget v1 58932 8060

1 low layer library used [5] 2 high layer library used [5]3 without RTOS 4 with RTOS (default config.)

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018

Fazit/Ausblick

36

Fazit:

Komplett freies Target für Simulink und Embedded Coder

Unterstützung aller Mbed kompatiblen Mikrocontroller

Umfangreiches Blockset für Mbed OS API

Nachteil: Ressourcenverbrauch (Speicher)

Ausblick:

Weitere Vereinfachung der Benutzung

Unterstützung External Mode

Erweiterung des Block Sets

Olaf Hagendorf, ASIM Fachtagung Heilbronn 08./09.03.2018 37

Fragen?

Recommended