SlideShare a Scribd company logo
Embedded
What? Why? How?
Volodymyr Shymanskyy
June 2015
You can find animated version here: http://tiny.cc/emb-wtf
Embedder
Integrated
Low Level
System Dev
Platform Dev
Firmware
Embedded
RTOS, RISC
uC, µC, MCU, SoC
Microcontrollers
FPGA, DSP, ASIC
JTAG
STM32, Cortex, ARM, AVR, PIC, MIPS,
PowerPC, SPARC, Arduino, Xilinx
VxWorks
Linux
Driver
Kernel
Ring-0
WHY?
Embedded
CLI
User Interface
Electronics
Connectivity
Mechanics
Management
Software
Radio
...
Embedded
Integrated
Low Power
Small Size
Low Cost
Durable
… or Beautiful
Embedded. What Why How
Roshen
Band
https://www.youtube.com/watch?v=1eH2lVVFato
Applications
Automation (industrial, home...), IOT
Mobile, Modems, VOIP
Telecom, Network, Broadband
Automotive
Equipment
(medical, military, consumer, cooking…)
Embedded ≠ Mobile
Blynk 493% funded on Kickstarter!
Operating environment
becomes application-specific
(contrary to general-purpose)
CLI
User Interface
Electronics Connectivity
Mechanics
Management
Software
Radio
...
Frameworks
Even C++ features are turned off! ^_^
But there are some:
Linux, mbed, QP…
Libraries ARE used. LibEvent, minizip, etc...
C, C++, Java, … ?
User Apps Mobile Web Text proc. Prototyping
Basic / Pascal Forget it ;)
C/C++
Java, .Net
Python WOW!!!
Perl WOW!!!
JS, Node.JS WOW!!!
awk, sed WOW!!!
Bash / Cmd Just system scripting
Library
Processor(s) Memory Devices
Kernel
Drivers
Supervisor
Application
Hardware
Library Lib
Library L
Program
Program
Program
Program
System Software
Framework
Platforms
CISC vs RISC vs MISC vs ZISC
● Complex
● Reduced
● Minimal
● Zero!
x86 GPU DSP FPGA uC
Embed
Power
Float arithm
Integer arithm
Flow control
IO
Pipelining
Timing
Programming
From FPGA 101
Platform types
Tools
LAB
Tools
Debugging
Emulators, Traces,
Statistics, Diagnostic....
Hardware
Monitors, Scopes, Sniffers....
Quality Assurance is also more interesting!
Debuggers
Conditional breakpoints
Data breakpoints
Watch expressions
Reverse, Rec-Replay
Remote debugging
Offline debugging
Debugging in emulator!
Data Display Debugger
Profilers
Profilers
● speed, resource usage, cache
Perl perl -d:NYTProf myscript.pl
Python python -m cProfile myscript.py
+pycallgraph
Java NetBeans, GC Viewer, here (rus)
You can do measurements directly in code!
Valgrind
memcheck
cachegrind
callgrind
massif
helgrind
tutorial (rus)
fun
sysstat (sar)
iostat
pidstat
mpstat
etherape, vnstat
powertop
socat, netem, strace, ltrace
Emulators
VirtualBox
QEMU
...
Protocol Sniffers / Analysers
Wireshark
Fiddler
Hardware
USB
Prototyping
● Python, JS, Node.js
● Arduino
● Online:
○ Coding Ground
○ JSFiddle
Embedded. What Why How
Logs, Dumps, Event Traces
● “Debug by prints”
○ Embedded / multithreaded
● Log to file, to ram (may be shared)
○ Filter by module/severity
● Dump part of the state
○ Stats
● Event Traces
○ Binary, lightweight
Statistics
● Event counts
○ In domain, or internal
○ Amount of function calls
● Time of processing
● Latency
● CPU/RAM usage
CLI - Command Line
● Interactive
● One-shot
Increases usability &
Allows automation!
Support
Old long-term projects (10-15 years!!!)
And so are developers and their habits
[sometimes]
Requirements
C/C++
OOP/OOD
Multithreading, Synchronization, RPC, IPC
Linux/Unix
Embedded/Low Level
Network stack, OSI model
POSIX, STL
Other Requirements
Complex systems design
Debugging on customer side
Logical thinking
English
Benefits?
Embedded. What Why How
RC Car ->
Robot
3D Printers
Volodymyr Shymanskyy
Embedded Software Developer & Trainer
Hackerspace Co-Founder & Coordinator
vshymanskyi@gmail.com
skype: vshymanskyi
LinkedIn, Facebook
Submit your ideas and corrections for this presentation

More Related Content

PDF
There is more to C
PDF
Plasmaquick Workshop - FISL 13
PDF
D1T3-Anto-Joseph-Droid-FF
PDF
The Simple Scheduler in Embedded System @ OSDC.TW 2014
PDF
Make Your Own Developement Board @ 2014.4.21 JuluOSDev
PDF
Quest for a low powered home hub 120522
PDF
Micro Python で組み込み Python
There is more to C
Plasmaquick Workshop - FISL 13
D1T3-Anto-Joseph-Droid-FF
The Simple Scheduler in Embedded System @ OSDC.TW 2014
Make Your Own Developement Board @ 2014.4.21 JuluOSDev
Quest for a low powered home hub 120522
Micro Python で組み込み Python

What's hot (20)

PDF
OWF12/PAUG Conf Days Android tools for developpeurs, paul marois, design and ...
PDF
Ищем уязвимости нулевого дня в ядре Linux
PDF
Kernel Recipes 2016 - Speeding up development by setting up a kernel build farm
PDF
syzkaller: the next gen kernel fuzzer
PDF
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
PDF
HKG15-300: Art's Quick Compiler: An unofficial overview
PDF
syzbot and the tale of million kernel bugs
PDF
Developer support/process automation tools
PDF
Why Rust? - Matthias Endler - Codemotion Amsterdam 2016
PDF
[2014 CodeEngn Conference 11] 정든품바 - 웹성코드
PDF
Rapid SPi Device Driver Development over USB
PDF
Andrea Righi - Spying on the Linux kernel for fun and profit
PDF
Kernel Recipes 2016 - kernelci.org: 1.5 million kernel boots (and counting)
PDF
MazuV-Debug-System
ODP
#Make01
PDF
C from FW
DOCX
Bsdtw17: lightning talks/wip sessions
PDF
Ostech war story using mainline linux for an android tv bsp
PDF
iOS Internals Part -2
PDF
Raspberry Pi - HW/SW Application Development
OWF12/PAUG Conf Days Android tools for developpeurs, paul marois, design and ...
Ищем уязвимости нулевого дня в ядре Linux
Kernel Recipes 2016 - Speeding up development by setting up a kernel build farm
syzkaller: the next gen kernel fuzzer
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
HKG15-300: Art's Quick Compiler: An unofficial overview
syzbot and the tale of million kernel bugs
Developer support/process automation tools
Why Rust? - Matthias Endler - Codemotion Amsterdam 2016
[2014 CodeEngn Conference 11] 정든품바 - 웹성코드
Rapid SPi Device Driver Development over USB
Andrea Righi - Spying on the Linux kernel for fun and profit
Kernel Recipes 2016 - kernelci.org: 1.5 million kernel boots (and counting)
MazuV-Debug-System
#Make01
C from FW
Bsdtw17: lightning talks/wip sessions
Ostech war story using mainline linux for an android tv bsp
iOS Internals Part -2
Raspberry Pi - HW/SW Application Development
Ad

Similar to Embedded. What Why How (20)

PDF
AXONIM 2018 embedded systems development
PPTX
Eclipse Edje: A Java API for Microcontrollers
PDF
Presentation for IoT workshop at Sinhagad University (Feb 4, 2016) - 2/2
PPT
FPGA_prototyping proccesing with conclusion
PDF
Introduction to FreeRTOS
 
PDF
Linxu conj2016 96boards
PDF
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
PPTX
Microcontroller from basic_to_advanced
PPT
No[1][1]
PPTX
HiPEAC Computing Systems Week 2022_Mario Porrmann presentation
PDF
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
PDF
20150212 사례로보는 Microsoft IoT와 서비스 개발
PPTX
NGIoT standardisation workshops_Jens Hagemeyer presentation
PDF
PDF
Android Internals
PPTX
Embeded system Basics.pptx
PDF
DEF CON 27 - DANIEL ROMERO and MARIO RIVAS - why you should fear your mundane...
PDF
RAD Industrial Automation, Labs, and Instrumentation
PDF
OpenNebulaConf 2019 - Crytek: A Video gaming Edge Implementation "on the shou...
PDF
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
AXONIM 2018 embedded systems development
Eclipse Edje: A Java API for Microcontrollers
Presentation for IoT workshop at Sinhagad University (Feb 4, 2016) - 2/2
FPGA_prototyping proccesing with conclusion
Introduction to FreeRTOS
 
Linxu conj2016 96boards
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
Microcontroller from basic_to_advanced
No[1][1]
HiPEAC Computing Systems Week 2022_Mario Porrmann presentation
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
20150212 사례로보는 Microsoft IoT와 서비스 개발
NGIoT standardisation workshops_Jens Hagemeyer presentation
Android Internals
Embeded system Basics.pptx
DEF CON 27 - DANIEL ROMERO and MARIO RIVAS - why you should fear your mundane...
RAD Industrial Automation, Labs, and Instrumentation
OpenNebulaConf 2019 - Crytek: A Video gaming Edge Implementation "on the shou...
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
Ad

Recently uploaded (20)

PPT
Project quality management in manufacturing
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PPTX
Sustainable Sites - Green Building Construction
PPTX
UNIT 4 Total Quality Management .pptx
PPT
Mechanical Engineering MATERIALS Selection
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PPTX
Welding lecture in detail for understanding
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PPTX
OOP with Java - Java Introduction (Basics)
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PDF
Digital Logic Computer Design lecture notes
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PDF
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
Project quality management in manufacturing
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
Sustainable Sites - Green Building Construction
UNIT 4 Total Quality Management .pptx
Mechanical Engineering MATERIALS Selection
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
Embodied AI: Ushering in the Next Era of Intelligent Systems
Foundation to blockchain - A guide to Blockchain Tech
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
Welding lecture in detail for understanding
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
OOP with Java - Java Introduction (Basics)
Operating System & Kernel Study Guide-1 - converted.pdf
Digital Logic Computer Design lecture notes
Automation-in-Manufacturing-Chapter-Introduction.pdf
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf

Embedded. What Why How