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

Linux kernel Architecture and Properties
Linux kernel Architecture and PropertiesLinux kernel Architecture and Properties
Linux kernel Architecture and PropertiesSaadi Rahman
 
Intoduction to VirtualBox English
Intoduction to VirtualBox EnglishIntoduction to VirtualBox English
Intoduction to VirtualBox EnglishKichiemon Adachi
 
GPU Virtualization in Embedded Automotive Solutions
GPU Virtualization in Embedded Automotive SolutionsGPU Virtualization in Embedded Automotive Solutions
GPU Virtualization in Embedded Automotive SolutionsGlobalLogic Ukraine
 
Introduction to linux containers
Introduction to linux containersIntroduction to linux containers
Introduction to linux containersGoogle
 
Q4.11: Introduction to eMMC
Q4.11: Introduction to eMMCQ4.11: Introduction to eMMC
Q4.11: Introduction to eMMCLinaro
 
P ism(pen style personal networking gadget)
P ism(pen style personal networking gadget)P ism(pen style personal networking gadget)
P ism(pen style personal networking gadget)aparnasukumaar
 
Introduction to Linux basic
Introduction to Linux basicIntroduction to Linux basic
Introduction to Linux basicf114n
 
IBM MQ Disaster Recovery
IBM MQ Disaster RecoveryIBM MQ Disaster Recovery
IBM MQ Disaster RecoveryMarkTaylorIBM
 
Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Aananth C N
 
Red Hat Enterprise Virtualization
Red Hat Enterprise VirtualizationRed Hat Enterprise Virtualization
Red Hat Enterprise Virtualizationhipark
 
Linux Kernel Cryptographic API and Use Cases
Linux Kernel Cryptographic API and Use CasesLinux Kernel Cryptographic API and Use Cases
Linux Kernel Cryptographic API and Use CasesKernel TLV
 
VMware vSphere Storage Appliance (VSA) - Technical Presentation,Almacenamien...
VMware vSphere Storage Appliance (VSA) -  Technical Presentation,Almacenamien...VMware vSphere Storage Appliance (VSA) -  Technical Presentation,Almacenamien...
VMware vSphere Storage Appliance (VSA) - Technical Presentation,Almacenamien...Suministros Obras y Sistemas
 
Static partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-VStatic partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-VRISC-V International
 
Universal flash storage
Universal flash storageUniversal flash storage
Universal flash storageDooyong Lee
 
Configuring wifi in open embedded builds
Configuring wifi in open embedded buildsConfiguring wifi in open embedded builds
Configuring wifi in open embedded buildsMender.io
 

What's hot (20)

Linux kernel Architecture and Properties
Linux kernel Architecture and PropertiesLinux kernel Architecture and Properties
Linux kernel Architecture and Properties
 
Intoduction to VirtualBox English
Intoduction to VirtualBox EnglishIntoduction to VirtualBox English
Intoduction to VirtualBox English
 
File systems for Embedded Linux
File systems for Embedded LinuxFile systems for Embedded Linux
File systems for Embedded Linux
 
GPU Virtualization in Embedded Automotive Solutions
GPU Virtualization in Embedded Automotive SolutionsGPU Virtualization in Embedded Automotive Solutions
GPU Virtualization in Embedded Automotive Solutions
 
Introduction to linux containers
Introduction to linux containersIntroduction to linux containers
Introduction to linux containers
 
Q4.11: Introduction to eMMC
Q4.11: Introduction to eMMCQ4.11: Introduction to eMMC
Q4.11: Introduction to eMMC
 
Xen Debugging
Xen DebuggingXen Debugging
Xen Debugging
 
Containers 101
Containers 101Containers 101
Containers 101
 
P ism(pen style personal networking gadget)
P ism(pen style personal networking gadget)P ism(pen style personal networking gadget)
P ism(pen style personal networking gadget)
 
Introduction to Linux basic
Introduction to Linux basicIntroduction to Linux basic
Introduction to Linux basic
 
IBM MQ Disaster Recovery
IBM MQ Disaster RecoveryIBM MQ Disaster Recovery
IBM MQ Disaster Recovery
 
Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Virtualization Support in ARMv8+
Virtualization Support in ARMv8+
 
Red Hat Enterprise Virtualization
Red Hat Enterprise VirtualizationRed Hat Enterprise Virtualization
Red Hat Enterprise Virtualization
 
Linux Kernel Cryptographic API and Use Cases
Linux Kernel Cryptographic API and Use CasesLinux Kernel Cryptographic API and Use Cases
Linux Kernel Cryptographic API and Use Cases
 
VMware vSphere Storage Appliance (VSA) - Technical Presentation,Almacenamien...
VMware vSphere Storage Appliance (VSA) -  Technical Presentation,Almacenamien...VMware vSphere Storage Appliance (VSA) -  Technical Presentation,Almacenamien...
VMware vSphere Storage Appliance (VSA) - Technical Presentation,Almacenamien...
 
Static partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-VStatic partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-V
 
Universal flash storage
Universal flash storageUniversal flash storage
Universal flash storage
 
Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
 
systemd
systemdsystemd
systemd
 
Configuring wifi in open embedded builds
Configuring wifi in open embedded buildsConfiguring wifi in open embedded builds
Configuring wifi in open embedded builds
 

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

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

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