Disclaimer
Arm is committed to making the language we use inclusive, meaningful, and respectful. Our goal is to remove and
replace non-inclusive language from our vocabulary to reflect our values and represent our global ecosystem.
Arm is working actively with our partners, standards bodies, and the wider ecosystem to adopt a consistent approach to
the use of inclusive language and to eradicate and replace offensive terms. We recognise that this will take time. This
course may contain references to non-inclusive language; it will be updated with newer terms as those terms are
agreed and ratified with the wider community.
Contact us at education@arm.com with questions or comments about this course. You can also report non-inclusive and
offensive terminology usage in Arm content at terms@arm.com.
1 © 2017 Arm Limited
Embedded Linux
Introduction
© 2017 Arm Limited
Goals
To introduce the structure of the Embedded Linux Online Course
To introduce the concept of embedded systems
To provide a few illustrative examples of Linux-based embedded systems
3 © 2017 Arm Limited
Summary
Course structure
Introduction to embedded systems
Linux in embedded systems
4 © 2017 Arm Limited
Summary
Course structure
Introduction to embedded systems
Linux in embedded systems
5 © 2017 Arm Limited
Course Structure
Module 1: Linux in Embedded Systems
• Definition of embedded systems
• Examples
Module 2: Linux-based Embedded System Component Stack
• Bootloader
• Kernel
• Root file system
• Device tree
• System programs
• Application
6 © 2017 Arm Limited
Course Structure
Module 3: Anatomy of a Linux-based system
• The Linux Kernel internals
• Device tree
• System programs and BusyBox
Module 4: Configuration & Build Process of an Embedded Linux System
• Buildroot
• Yocto
Module 5: Introduction to Linux Kernel Modules
• CPU – I/O interface
• I/O taxonomy
• Linux devices
• Virtual file system abstraction
• Linux Kernel modules
7 © 2017 Arm Limited
Course Structure
Module 6: Communication Between Kernel and User Space
• Module level communication point of view
• User level communication point of view
Module 7: Application Demo: Building a Ranging Sensor Kernel Module
• The sysfs file system
• Building Linux support for the HC-SR04 ultrasonic ranging sensor
Module 8: System Debugging & Profiling lab exercises
The majority of the theoretical lectures will be complemented with lab exercises.
8 © 2017 Arm Limited
Summary
Course structure
Introduction to embedded systems
Linux in embedded systems
9 © 2017 Arm Limited
What Is an Embedded System?
It is a special-purpose computer designed for a specific application.
Example of application:
internal combustion engine (ICE) Example of embedded system:
electronic control unit for ICE
10 © 2017 Arm Limited
Embedded System Components
Application
Two main components
• Application System Programs
• Platform
System Call Interface
Operating System
Basic Software
Application
Platform
Process Virtual File
• Software that implements the functionalities for Management System
which the embedded system is intended (e.g., to
control an ICE) Memory Network
Management Management
Platform
Device Drivers
• Combination of hardware and basic software
components that provides the services needed for
the application to run Bootloader
• Basic software includes system programs, operating
system, bootloader Hardware
11 © 2017 Arm Limited
Basic Software
Abstracts the hardware details by providing easy- System Programs
to-use functionalities, such as:
Access to the resources through user-friendly utilities known System Call Interface
Operating System
•
Basic Software
as system programs
Process Virtual File
• Example: ls to list the content of a directory Management System
Memory Network
• Efficient access to the resources provided by the hardware Management Management
through the operating system
• Example: CPU real-time scheduling, device driver
Device Drivers
management
Bootloader
• Initialization of hardware resources at power-up and
execution of the operating system through the bootloader
12 © 2017 Arm Limited
Operating Systems for Embedded Systems
Example 1: deterministic real-time system
There are many solutions available which
serve different purposes depending on the
requirements of the application.
• Example 1
• Needs: deterministic real-time operating system for
low-cost devices, with little memory footprint
• Possible solutions: ARM RTX, Micrium mC/OS,
Example 2: in-vehicle infotainment
FreeRTOS, and others
• Example 2
• Needs: multi-core and networking support, advanced
graphics, and complex device handling
• Possible solutions: Linux, Android, and Windows
http://linuxgizmos.com/linux-based-in-vehicle-infotainment-on-the-rise /
13 © 2017 Arm Limited
Summary
Course structure
Introduction to embedded systems
Linux in embedded systems
14 © 2017 Arm Limited
Why Linux-based Embedded Systems?
Open Source (under GNU General Public License v2.0 : GPLv2)
• The full source code is available for learning and adaptation
Engaged community maintaining and improving Linux regularly
• Companies
• Individuals
• Academics
• Hobbyists
Flexible and adaptable: supports many hardware/System-on-Chip (SoC) configurations
• Based on ARM, x86, PowerPC, SPARC, etc.
Proven in many different scenarios (see next slides)
Supported by a very large ecosystem of software
• Bootloader, system programs, networking services, advanced graphic services, etc.
Royalty-free
15 © 2017 Arm Limited
Linux Evolution
August 26, 1991: everything started with this post Today several kernel categories exist, including:
to comp.os.minix
• Prepatch or "RC" kernels, which are pre-releases
maintained and released by Linus Torvalds.
• Mainline kernel is maintained by Linus Torvalds, and is
where all new features are introduced. New mainline
kernels are released every 2-3 months.
• Long-term kernels are older releases subject to “long-term
maintenance”. Important bug fixes are applied to such
kernels.
https://www.kernel.org/category/releases.html
16 © 2017 Arm Limited
Linux-based Embedded System: Example 1
In-flight entertainment systems
“Linux is particularly suited for in-flight
entertainment because it's simple, not
weighed down by accompanying
programs, and easily adaptable to many
environments.”
http://www.linuxinsider.com/story/The-Flying-Penguin-Linux-In-Flight-Entertainment-Systems-65541.html
http://www.linuxinsider.com/story/
The-Flying-Penguin-Linux-In-Flight-Entertainment-Systems-65541.html
17 © 2017 Arm Limited
Linux-based Embedded System: Example 2
Tim Horton’s Café and Bake Shop
The screen displays the messages
Linux produces during boot-up.
In particular, we can recognize a
kernel panic, as the kernel is not
able to find the root file system.
18 © 2017 Arm Limited
Linux-based Embedded System: Example 3
A gas station pump
The screen displays the messages of
a Linux bootloader.
This gas station is powered by Linux
Ubuntu distribution with Kernel
2.6.35.
19 © 2017 Arm Limited