Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Próximo SlideShare
Tools
Tools
Cargando en…3
×

Eche un vistazo a continuación

1 de 42 Anuncio

Más Contenido Relacionado

Presentaciones para usted (20)

Similares a Embedded. What Why How (20)

Anuncio

Más reciente (20)

Embedded. What Why How

  1. 1. Embedded What? Why? How? Volodymyr Shymanskyy June 2015 You can find animated version here: http://tiny.cc/emb-wtf
  2. 2. Embedder
  3. 3. 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
  4. 4. WHY?
  5. 5. Embedded CLI User Interface Electronics Connectivity Mechanics Management Software Radio ...
  6. 6. Embedded Integrated Low Power Small Size Low Cost Durable … or Beautiful
  7. 7. Roshen Band https://www.youtube.com/watch?v=1eH2lVVFato
  8. 8. Applications Automation (industrial, home...), IOT Mobile, Modems, VOIP Telecom, Network, Broadband Automotive Equipment (medical, military, consumer, cooking…)
  9. 9. Embedded ≠ Mobile
  10. 10. Blynk 493% funded on Kickstarter!
  11. 11. Operating environment becomes application-specific (contrary to general-purpose)
  12. 12. CLI User Interface Electronics Connectivity Mechanics Management Software Radio ...
  13. 13. Frameworks Even C++ features are turned off! ^_^ But there are some: Linux, mbed, QP… Libraries ARE used. LibEvent, minizip, etc...
  14. 14. 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
  15. 15. Library Processor(s) Memory Devices Kernel Drivers Supervisor Application Hardware Library Lib Library L Program Program Program Program System Software Framework
  16. 16. Platforms
  17. 17. CISC vs RISC vs MISC vs ZISC ● Complex ● Reduced ● Minimal ● Zero!
  18. 18. x86 GPU DSP FPGA uC Embed Power Float arithm Integer arithm Flow control IO Pipelining Timing Programming From FPGA 101 Platform types
  19. 19. Tools
  20. 20. LAB
  21. 21. Tools Debugging Emulators, Traces, Statistics, Diagnostic.... Hardware Monitors, Scopes, Sniffers.... Quality Assurance is also more interesting!
  22. 22. Debuggers Conditional breakpoints Data breakpoints Watch expressions Reverse, Rec-Replay Remote debugging Offline debugging Debugging in emulator! Data Display Debugger
  23. 23. Profilers
  24. 24. 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!
  25. 25. Valgrind memcheck cachegrind callgrind massif helgrind tutorial (rus)
  26. 26. fun sysstat (sar) iostat pidstat mpstat etherape, vnstat powertop socat, netem, strace, ltrace
  27. 27. Emulators VirtualBox QEMU ...
  28. 28. Protocol Sniffers / Analysers Wireshark Fiddler Hardware USB
  29. 29. Prototyping ● Python, JS, Node.js ● Arduino ● Online: ○ Coding Ground ○ JSFiddle
  30. 30. 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
  31. 31. Statistics ● Event counts ○ In domain, or internal ○ Amount of function calls ● Time of processing ● Latency ● CPU/RAM usage
  32. 32. CLI - Command Line ● Interactive ● One-shot Increases usability & Allows automation!
  33. 33. Support Old long-term projects (10-15 years!!!) And so are developers and their habits [sometimes]
  34. 34. Requirements C/C++ OOP/OOD Multithreading, Synchronization, RPC, IPC Linux/Unix Embedded/Low Level Network stack, OSI model POSIX, STL
  35. 35. Other Requirements Complex systems design Debugging on customer side Logical thinking English
  36. 36. Benefits?
  37. 37. RC Car -> Robot
  38. 38. 3D Printers
  39. 39. 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

×