SlideShare a Scribd company logo
1 of 34
Exception Twente
Code-generatie
in embedded systemen
Ruud Jeurissen
Ruud.Jeurissen@demcon.nl
15 januari 2014
2
WC ventilator
3
=+
WC ventilator
4
??????
??????
WC ventilator
5
6
7
8
mechanica software
elektronica
Mechatronica !!Embedded sw
Achtergrond
???
9
???embedded
systemen
??????
WC ventilator
Embedded systemen
10
bare-metal (real-time) OS
- main-loop
- timed interrupt (μC IRQ)
- parallele processen
- multi-threading
- minimale overhead
- (hard) real-time
- connectivity (Ethernet, files)
- GUI
- kleine (32-bit) μ-controller
- dicht op de hardware
- applicatie-processor
- extern geheugen e.d.
- snelle opstarttijd - extern opstart medium
• bare-metal smaak: “timed-interrupt”
• hardware timer die bv elke 1ms interrupt
geeft
• waarom?
– nodig voor regeltechniek
– m.n. sensoren (afgeleiden in regel algoritme)
• ontwerp kan ook zonder timed-interrupt,
of met meerdere interrupts
Embedded systemen
11
• timed interrupt samen met PLC aanpak:
– read inputs
– calculate model (= domain-code)
– write outputs
• skeleton = main-loop + timed IRQ + …
– timed IRQ = model
– main-loop = debug-code
Embedded systemen
12
• DEMO…
– voorbeeld van skeleton
Embedded systemen
13
• stap 1: keuze OS (of bare-metal)
• stap 2: start met ontwerp
• DEMO…
– tooltje voor state-diagram
WC-ventilator
14
• stap 3: ontwerp implementeren
• lui aangelegd
– lui = slecht (werkgever)
– lui = efficient (ik)
– efficient = hoge productiviteit
– lui = goed
• geen zin om ontwerp om te zetten naar
code  code generatie
WC-ventilator
15
???
16
???embedded
systemen
???code
generatie
WC ventilator
• niet zomaar tooltje voor state-machines
• Matlab / Simulink met StateFlow
Code generatie
17
Simulink
18
• Matlab / Simulink
– grafisch programmeren
– hiërarchische sub-systems (= operand, functie)
– continu proces (bv sample-based elke 1ms)
variabele
sub-system
state-machine
inputinput
outputoutput
• DEMO…
– Matlab / Simulink code-generatie
Code generatie
19
• hoe te combineren met skeleton?
Code generatie - integratie
20
app specific
generated
uC specific
reusable
Legenda:
• DEMO...
– integratie genegereerde code in skeleton
– compile, download, run
Code generatie - integratie
21
• simulink = simuleren
• model-based design
Code generatie - integratie
22
???
23
???embedded
systemen
model-based
designcode
generatie
WC ventilator
Model-based design
24
voila,
het werkt !!
• DEMO...
– doorlopen model-based design proces
Model-based design
25
Model-based design
26
• code-generatie
– geneert C-code
– willekeurige C/C++ compiler
– willekeurige hardware
– stappenplan per disciplines
• blauw = system engineer
• groen = sw-engineer
– debuggen zonder sw-engineer
the difference between men and boys,
is the size of their toys projects
27
the difference between men and boys,
is the size of their toys projects
28
???
29
groot
en klein
embedded
systemen
model-based
designcode
generatie
WC ventilator
30
Active Piston Prover
– ook skeleton uit Simulink
gegenereerd
– dedicated electronica
31
Qlima – lucht cond.
– CO2 / temp regelen
– 8-bit AVR
– actieve roosters
– wireless
32
DORC – oog chirurgie
– DSP
– dedicated linear motors
– meerdere uC
– CAN-open
34
Finapres – bloeddrukmeter
– medische algoritmes
– PC-hardware
– integratie C#/.NET
Vragen ??
Vragen?
35

More Related Content

Similar to 2015 01-15.exception twente.ruud jeurissen

CV Ervaringsoverzicht H Kanters10
CV Ervaringsoverzicht H Kanters10CV Ervaringsoverzicht H Kanters10
CV Ervaringsoverzicht H Kanters10Henri Kanters
 
Industrialisatie van Software Ontwikkeling
Industrialisatie van Software OntwikkelingIndustrialisatie van Software Ontwikkeling
Industrialisatie van Software OntwikkelingModeling Value Group
 
P&O: les 4 - sesssion 2
P&O: les 4 - sesssion 2P&O: les 4 - sesssion 2
P&O: les 4 - sesssion 2Erik Duval
 
Workshop: Introductie tot Python
Workshop: Introductie tot PythonWorkshop: Introductie tot Python
Workshop: Introductie tot PythonVincent Claes
 
Infosessie Smals Research - Application platform as a Service - 12/2013
Infosessie Smals Research - Application platform as a Service - 12/2013Infosessie Smals Research - Application platform as a Service - 12/2013
Infosessie Smals Research - Application platform as a Service - 12/2013Smals
 
Romex intro test no animation
Romex intro test no animationRomex intro test no animation
Romex intro test no animationPeter van Oostrom
 
Olaf Peters - Technolution Spark
Olaf Peters - Technolution SparkOlaf Peters - Technolution Spark
Olaf Peters - Technolution SparkGuidoBacker1
 
Magento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelen
Magento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelenMagento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelen
Magento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelenYireo
 
Webinar: 'Terug naar eenvoud in ICT | Dé roadmap voor ICT-innovatie & datacen...
Webinar: 'Terug naar eenvoud in ICT | Dé roadmap voor ICT-innovatie & datacen...Webinar: 'Terug naar eenvoud in ICT | Dé roadmap voor ICT-innovatie & datacen...
Webinar: 'Terug naar eenvoud in ICT | Dé roadmap voor ICT-innovatie & datacen...ICT-Partners
 
Jan Guldentops over Linux
Jan Guldentops over LinuxJan Guldentops over Linux
Jan Guldentops over Linux247 Invest
 
Alle voordelen van FlexPod en EMC VSPEX converged infrastructuren op een rij
Alle voordelen van FlexPod en EMC VSPEX converged infrastructuren op een rijAlle voordelen van FlexPod en EMC VSPEX converged infrastructuren op een rij
Alle voordelen van FlexPod en EMC VSPEX converged infrastructuren op een rijProact Netherlands B.V.
 
2016 11-15 - nvrb - software betrouwbaarheid
2016 11-15 - nvrb - software betrouwbaarheid2016 11-15 - nvrb - software betrouwbaarheid
2016 11-15 - nvrb - software betrouwbaarheidJaap van Ekris
 
Waarom 42windmills
Waarom 42windmillsWaarom 42windmills
Waarom 42windmills42windmills
 

Similar to 2015 01-15.exception twente.ruud jeurissen (20)

CV Ervaringsoverzicht H Kanters10
CV Ervaringsoverzicht H Kanters10CV Ervaringsoverzicht H Kanters10
CV Ervaringsoverzicht H Kanters10
 
Industrialisatie van Software Ontwikkeling
Industrialisatie van Software OntwikkelingIndustrialisatie van Software Ontwikkeling
Industrialisatie van Software Ontwikkeling
 
Dvbshop
DvbshopDvbshop
Dvbshop
 
P&O: les 4 - sesssion 2
P&O: les 4 - sesssion 2P&O: les 4 - sesssion 2
P&O: les 4 - sesssion 2
 
Workshop: Introductie tot Python
Workshop: Introductie tot PythonWorkshop: Introductie tot Python
Workshop: Introductie tot Python
 
Netflow Performance
Netflow PerformanceNetflow Performance
Netflow Performance
 
Infosessie Smals Research - Application platform as a Service - 12/2013
Infosessie Smals Research - Application platform as a Service - 12/2013Infosessie Smals Research - Application platform as a Service - 12/2013
Infosessie Smals Research - Application platform as a Service - 12/2013
 
Romex intro test no animation
Romex intro test no animationRomex intro test no animation
Romex intro test no animation
 
Olaf Peters - Technolution Spark
Olaf Peters - Technolution SparkOlaf Peters - Technolution Spark
Olaf Peters - Technolution Spark
 
Ehterne TCP / IP
Ehterne TCP / IPEhterne TCP / IP
Ehterne TCP / IP
 
Meetup ASP.NET 5 19/11/2015
Meetup ASP.NET 5 19/11/2015Meetup ASP.NET 5 19/11/2015
Meetup ASP.NET 5 19/11/2015
 
Dvbshop
DvbshopDvbshop
Dvbshop
 
De processor
De processorDe processor
De processor
 
Magento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelen
Magento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelenMagento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelen
Magento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelen
 
Webinar: 'Terug naar eenvoud in ICT | Dé roadmap voor ICT-innovatie & datacen...
Webinar: 'Terug naar eenvoud in ICT | Dé roadmap voor ICT-innovatie & datacen...Webinar: 'Terug naar eenvoud in ICT | Dé roadmap voor ICT-innovatie & datacen...
Webinar: 'Terug naar eenvoud in ICT | Dé roadmap voor ICT-innovatie & datacen...
 
Jan Guldentops over Linux
Jan Guldentops over LinuxJan Guldentops over Linux
Jan Guldentops over Linux
 
Alle voordelen van FlexPod en EMC VSPEX converged infrastructuren op een rij
Alle voordelen van FlexPod en EMC VSPEX converged infrastructuren op een rijAlle voordelen van FlexPod en EMC VSPEX converged infrastructuren op een rij
Alle voordelen van FlexPod en EMC VSPEX converged infrastructuren op een rij
 
2016 11-15 - nvrb - software betrouwbaarheid
2016 11-15 - nvrb - software betrouwbaarheid2016 11-15 - nvrb - software betrouwbaarheid
2016 11-15 - nvrb - software betrouwbaarheid
 
Waarom 42windmills
Waarom 42windmillsWaarom 42windmills
Waarom 42windmills
 
161026 Brochure ICS
161026 Brochure ICS161026 Brochure ICS
161026 Brochure ICS
 

2015 01-15.exception twente.ruud jeurissen

Editor's Notes

  1. Onderwerp: de WC-ventilator
  2. Iedereen kent het probleem
  3. Maar waarom zo geobsedeerd door WC-ventilator? Waarom bij Exception Twente? Wordt gaandeweg hopelijk duidelijk. Misschien eerst beginnen met mijn achtergrond
  4. Hier ben ik opgegroeid, in de schuur van mijn vader boren, zagen, draad tappen kortom: dingen maken
  5. later middelbare school project in maandblad Kijk: robot muis voor de tijd van uC, puur electronica
  6. 4 jaar later (eind middelbare school) eerste computer, de Commodore 64 Basic-taal uitgebreid om 3D draad-modellen weergeven in perspectief, roteren, transleren
  7. mechatronica  en dan specifiek embedded sw ik ben Ruud Jeurissen senior software engineer 12 jaar bij Demcon
  8. Dus 1e reden voor enthousiasme over WC-ventilator: - mogelijkheid voor embedded systeem
  9. Embedded systemen onderverdelen in 2 groepen: bare-metal vs (real-time) OS Kenmerken Wanneer gebruik je wat?
  10. Iets meer over de ‘timed interrupt’
  11. Laten zien hoe skeleton is opgebouwd: main, application, piniocfg, test Demo looplicht
  12. De WC-ventilator: eerste het ontwerp maken
  13. Stap 3: ontwerp implementeren Probleempje, ben beetje lui…
  14. 2e reden voor enthousiasme over WC-ventilator: - mogelijkheid tot code-generatie
  15. wie is bekend met Simulink? voor wie Matlab / Simulink nog niet kent: korte introductie
  16. Demo: - benodigde instellingen om code te genereren - code genereren - gegenereerde code laten zien
  17. demo… glue-logic laten zien compileren  downloaden  testen geheel oscilleert !!
  18. 3e reden voor enthousiasme over WC-ventilator: - mogelijkheid tot Model-based design
  19. het principe van code-generatie: maak model van: applicatie, hardware, real-world simuleer (test) het model genereer code van: applicatie, hardware-drivers download naar µC het werkt !!  we have managed rocket science !! wie gelooft dit? weinig: eens kijken of ik er een paar kan overtuigen veel:
  20. Kijken of we dat in de praktijk kunnen brengen simulatie probleem herkennen probleem oplossen nieuwe code genereren Copy, compile, download, test  works!
  21. nu meer detail: hoe werkt code-generatie process uitgetekend stappen kort duiden delen dus parallel uit echte tests komen nog verbeterpunten wijziging geen vertaling tussen system-engineer naar code - snel - zonder tussenkomst van sw-engineer - zonder nieuwe bugs op sw-nivo
  22. Onderwerp: de WC-ventilator
  23. Active Piston Prover (APP) - ook skeleton uit Simulink gegenereert - dedicated electronica
  24. QLima – luchtconditioning - CO2 / temperatuur regeling ruimtes - 8-bits AVR - actieve roosters - wireless
  25. DORC – oog chirurgie - DSP - meerdere uC
  26. !!! - !!! - gedistribueerde functionaliteit via CAN-bus - 4x uC, 1x DSP - 12 stepper-motors - TFT
  27. Finapres – bloeddrukmeter - PC-sw - integratie C#/.NET - medische algoritmes