SlideShare a Scribd company logo
embedded Linux med C/C++
from a manager's
perspective
21/11-2018

Stefan Pielmeier
Content
• C

• C++

• emb. Linux
Why talk about C
embedded engineer CV:
• 1997: University of Erlangen/Nürnberg M.Sc.E.E.

• -2003: E/// 3G Basestation TI C6x DSP + System Des.

• -2003: TI Nice, 2.5G Project Leader/Senior Dev., TI DSP &
2G Chipset

• -2007: TI Aalborg 3G Protocol Stack

• -2010: Telenor Aalborg, Data Core

• -2018: Thrane & Thrane, SAILOR Radio
Why talk about C
embedded engineer CV:
• 1997: University of Erlangen/Nürnberg M.Sc.E.E.

• -2003: E/// 3G Basestation TI C6x DSP + System Des.

• -2003: TI Nice, 2.5G Project Leader/Senior Dev., TI DSP &
2G Chipset

• -2007: TI Aalborg 3G Protocol Stack

• -2010: Telenor Aalborg, Data Core

• -2018: Thrane & Thrane, SAILOR Radio
no C/C++
What do we expect from
Software Programming Lan
robust whine instead of c
extendible
self-explaining, safe to
ambiguous
reusable
motivating to make goo
test them
low production cost
flexible, attract mo
workforce, easy to u
documented (google)
easy to integrate wit
short lead time
embedded: save ressources
nifty switches allowing
real time ressource
What do we expect from
Software Programming Language C
robust whine instead of crash
extendible
self-explaining, safe to use, non-
ambiguous
reusable
motivating to make good APIs and 

test them
low production cost
flexible, attract motivated
workforce, easy to use, well
documented (google) libraries,
easy to integrate with CM/CI
short lead time
embedded: save ressources
nifty switches allowing to tweak
real time ressource need
What do we expect from
Software Programming Language C
robust whine instead of crash
extendible
self-explaining, safe to use, non-
ambiguous
reusable
motivating to make good APIs and 

test them
low production cost
flexible, attract motivated
workforce, easy to use, well
documented (google) libraries,
easy to integrate with CM/CI
short lead time
embedded: save ressources
nifty switches allowing to tweak
real time ressource need
Flexibility
• C/C++: 

• really flexible

• fragile? 

• not so easy to understand

• Python:

• loads of standard components

• a bit bulky sometimes

• easy to reuse

• easy to build & document
Flexibility
• C/C++: 

• really flexible

• fragile? 

• not so easy to understand

• Python:

• loads of standard components

• a bit bulky sometimes

• easy to reuse

• easy to build & document
Flexibility
• C/C++: 

• really flexible

• fragile? 

• not so easy to understand

• Python:

• loads of standard components

• a bit bulky sometimes

• easy to reuse

• easy to build & document
Flexibility
• C/C++: 

• really flexible

• fragile? 

• not so easy to understand

• Python:

• loads of standard components

• a bit bulky sometimes

• easy to reuse

• easy to build & document
Why are we using C in
embedded systems?
• 20 years ago: embedded processor compilers: ASS, C

• Unix/Linux is based on C: C libraries already there =>
"cheaper" to use C for applications as well

• BOM: control of memory & ressources => cheap HW

• optimization working good

• Only in the last 5-10 years, processors allow for other
languages, but BOM price taken into account, C is often
the winner
The sharp knive
• if used correctly:

• more precise/direct, you see what you will get in
RAM

• more secure, actually, because you know exactly
where you cut

• effective (just handle the address of a pointer directly)

• requires 

• training (cut yourself with aid at hand) and 

• experience
The sharp knive
• if used correctly:

• more precise/direct, you see what you will get in
RAM

• more secure, actually, because you know exactly
where you cut

• effective (just handle the address of a pointer directly)

• requires 

• training (cut yourself with aid at hand) and 

• experience
The sharp knive
• if used correctly:

• more precise/direct, you see what you will get in
RAM

• more secure, actually, because you know exactly
where you cut

• effective (just handle the address of a pointer directly)

• requires 

• training (cut yourself with aid at hand) and 

• experience
The sharp knive
• if used correctly:

• more precise/direct, you see what you will get in
RAM

• more secure, actually, because you know exactly
where you cut

• effective (just handle the address of a pointer directly)

• requires 

• training (cut yourself with aid at hand) and 

• experience
The dangers of plain old C
• direct manipulation of adress-pointers

• no mechanism to control if dynamically allocated
memory is used for multiple purposes at the same
time

• no mechanism to detect memory overwriting, out of
bounds exceptions, etc. (like in Java)

• memory leaks: no garbage collection

• no exception handling (though in C++)

• does not encourage encapsulation as such, programs
end up to be card houses/birds nests
How to detect?
• Team not able to show an actual design with clear APIs
and encapsulated data/responsibilities in the code

• Team not able to estimate remaining work effort

• Team needs to fix everything before next integration step

• Defect resolution of a single issue leads to new
regressions
0
25
50
75
100
April May June July
Mitigation
• Code reviews & best practices

• reuse working code, refactor bad code

• modularization, keep files small

• make it easy to access data through API

• document your code (doxygen)

• use purify and unit test, test driven design

• encourage the use of object orientation C++ where possible, as it
enhances the use of proofen design patterns
C -> C++
• encourages to major reuse (inheritance & polymorphism)

• encourages encapsulation

• very good libraries (boost, STL, mm.)

• possible to use C++ without dyn. mem. allocation

• ARDUINO on Atmega 328P (8 bit, 32kFlash, 2kB RAM)

• very motivating for ambitious programmers
motivation
• many problems solved in Open Source: SW and HW

• network, WIFI, Bluetooth, webserver, secure shell, SSL, ...

• acceptable tools for free (and the code to improve them)

• Graphic Frameworks for MMI

• no license fee

• "standard" interprocess komm. (IPC)

• very robust kernel with good documentation ressources
motivation
• many problems solved in Open Source: SW and HW

• network, WIFI, Bluetooth, webserver, secure shell, SSL, ...

• acceptable tools for free (and the code to improve them)

• Graphic Frameworks for MMI

• no license fee

• "standard" interprocess komm. (IPC)

• very robust kernel with good documentation ressources
emb. Linux Platform
• rPi, DKK219 (dk-rsonline.com), 1 Stk.(!)

• 1GB RAM, micro SD flash, Arm A53 quadcore, 64-bit,
WIFI, 40 GPIO, Lyd, H264, MPEG-4, OpenGL
emb. Linux SW Arch
source: https://bootlin.com/pub/conferences/2011/limoges-clermont/presentation.pdf
opensource
challenges
• Linux = multitasking, memory managed, cached ...

• realtime predictability is limited (requires extensions)

• 10us on an Cortex A8 is possible, but is challenging

• 1ms is more realistic

• memory management (how much RAM is free?)

• multiprocess/thread/driver debugging is not trivial

• upgrade of kernel/glibc/gcc baseline to maintain platform
After 10 years leading 10-18
using C
• good to have 1-2 really innovative architects, Code Review!

• be careful with arrays, sizeof(), pointer arithm. in general

• allow them to use OO with C++ was the best thing to happen

• use Beaglebone, Raspberry Pi, Arduino as reference design

• Embedded Linux where you need network or existing OpenSource, time to
market

• Arduino Development platform encourages object orientation with C++,
high productivity due to libraries, very good documentation: even 9-th class
pupils can handle that.

• don't forget to follow-up and plan for change, CI and maturation :-)
Albatros-Tech IVS
• se www.albatros-tech.eu

• hjælper rigtigt gerne med embedded udvikling

• har erfaring med digital kommunikationsteknologi og
systemer

• yder gerne project hjælp/management

• tilbyder specielle modeller for startups

• SW process hjælp/management/troubleshooting

More Related Content

PDF
Scratching the itch, making Scratch for the Raspberry Pie
ESUG
 
PDF
A Progressive Approach to the Past: Ensuring Backwards Compatability Through ...
Derek Buitenhuis
 
PDF
Wwx2014 - Todd Kulick "Shipping One Million Lines of Haxe to (Over) One Milli...
antopensource
 
PDF
Every Solution is Wrong: Normalizing Ambiguous, Broken, and Pants-on-Head Cra...
Derek Buitenhuis
 
PDF
Shell scripting with f
OnorioCatenacci
 
PDF
Opening up Open Source
Derek Buitenhuis
 
PDF
Perl-Critic
Jonas Brømsø
 
PPT
INTRODUCTION TO RASPI
skumartarget
 
Scratching the itch, making Scratch for the Raspberry Pie
ESUG
 
A Progressive Approach to the Past: Ensuring Backwards Compatability Through ...
Derek Buitenhuis
 
Wwx2014 - Todd Kulick "Shipping One Million Lines of Haxe to (Over) One Milli...
antopensource
 
Every Solution is Wrong: Normalizing Ambiguous, Broken, and Pants-on-Head Cra...
Derek Buitenhuis
 
Shell scripting with f
OnorioCatenacci
 
Opening up Open Source
Derek Buitenhuis
 
Perl-Critic
Jonas Brømsø
 
INTRODUCTION TO RASPI
skumartarget
 

Similar to 201811xx foredrag c_cpp (20)

PPTX
Gpgpu intro
Dominik Seifert
 
PDF
From a student to an apache committer practice of apache io tdb
jixuan1989
 
PPTX
Игорь Фесенко "Direction of C# as a High-Performance Language"
Fwdays
 
PDF
PyData Boston 2013
Travis Oliphant
 
PDF
DevOpsCon 2015 - DevOps in Mobile Games
Andreas Katzig
 
PPT
Lecture1.ppt
AqeelAbbas94
 
PDF
Scaling tappsi
Óscar Andrés López
 
PDF
NetWork - 15.10.2011 - Applied code generation in .NET
Dmytro Mindra
 
PPTX
Ice Age melting down: Intel features considered usefull!
Peter Hlavaty
 
PPTX
Mapping Life Science Informatics to the Cloud
Chris Dagdigian
 
PPTX
Advanced Internet of Things firmware engineering with Thingsquare and Contiki...
Adam Dunkels
 
PDF
AI & Machine Learning Pipelines with Knative
Animesh Singh
 
PPTX
Build software like a bag of marbles, not a castle of LEGO®
Hannes Lowette
 
PPTX
Vulnerability, exploit to metasploit
Tiago Henriques
 
PDF
Tooling for the JavaScript Era
martinlippert
 
PPTX
Security research over Windows #defcon china
Peter Hlavaty
 
PDF
Toward low-latency Java applications - javaOne 2014
John Davies
 
PDF
Managing Geospatial Open Data Serverlessly [Cloud Native Bern Meetup | May 2025]
Chris Bingham
 
PDF
DConf2015 - Using D for Development of Large Scale Primary Storage
Liran Zvibel
 
PPTX
lecture03_EmbeddedSoftware for Beginners
MahmoudElsamanty
 
Gpgpu intro
Dominik Seifert
 
From a student to an apache committer practice of apache io tdb
jixuan1989
 
Игорь Фесенко "Direction of C# as a High-Performance Language"
Fwdays
 
PyData Boston 2013
Travis Oliphant
 
DevOpsCon 2015 - DevOps in Mobile Games
Andreas Katzig
 
Lecture1.ppt
AqeelAbbas94
 
Scaling tappsi
Óscar Andrés López
 
NetWork - 15.10.2011 - Applied code generation in .NET
Dmytro Mindra
 
Ice Age melting down: Intel features considered usefull!
Peter Hlavaty
 
Mapping Life Science Informatics to the Cloud
Chris Dagdigian
 
Advanced Internet of Things firmware engineering with Thingsquare and Contiki...
Adam Dunkels
 
AI & Machine Learning Pipelines with Knative
Animesh Singh
 
Build software like a bag of marbles, not a castle of LEGO®
Hannes Lowette
 
Vulnerability, exploit to metasploit
Tiago Henriques
 
Tooling for the JavaScript Era
martinlippert
 
Security research over Windows #defcon china
Peter Hlavaty
 
Toward low-latency Java applications - javaOne 2014
John Davies
 
Managing Geospatial Open Data Serverlessly [Cloud Native Bern Meetup | May 2025]
Chris Bingham
 
DConf2015 - Using D for Development of Large Scale Primary Storage
Liran Zvibel
 
lecture03_EmbeddedSoftware for Beginners
MahmoudElsamanty
 
Ad

More from InfinIT - Innovationsnetværket for it (20)

PDF
Erfaringer med-c kurt-noermark
InfinIT - Innovationsnetværket for it
 
PDF
Object orientering, test driven development og c
InfinIT - Innovationsnetværket for it
 
PDF
Embedded softwaredevelopment hcs
InfinIT - Innovationsnetværket for it
 
PDF
C og c++-jens lund jensen
InfinIT - Innovationsnetværket for it
 
PDF
C som-programmeringssprog-bt
InfinIT - Innovationsnetværket for it
 
PDF
Infinit seminar 060918
InfinIT - Innovationsnetværket for it
 
PDF
Not your grandfathers BPM
InfinIT - Innovationsnetværket for it
 
PDF
Kmd workzone - an evolutionary approach to revolution
InfinIT - Innovationsnetværket for it
 
PDF
Martin Wickins Chatbots i fronten
InfinIT - Innovationsnetværket for it
 
PDF
Marie Fenger ai kundeservice
InfinIT - Innovationsnetværket for it
 
PDF
Leif Howalt NNIT Service Support Center
InfinIT - Innovationsnetværket for it
 
PDF
Jan Neerbek NLP og Chatbots
InfinIT - Innovationsnetværket for it
 
PDF
Anders Soegaard NLP for Customer Support
InfinIT - Innovationsnetværket for it
 
PDF
Stephen Alstrup infinit august 2018
InfinIT - Innovationsnetværket for it
 
PDF
Innovation og værdiskabelse i it-projekter
InfinIT - Innovationsnetværket for it
 
PDF
Rokoko infin it presentation
InfinIT - Innovationsnetværket for it
 
PDF
Kenny erleben infinit_workshop
InfinIT - Innovationsnetværket for it
 
Erfaringer med-c kurt-noermark
InfinIT - Innovationsnetværket for it
 
Object orientering, test driven development og c
InfinIT - Innovationsnetværket for it
 
Embedded softwaredevelopment hcs
InfinIT - Innovationsnetværket for it
 
C og c++-jens lund jensen
InfinIT - Innovationsnetværket for it
 
C som-programmeringssprog-bt
InfinIT - Innovationsnetværket for it
 
Not your grandfathers BPM
InfinIT - Innovationsnetværket for it
 
Kmd workzone - an evolutionary approach to revolution
InfinIT - Innovationsnetværket for it
 
Martin Wickins Chatbots i fronten
InfinIT - Innovationsnetværket for it
 
Marie Fenger ai kundeservice
InfinIT - Innovationsnetværket for it
 
Leif Howalt NNIT Service Support Center
InfinIT - Innovationsnetværket for it
 
Jan Neerbek NLP og Chatbots
InfinIT - Innovationsnetværket for it
 
Anders Soegaard NLP for Customer Support
InfinIT - Innovationsnetværket for it
 
Stephen Alstrup infinit august 2018
InfinIT - Innovationsnetværket for it
 
Innovation og værdiskabelse i it-projekter
InfinIT - Innovationsnetværket for it
 
Rokoko infin it presentation
InfinIT - Innovationsnetværket for it
 
Kenny erleben infinit_workshop
InfinIT - Innovationsnetværket for it
 
Ad

Recently uploaded (20)

PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
Doc9.....................................
SofiaCollazos
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
Doc9.....................................
SofiaCollazos
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
The Future of Artificial Intelligence (AI)
Mukul
 

201811xx foredrag c_cpp

  • 1. embedded Linux med C/C++ from a manager's perspective 21/11-2018 Stefan Pielmeier
  • 3. Why talk about C embedded engineer CV: • 1997: University of Erlangen/Nürnberg M.Sc.E.E. • -2003: E/// 3G Basestation TI C6x DSP + System Des. • -2003: TI Nice, 2.5G Project Leader/Senior Dev., TI DSP & 2G Chipset • -2007: TI Aalborg 3G Protocol Stack • -2010: Telenor Aalborg, Data Core • -2018: Thrane & Thrane, SAILOR Radio
  • 4. Why talk about C embedded engineer CV: • 1997: University of Erlangen/Nürnberg M.Sc.E.E. • -2003: E/// 3G Basestation TI C6x DSP + System Des. • -2003: TI Nice, 2.5G Project Leader/Senior Dev., TI DSP & 2G Chipset • -2007: TI Aalborg 3G Protocol Stack • -2010: Telenor Aalborg, Data Core • -2018: Thrane & Thrane, SAILOR Radio no C/C++
  • 5. What do we expect from Software Programming Lan robust whine instead of c extendible self-explaining, safe to ambiguous reusable motivating to make goo test them low production cost flexible, attract mo workforce, easy to u documented (google) easy to integrate wit short lead time embedded: save ressources nifty switches allowing real time ressource
  • 6. What do we expect from Software Programming Language C robust whine instead of crash extendible self-explaining, safe to use, non- ambiguous reusable motivating to make good APIs and test them low production cost flexible, attract motivated workforce, easy to use, well documented (google) libraries, easy to integrate with CM/CI short lead time embedded: save ressources nifty switches allowing to tweak real time ressource need
  • 7. What do we expect from Software Programming Language C robust whine instead of crash extendible self-explaining, safe to use, non- ambiguous reusable motivating to make good APIs and test them low production cost flexible, attract motivated workforce, easy to use, well documented (google) libraries, easy to integrate with CM/CI short lead time embedded: save ressources nifty switches allowing to tweak real time ressource need
  • 8. Flexibility • C/C++: • really flexible • fragile? • not so easy to understand • Python: • loads of standard components • a bit bulky sometimes • easy to reuse • easy to build & document
  • 9. Flexibility • C/C++: • really flexible • fragile? • not so easy to understand • Python: • loads of standard components • a bit bulky sometimes • easy to reuse • easy to build & document
  • 10. Flexibility • C/C++: • really flexible • fragile? • not so easy to understand • Python: • loads of standard components • a bit bulky sometimes • easy to reuse • easy to build & document
  • 11. Flexibility • C/C++: • really flexible • fragile? • not so easy to understand • Python: • loads of standard components • a bit bulky sometimes • easy to reuse • easy to build & document
  • 12. Why are we using C in embedded systems? • 20 years ago: embedded processor compilers: ASS, C • Unix/Linux is based on C: C libraries already there => "cheaper" to use C for applications as well • BOM: control of memory & ressources => cheap HW • optimization working good • Only in the last 5-10 years, processors allow for other languages, but BOM price taken into account, C is often the winner
  • 13. The sharp knive • if used correctly: • more precise/direct, you see what you will get in RAM • more secure, actually, because you know exactly where you cut • effective (just handle the address of a pointer directly) • requires • training (cut yourself with aid at hand) and • experience
  • 14. The sharp knive • if used correctly: • more precise/direct, you see what you will get in RAM • more secure, actually, because you know exactly where you cut • effective (just handle the address of a pointer directly) • requires • training (cut yourself with aid at hand) and • experience
  • 15. The sharp knive • if used correctly: • more precise/direct, you see what you will get in RAM • more secure, actually, because you know exactly where you cut • effective (just handle the address of a pointer directly) • requires • training (cut yourself with aid at hand) and • experience
  • 16. The sharp knive • if used correctly: • more precise/direct, you see what you will get in RAM • more secure, actually, because you know exactly where you cut • effective (just handle the address of a pointer directly) • requires • training (cut yourself with aid at hand) and • experience
  • 17. The dangers of plain old C • direct manipulation of adress-pointers • no mechanism to control if dynamically allocated memory is used for multiple purposes at the same time • no mechanism to detect memory overwriting, out of bounds exceptions, etc. (like in Java) • memory leaks: no garbage collection • no exception handling (though in C++) • does not encourage encapsulation as such, programs end up to be card houses/birds nests
  • 18. How to detect? • Team not able to show an actual design with clear APIs and encapsulated data/responsibilities in the code • Team not able to estimate remaining work effort • Team needs to fix everything before next integration step • Defect resolution of a single issue leads to new regressions 0 25 50 75 100 April May June July
  • 19. Mitigation • Code reviews & best practices • reuse working code, refactor bad code • modularization, keep files small • make it easy to access data through API • document your code (doxygen) • use purify and unit test, test driven design • encourage the use of object orientation C++ where possible, as it enhances the use of proofen design patterns
  • 20. C -> C++ • encourages to major reuse (inheritance & polymorphism) • encourages encapsulation • very good libraries (boost, STL, mm.) • possible to use C++ without dyn. mem. allocation • ARDUINO on Atmega 328P (8 bit, 32kFlash, 2kB RAM) • very motivating for ambitious programmers
  • 21. motivation • many problems solved in Open Source: SW and HW • network, WIFI, Bluetooth, webserver, secure shell, SSL, ... • acceptable tools for free (and the code to improve them) • Graphic Frameworks for MMI • no license fee • "standard" interprocess komm. (IPC) • very robust kernel with good documentation ressources
  • 22. motivation • many problems solved in Open Source: SW and HW • network, WIFI, Bluetooth, webserver, secure shell, SSL, ... • acceptable tools for free (and the code to improve them) • Graphic Frameworks for MMI • no license fee • "standard" interprocess komm. (IPC) • very robust kernel with good documentation ressources
  • 23. emb. Linux Platform • rPi, DKK219 (dk-rsonline.com), 1 Stk.(!) • 1GB RAM, micro SD flash, Arm A53 quadcore, 64-bit, WIFI, 40 GPIO, Lyd, H264, MPEG-4, OpenGL
  • 24. emb. Linux SW Arch source: https://bootlin.com/pub/conferences/2011/limoges-clermont/presentation.pdf opensource
  • 25. challenges • Linux = multitasking, memory managed, cached ... • realtime predictability is limited (requires extensions) • 10us on an Cortex A8 is possible, but is challenging • 1ms is more realistic • memory management (how much RAM is free?) • multiprocess/thread/driver debugging is not trivial • upgrade of kernel/glibc/gcc baseline to maintain platform
  • 26. After 10 years leading 10-18 using C • good to have 1-2 really innovative architects, Code Review! • be careful with arrays, sizeof(), pointer arithm. in general • allow them to use OO with C++ was the best thing to happen • use Beaglebone, Raspberry Pi, Arduino as reference design • Embedded Linux where you need network or existing OpenSource, time to market • Arduino Development platform encourages object orientation with C++, high productivity due to libraries, very good documentation: even 9-th class pupils can handle that. • don't forget to follow-up and plan for change, CI and maturation :-)
  • 27. Albatros-Tech IVS • se www.albatros-tech.eu • hjælper rigtigt gerne med embedded udvikling • har erfaring med digital kommunikationsteknologi og systemer • yder gerne project hjælp/management • tilbyder specielle modeller for startups • SW process hjælp/management/troubleshooting