All Rights Reserved. The contents of this document cannot be reproduced without prior permission of the authors. Building Embedded Systems Chapter 1: Introduction Andreas Knirsch andreas.knirsch@h-da.de
Agenda About Embedded Systems (ES) Embedded Hardware Platforms Development of ES
Building Embedded Systems Chapter 1: Introduction, System Startup & Linux About What to expect and what is the motivation?
About me Andreas Knirsch BSc MSc @ h_da & JCU (AU) several years professional experience (full-time) Affiliation Research Assistant at ICM labs (since 2009) Topics Emb. Systems, Multi-Core, SW Integration Contact andreas.knirsch@h-da.de D10/0.37 (next to ICM lab)
Targets Learn how to setup and use a build-system to create and maintain embedded software systems.
Some "targets" might be new, but we will go into all those in a minute Targets in detail Setup a x-compile toolchain, apply tools and techniques for deployment and debugging. Configure, build and install an embedded operating system. Create a target root filesystem. Use available tools (toolchain builder, systemlibraries, etc.). Apply best practice development processes.
h_da... or: "Why is embedded know-how important?" Significance Salary SE*1.1=ESE Optimization is only possible with sufficient knowledge about domain, subject and processes. Complexity increases continously "... premature optimization is the root of all evil..." (Donald E. Knuth 1974)
Our Target Hardware Platform: Intel/ALTERA DE2i-150 FPGA Dev Kit Intel Atom dual-core
Building Embedded Systems Chapter 1: Introduction, System Startup & Linux Embedded Systems (ES) What makes a system "EMBEDDED"?
How do you define an ES?... or: "What embedded systems do you know?" makeitgreat (flickr.com)
Examples? Andreas Levers (flickr.com)
What makes a system embedded? Compiler Sources (app + lib) Debugger Editor Transfer Tools... Build Domain CPU Memory Display Hardware Embedded System Touchpad GPS Receiver... Software Bootloader OS Kernel Libraries System Init Main Application
Usual characteristics of an ES Customized to a specific task (brew coffee, take photos, provide route guidance, etc.) Cope with resource constraints (limited power supply and computational power, etc.) Operated within a rough environment (climate conditions, shock-resistance, etc.) Provide a certain grade of dependability (climate conditions, shock-resistance, etc.) Fulfill real-time requirements (adhere to a predefined temporal behaviour)
How to develop an embedded SW system? "meta system" "target system" ant, make,.. qemu crosstool-ng eclipse GNU/Linux ecosystem IDE virtual machine build utilities cross-compiler operating system kernel-image root filesystem Howto setup, maintain and "use" the ecosystem?... "use" means to create, maintain and deploy SW to a target system
Embedded == Customized for Purpose Create optimized SW for special purpose. Requires full control of the build process. Requires knowledge on process and tools. May require optimization of the build system. (i.e. the meta-system) This requires knowledge how to build tools. ( that build the system).
Building Embedded Systems Chapter 1: Introduction, System Startup & Linux Embedded Hardware Platforms What is so special for embedded hardware?
Embedded HW is small. is light. is low powered. can cope various climate conditions. is shock-resistant. A subset, all or none of the above given characteristics may apply to a particular embedded HW. it depends
Nowadays, Embedded HW provide computational performance graphic acceleration/power connectivity comparable to desktop HW, or even beyond the capabilities of desktop HW.. it still depends
We use It does not provide cutting edge performance, but reflects current state-of-the-art very well.
Comparable alternatives may include TI OMAP based boards (e.g. Beagle, Panda, IGEP, etc.) Renesas R-Car H2 based boards Samsung Exynos based boards Nvidia Tegra based boards and many more.
Building Embedded Systems Chapter 1: Introduction, System Startup & Linux Embedded System Development What does cross-platform development mean?
xplatform-dev Workstation Target edit code compile deploy execute remote debug
Using xplatform-devenv obviates on-target compilation. keeps target software-system small. enables the use of rich IDEs.
Building Embedded Systems Chapter 1: Introduction Recap What we've done today?
What we have done today Motivation to learn about building ES. Clarify what ES are. The characteristics of embedded Apps. The characteristics of embedded OSs. The importance of starting ESs. Characteristics of embedded HW platforms. What xplatform development is about.... or: we rather scratched the surface of several topics :-) More to come
Building Embedded Systems Chapter 1: Introduction References [Lee, 2006] Lee, E. A.: The future of embedded software. ARTEMIS Conference, Graz, 2006. [Lee, 2007] Lee, E. A.: Computing foundations and practice for cyberphysical systems: A preliminary report. Tech. Report, Berkeley, USA, 2007. [Marwedel, 2003] Marwedel, P.: Embedded System Design. Kluwer Academic Publishers, 2003. [Marwedel, 2011] Marwedel, P.: Embedded System Design. 2nd Edition, Springer, 2011. [Wietzke, 2012] Wietzke, J.: Embedded Technologies. Springer, 2012.
All Rights Reserved. The contents of this document cannot be reproduced without prior permission of the authors. Building Embedded Systems Chapter 1: Introduction Andreas Knirsch andreas.knirsch@h-da.de