skip to main content
research-article

Educating embedded systems hackers: a practitioner's perspective

Authors Info & Claims
Published:05 January 2017Publication History
Skip Abstract Section

Abstract

Theoretical skills imparted during university education in Embedded Systems often surpass their practical counterpart. The contribution of this paper is a defined set of practical skills which bridge the gap between a sound theoretical education in embedded systems and the skillset acquired by experienced practitioners in the field. The presentation of each skill is accompanied by common solution patterns, state-of-practice technologies, and a set of exercises to provide practical uptake of each skill. The proposed skillset is based on consistent observations over the years, of graduating students performing "hands-on" projects; the proposed approach for imparting the skillset is motivated by experiences with Embedded Systems education at The Royal Institute of Technology (KTH) in Sweden.

References

  1. Abstract Syntax Notation One ASN.1. http://www.etsi.org/technologies-clusters/technologies/protocol-specification/asn-1.Google ScholarGoogle Scholar
  2. Arduino - Open Source Electronic Platform. http://arduino.cc.Google ScholarGoogle Scholar
  3. BeagleBone Black. http://beagleboard.org/black.Google ScholarGoogle Scholar
  4. BerkeleyDB. http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html.Google ScholarGoogle Scholar
  5. Boost Log v2. http://www.boost.org/doc/libs/1\_55\_0b1/libs/log/doc/html/index.html.Google ScholarGoogle Scholar
  6. Boost Serialization library. http://www.boost.org/doc/libs/1\_55\_0/libs/serialization/doc/index.html.Google ScholarGoogle Scholar
  7. BSON - Binary JSON. http://bsonspec.org.Google ScholarGoogle Scholar
  8. CMake - Cross Platform Make. http://cmake.org.Google ScholarGoogle Scholar
  9. CONFIG_PREEMPT_RT patch to make Linux kernel fully preemptible. https://rt.wiki.kernel.org.Google ScholarGoogle Scholar
  10. Continuous Integration. http://martinfowler.com/articles/continuousIntegration.html.Google ScholarGoogle Scholar
  11. CORBA - Common Object Request Broker Architecture. http://www.corba.org.Google ScholarGoogle Scholar
  12. CyPhERS project deliverable D5.2: CPS: Significance, Challenges and Opportunities. http://www.cyphers.eu/sites/default/files/D5.2.pdf.Google ScholarGoogle Scholar
  13. Debian Multistrap - Bootstrap a Debian system. https://wiki.debian.org/Multistrap.Google ScholarGoogle Scholar
  14. dSPACE Systems. https://www.dspace.com.Google ScholarGoogle Scholar
  15. Eclipse IDE. http://eclipse.org.Google ScholarGoogle Scholar
  16. ECMA-404 the JSON Data Interchange Standard. http://json.org.Google ScholarGoogle Scholar
  17. Engineering education in embedded systems. ICES workshop summary, August 26, 2014. http://www.ices.kth.se/events.aspx?pid=3&evtKeyId=295145e8aefa46dfa0277baeb820e439.Google ScholarGoogle Scholar
  18. ERIKA Enterprise - Certified OSEK/VDX Open Source RTOS. http://erika.tuxfamily.org/drupal.Google ScholarGoogle Scholar
  19. FreeRTOS. http://www.freertos.org.Google ScholarGoogle Scholar
  20. GCC, the GNU Compiler Collection. http://gcc.gnu.org.Google ScholarGoogle Scholar
  21. The GNU Build system. http://www.gnu.org/software/automake.Google ScholarGoogle Scholar
  22. GNU Make. http://www.gnu.org/software/make.Google ScholarGoogle Scholar
  23. Gnuplot. http://www.gnuplot.info.Google ScholarGoogle Scholar
  24. Google Protocol Buffers. https://code.google.com/p/protobuf.Google ScholarGoogle Scholar
  25. HDF5 Data Format. http://www.hdfgroup.org/HDF5.Google ScholarGoogle Scholar
  26. Jenkins - an extendable open source continuous integration server. http://jenkins-ci.org.Google ScholarGoogle Scholar
  27. MathWorks Embedded Coder. http://www.mathworks.se/products/embedded-coder.Google ScholarGoogle Scholar
  28. MATLAB. http://www.mathworks.se/products/matlab.Google ScholarGoogle Scholar
  29. matplotlib: Python plotting. http://matplotlib.org.Google ScholarGoogle Scholar
  30. mongoDB. http://www.mongodb.info.Google ScholarGoogle Scholar
  31. Network Common Data Form (NetCDF). http://www.unidata.ucar.edu/software/netcdf.Google ScholarGoogle Scholar
  32. NumPy scientific computing with Python. http://www.numpy.org.Google ScholarGoogle Scholar
  33. Opensplice DDS. http://www.prismtech.com/opensplice.Google ScholarGoogle Scholar
  34. OROCOS - open robot control software. http://orocos.org.Google ScholarGoogle Scholar
  35. qmake manual. http://qt-project.org/doc/qt-5/qmake-manual.html.Google ScholarGoogle Scholar
  36. QtiPlot - Data Analysis and Scientific Visualisation. http://www.qtiplot.com.Google ScholarGoogle Scholar
  37. Raspberry Pi. http://www.raspberrypi.org.Google ScholarGoogle Scholar
  38. RFC1392 - Internet Users' Glossary. http://tools.ietf.org/html/rfc1392.Google ScholarGoogle Scholar
  39. Scicos: Block diagram modeler/simulator. http://scicos.org.Google ScholarGoogle Scholar
  40. Simulink. http://www.mathworks.se/products/simulink.Google ScholarGoogle Scholar
  41. Simulink Real-Time. http://www.mathworks.se/products/simulink-real-time.Google ScholarGoogle Scholar
  42. SQLite. http://sqlite.org.Google ScholarGoogle Scholar
  43. The CDIO initiative. http://www.cdio.org.Google ScholarGoogle Scholar
  44. The OMG Data Distribution Service for Real-Time Systems (DDS). http://portals.omg.org/dds.Google ScholarGoogle Scholar
  45. XDR: External Data Representation Standard. http://tools.ietf.org/html/rfc4506.Google ScholarGoogle Scholar
  46. Xenomai: Real-Time Framework for Linux. https://xenomai.org.Google ScholarGoogle Scholar
  47. XML encoding rules (XER) for ASN.1. http://www.itu.int/en/ITU-T/asn1/Pages/xer.aspx.Google ScholarGoogle Scholar
  48. Yocto Project: Open Source embedded Linux build system. https://www.yoctoproject.org.Google ScholarGoogle Scholar
  49. ZeroC Internet Communications Engine. http://www.zeroc.com.Google ScholarGoogle Scholar
  50. ZeroMQ. http://zeromq.org.Google ScholarGoogle Scholar
  51. M. Grimheden and M. Törngren. What is embedded systems and how should it be taught?---results from a didactic analysis. ACM Trans. Embed. Comput. Syst., 4(3):633--651, Aug. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. J. Mårtensson, A. Alam, and S. Behere. The Development of a Cooperative Heavy-Duty Vehicle for the GCDC 2011: Team Scoop. IEEE Transactions on Intelligent Transportation Systems, 13(3):1033--1049, Sept. 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. F. Salewski and S. Kowalewski. Hardware platform design decisions in embedded systems: A systematic teaching approach. SIGBED Rev., 4(1):27--35, Jan. 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. M. Törngren, M. Grimheden, and N. Adamsson. Experiences from large embedded systems development projects in education, involving industry and research. SIGBED Rev., 4(1):55--63, Jan. 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Educating embedded systems hackers: a practitioner's perspective
    Index terms have been assigned to the content through auto-classification.

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader