mbedtarget - a simulink target for cortex-m microcontrollers · simulink model.slx simulink coder...
TRANSCRIPT
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?