SlideShare a Scribd company logo
1 of 16
Introduction to Embedded Linux
and Device Drivers
www.definecareer.com
What is an Embedded system?
An embedded system is a special-purpose computer
system designed to perform one or a few dedicated
functions, often with real-time computing constraints.
 It is usually embedded as part of a complete device
including hardware and mechanical parts.
In contrast, a general-purpose computer, such as a
personal computer, can do many different tasks
depending on programming.
Embedded systems control many of the common
devices in use today.
Embedded System Products
Linux
The Free Software and Open Source world offers a
broad range of tools to develop embedded systems.
Advantages
Reuse of existing components for the base system
Allows to focus on the added value of the product.
High quality, proven components (Linux kernel, C
libraries...)
Complete control on the choice of components
Modifications possible without external constraints
Community support: tutorials, mailing lists...
Low cost, in particular no per-unit royalties.
Potentially less legal issues.
Easier access to software and tools.
Linux Architecture
Hardware
Boot loader
Linux kernel
Standard C library
Library Library Library
Application
Tools
Embedded Hardware
Hardware for embedded systems is often different
from hardware for classical systems.
Often a different CPU architecture: ARM, MIPS or
PowerPC. Intel atom based on x86 arch is also used.
Storage on flash : NOR or NAND type, often with
limited capacity (from a few hundreds of MB to few
GB)
Limited RAM capacity (from a few tens of MB to
several hundreds of MB)
Many interconnect buses generally not often found
on the desktop: I2C, SPI, SSP, CAN, etc.
Minimum System HW Req
A CPU supported by gcc and the Linux kernel
32 bit CPU
MMU-less CPUs are also supported, through the
uClinux project.
A few MB of RAM (4 MB), 8 MB are needed to
really do something.
Linux isn't designed for small microcontrollers that
just have a few tens or hundreds of KB of flash and
RAM.
Base metal, no OS
Reduced systems, such as FreeRTOS , Nucleus
SW Comp’s Req for Development
Cross-compilation tool chain
Compiler that runs on the development machine, but
generates code for the target
Bootloader
Started by the hardware, responsible for basic
initialization, loading and executing the kernel
Linux Kernel
Contains the process and memory management,
network stack, device drivers and provides services to
userspace applications
C library
The interface between the kernel and the userspace
applications
Libraries and applications
Third-party or in-house
Driver Development
Kernel Architecture for Device Drivers
Embedded Linux Driver
Development
Kernel and Device Drivers
Application
System call interface
Framework
Driver
Bus infrastructure
Hardware
Userspace
Kernel
Unified Device Model
The 2.6 kernel included a significant new feature: a unified device
Model :
 Instead of having different ad-hoc mechanisms in the various
subsystems, the device model unifies the description of the
devices and their topology
 Minimization of code duplication
 Common facilities (reference counting, event notification,
power management, etc.)
 Enumerate the devices, view their interconnections, link
the devices to their buses and drivers, etc.
 Understanding the device model is necessary to understand
how device drivers fit into the Linux kernel architecture.
Bus Drivers
 The first component of the device model is the bus driver;
 One bus driver for each type of bus: USB, PCI, SPI, MMC, I2C, etc.
 It is responsible for:
 Registering the bus type (struct bus_type)
 Allowing the registration of adapter drivers (USB controllers,
I2C adapters, etc.), able of detecting the connected devices,
and providing a communication mechanism with the devices
 Allowing the registration of device drivers (USB devices, I2C
devices, PCI devices, etc.), managing the devices
 Matching the device drivers against the devices detected by
the adapter drivers
 Provides an API to both adapter drivers and device drivers
 Defining driver and device specific structure, typically
xxx_driver and xxx_device
Example: USB Bus
USB core
Registers the bus_type structure
USB adapter
driver A
USB adapter
driver B
USB device
driver 1
USB device
driver 2
USB device
driver 3
System
USB1
USB2
DEV1 DEV2
DEV3 DEV4 DEV5
Platform Devices
 On embedded systems, devices are often not connected
through a bus allowing enumeration, hot plugging, and
providing unique identifiers for devices.
 However, we still want the devices to be part of the device
model.
 The solution to this is the platform driver / platform device
infrastructure.
 The platform devices are the devices that are directly
connected to the CPU, without any kind of bus.
Linux DD Course Content
Overview
Understanding the Linux kernel
 Understanding the development process
 Kernel Internals
 Root file system development from scratch
 Developing Linux device drivers
 Driver architecture
 Development of char driver
 Working with the kernel development community
 Practical labs with ARM boards as well as emulated
PC systems
 Duration
 50 hrs
For further queries/enquiries contact :training@definecareer.com
Thank you!

More Related Content

What's hot

The MIDI Protocol - Musical Instrument Digital Interface
The MIDI Protocol - Musical Instrument Digital InterfaceThe MIDI Protocol - Musical Instrument Digital Interface
The MIDI Protocol - Musical Instrument Digital InterfaceBhaumik Bhatt
 
video compression techique
video compression techiquevideo compression techique
video compression techiqueAshish Kumar
 
2.5 capacity calculations of fdma, tdma and cdma
2.5   capacity calculations of fdma, tdma and cdma2.5   capacity calculations of fdma, tdma and cdma
2.5 capacity calculations of fdma, tdma and cdmaJAIGANESH SEKAR
 
Unit 1 Introduction to wireless telecommunication system and networks
Unit  1 Introduction to wireless telecommunication system and networksUnit  1 Introduction to wireless telecommunication system and networks
Unit 1 Introduction to wireless telecommunication system and networksAshutha K
 
Embedded System Tools ppt
Embedded System Tools  pptEmbedded System Tools  ppt
Embedded System Tools pptHalai Hansika
 
Digital Audio Broadcasting By SAIKIRAN PANJALA
Digital  Audio Broadcasting By SAIKIRAN PANJALADigital  Audio Broadcasting By SAIKIRAN PANJALA
Digital Audio Broadcasting By SAIKIRAN PANJALASaikiran Panjala
 
Audio and video streaming
Audio and video streamingAudio and video streaming
Audio and video streamingRohan Bhatkar
 
Audio Graphic Equalizer
Audio Graphic EqualizerAudio Graphic Equalizer
Audio Graphic EqualizerRajesh Sharma
 
Intro to Multimedia Systems
Intro to Multimedia SystemsIntro to Multimedia Systems
Intro to Multimedia Systemsjunliwanag
 
Memory Organisation in embedded systems
Memory Organisation in embedded systemsMemory Organisation in embedded systems
Memory Organisation in embedded systemsUthraSowrirajan1
 
Issue tracking system
Issue tracking systemIssue tracking system
Issue tracking systemdharm18
 
TV transmission principles
TV transmission principlesTV transmission principles
TV transmission principlesnnmaurya
 
Lecture notes on mobile communication
Lecture notes on mobile communicationLecture notes on mobile communication
Lecture notes on mobile communicationInocentshuja Ahmad
 
Radio Frequency Fundamentals
Radio Frequency FundamentalsRadio Frequency Fundamentals
Radio Frequency FundamentalsJohn Ombagi
 
4.5 equalizers and its types
4.5   equalizers and its types4.5   equalizers and its types
4.5 equalizers and its typesJAIGANESH SEKAR
 
IBOC TECHNOLOGY
IBOC TECHNOLOGYIBOC TECHNOLOGY
IBOC TECHNOLOGYDj Tibi
 
Simulation of Direct Sequence Spread Spectrum for Wireless Communication Syst...
Simulation of Direct Sequence Spread Spectrum for Wireless Communication Syst...Simulation of Direct Sequence Spread Spectrum for Wireless Communication Syst...
Simulation of Direct Sequence Spread Spectrum for Wireless Communication Syst...ijtsrd
 

What's hot (20)

The MIDI Protocol - Musical Instrument Digital Interface
The MIDI Protocol - Musical Instrument Digital InterfaceThe MIDI Protocol - Musical Instrument Digital Interface
The MIDI Protocol - Musical Instrument Digital Interface
 
video compression techique
video compression techiquevideo compression techique
video compression techique
 
2.5 capacity calculations of fdma, tdma and cdma
2.5   capacity calculations of fdma, tdma and cdma2.5   capacity calculations of fdma, tdma and cdma
2.5 capacity calculations of fdma, tdma and cdma
 
Digital audio
Digital audioDigital audio
Digital audio
 
Unit 1 Introduction to wireless telecommunication system and networks
Unit  1 Introduction to wireless telecommunication system and networksUnit  1 Introduction to wireless telecommunication system and networks
Unit 1 Introduction to wireless telecommunication system and networks
 
Unit 2 sdr architecture
Unit 2   sdr architectureUnit 2   sdr architecture
Unit 2 sdr architecture
 
Embedded System Tools ppt
Embedded System Tools  pptEmbedded System Tools  ppt
Embedded System Tools ppt
 
Digital Audio Broadcasting By SAIKIRAN PANJALA
Digital  Audio Broadcasting By SAIKIRAN PANJALADigital  Audio Broadcasting By SAIKIRAN PANJALA
Digital Audio Broadcasting By SAIKIRAN PANJALA
 
Urx m1
Urx m1Urx m1
Urx m1
 
Audio and video streaming
Audio and video streamingAudio and video streaming
Audio and video streaming
 
Audio Graphic Equalizer
Audio Graphic EqualizerAudio Graphic Equalizer
Audio Graphic Equalizer
 
Intro to Multimedia Systems
Intro to Multimedia SystemsIntro to Multimedia Systems
Intro to Multimedia Systems
 
Memory Organisation in embedded systems
Memory Organisation in embedded systemsMemory Organisation in embedded systems
Memory Organisation in embedded systems
 
Issue tracking system
Issue tracking systemIssue tracking system
Issue tracking system
 
TV transmission principles
TV transmission principlesTV transmission principles
TV transmission principles
 
Lecture notes on mobile communication
Lecture notes on mobile communicationLecture notes on mobile communication
Lecture notes on mobile communication
 
Radio Frequency Fundamentals
Radio Frequency FundamentalsRadio Frequency Fundamentals
Radio Frequency Fundamentals
 
4.5 equalizers and its types
4.5   equalizers and its types4.5   equalizers and its types
4.5 equalizers and its types
 
IBOC TECHNOLOGY
IBOC TECHNOLOGYIBOC TECHNOLOGY
IBOC TECHNOLOGY
 
Simulation of Direct Sequence Spread Spectrum for Wireless Communication Syst...
Simulation of Direct Sequence Spread Spectrum for Wireless Communication Syst...Simulation of Direct Sequence Spread Spectrum for Wireless Communication Syst...
Simulation of Direct Sequence Spread Spectrum for Wireless Communication Syst...
 

Similar to Introduction to embedded linux device driver and firmware

Ch20 OS
Ch20 OSCh20 OS
Ch20 OSC.U
 
Building Embedded Linux Systems Introduction
Building Embedded Linux Systems IntroductionBuilding Embedded Linux Systems Introduction
Building Embedded Linux Systems IntroductionSherif Mousa
 
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteUnit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteTushar B Kute
 
Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded LinuxTushar B Kute
 
An introduction to digital signal processors 1
An introduction to digital signal processors 1An introduction to digital signal processors 1
An introduction to digital signal processors 1Hossam Hassan
 
Operating system Definition Structures
Operating  system Definition  StructuresOperating  system Definition  Structures
Operating system Definition Structuresanair23
 
Introduction to Operating system for BCA syllabus
Introduction to Operating system for BCA syllabusIntroduction to Operating system for BCA syllabus
Introduction to Operating system for BCA syllabusVidyapol1
 
Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systemsVandana Salve
 
Linux architecture
Linux architectureLinux architecture
Linux architecturemcganesh
 
Linux architecture
Linux architectureLinux architecture
Linux architecturemcganesh
 
Linux internal
Linux internalLinux internal
Linux internalmcganesh
 
Driver Programming Report
Driver Programming ReportDriver Programming Report
Driver Programming ReportShivek Khurana
 

Similar to Introduction to embedded linux device driver and firmware (20)

Operating system
Operating systemOperating system
Operating system
 
Ch22
Ch22Ch22
Ch22
 
OS_Ch20
OS_Ch20OS_Ch20
OS_Ch20
 
OSCh20
OSCh20OSCh20
OSCh20
 
Ch20 OS
Ch20 OSCh20 OS
Ch20 OS
 
Building Embedded Linux Systems Introduction
Building Embedded Linux Systems IntroductionBuilding Embedded Linux Systems Introduction
Building Embedded Linux Systems Introduction
 
Chapter 5.0
Chapter 5.0Chapter 5.0
Chapter 5.0
 
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteUnit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
 
Information sheet 1
Information sheet 1Information sheet 1
Information sheet 1
 
Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded Linux
 
An introduction to digital signal processors 1
An introduction to digital signal processors 1An introduction to digital signal processors 1
An introduction to digital signal processors 1
 
Operating system Definition Structures
Operating  system Definition  StructuresOperating  system Definition  Structures
Operating system Definition Structures
 
Introduction to Operating system for BCA syllabus
Introduction to Operating system for BCA syllabusIntroduction to Operating system for BCA syllabus
Introduction to Operating system for BCA syllabus
 
Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systems
 
Linux architecture
Linux architectureLinux architecture
Linux architecture
 
Linux architecture
Linux architectureLinux architecture
Linux architecture
 
Linux internal
Linux internalLinux internal
Linux internal
 
Driver Programming Report
Driver Programming ReportDriver Programming Report
Driver Programming Report
 
Cs8493 unit 5
Cs8493 unit 5Cs8493 unit 5
Cs8493 unit 5
 
CS8493-OS-Unit-5.pdf
CS8493-OS-Unit-5.pdfCS8493-OS-Unit-5.pdf
CS8493-OS-Unit-5.pdf
 

Recently uploaded

Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Recently uploaded (20)

Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

Introduction to embedded linux device driver and firmware

  • 1. Introduction to Embedded Linux and Device Drivers www.definecareer.com
  • 2. What is an Embedded system? An embedded system is a special-purpose computer system designed to perform one or a few dedicated functions, often with real-time computing constraints.  It is usually embedded as part of a complete device including hardware and mechanical parts. In contrast, a general-purpose computer, such as a personal computer, can do many different tasks depending on programming. Embedded systems control many of the common devices in use today.
  • 4. Linux The Free Software and Open Source world offers a broad range of tools to develop embedded systems. Advantages Reuse of existing components for the base system Allows to focus on the added value of the product. High quality, proven components (Linux kernel, C libraries...) Complete control on the choice of components Modifications possible without external constraints Community support: tutorials, mailing lists... Low cost, in particular no per-unit royalties. Potentially less legal issues. Easier access to software and tools.
  • 5. Linux Architecture Hardware Boot loader Linux kernel Standard C library Library Library Library Application Tools
  • 6. Embedded Hardware Hardware for embedded systems is often different from hardware for classical systems. Often a different CPU architecture: ARM, MIPS or PowerPC. Intel atom based on x86 arch is also used. Storage on flash : NOR or NAND type, often with limited capacity (from a few hundreds of MB to few GB) Limited RAM capacity (from a few tens of MB to several hundreds of MB) Many interconnect buses generally not often found on the desktop: I2C, SPI, SSP, CAN, etc.
  • 7. Minimum System HW Req A CPU supported by gcc and the Linux kernel 32 bit CPU MMU-less CPUs are also supported, through the uClinux project. A few MB of RAM (4 MB), 8 MB are needed to really do something. Linux isn't designed for small microcontrollers that just have a few tens or hundreds of KB of flash and RAM. Base metal, no OS Reduced systems, such as FreeRTOS , Nucleus
  • 8. SW Comp’s Req for Development Cross-compilation tool chain Compiler that runs on the development machine, but generates code for the target Bootloader Started by the hardware, responsible for basic initialization, loading and executing the kernel Linux Kernel Contains the process and memory management, network stack, device drivers and provides services to userspace applications C library The interface between the kernel and the userspace applications Libraries and applications Third-party or in-house
  • 9. Driver Development Kernel Architecture for Device Drivers Embedded Linux Driver Development
  • 10. Kernel and Device Drivers Application System call interface Framework Driver Bus infrastructure Hardware Userspace Kernel
  • 11. Unified Device Model The 2.6 kernel included a significant new feature: a unified device Model :  Instead of having different ad-hoc mechanisms in the various subsystems, the device model unifies the description of the devices and their topology  Minimization of code duplication  Common facilities (reference counting, event notification, power management, etc.)  Enumerate the devices, view their interconnections, link the devices to their buses and drivers, etc.  Understanding the device model is necessary to understand how device drivers fit into the Linux kernel architecture.
  • 12. Bus Drivers  The first component of the device model is the bus driver;  One bus driver for each type of bus: USB, PCI, SPI, MMC, I2C, etc.  It is responsible for:  Registering the bus type (struct bus_type)  Allowing the registration of adapter drivers (USB controllers, I2C adapters, etc.), able of detecting the connected devices, and providing a communication mechanism with the devices  Allowing the registration of device drivers (USB devices, I2C devices, PCI devices, etc.), managing the devices  Matching the device drivers against the devices detected by the adapter drivers  Provides an API to both adapter drivers and device drivers  Defining driver and device specific structure, typically xxx_driver and xxx_device
  • 13. Example: USB Bus USB core Registers the bus_type structure USB adapter driver A USB adapter driver B USB device driver 1 USB device driver 2 USB device driver 3 System USB1 USB2 DEV1 DEV2 DEV3 DEV4 DEV5
  • 14. Platform Devices  On embedded systems, devices are often not connected through a bus allowing enumeration, hot plugging, and providing unique identifiers for devices.  However, we still want the devices to be part of the device model.  The solution to this is the platform driver / platform device infrastructure.  The platform devices are the devices that are directly connected to the CPU, without any kind of bus.
  • 15. Linux DD Course Content Overview Understanding the Linux kernel  Understanding the development process  Kernel Internals  Root file system development from scratch  Developing Linux device drivers  Driver architecture  Development of char driver  Working with the kernel development community  Practical labs with ARM boards as well as emulated PC systems  Duration  50 hrs For further queries/enquiries contact :training@definecareer.com