SlideShare uma empresa Scribd logo
1 de 7
Baixar para ler offline
Embedded Linux
Platform Developer
Course description
Advanced training program on Embedded Linux platform development with comprehensive
coverage on target board bring up, Embedded Linux porting, Linux kernel BSP and Embedded
Linux Device Driver Development
Course Highlights
 Detailed analysis of modern embedded hardware architectures and board bring up
strategies
 In depth understanding of open source boot loader “uboot”
 Hands on sessions on uboot customization for new targets
 Hands on sessions on Embedded Linux porting strategies
 Analysis and detailed walkthrough of Embedded Linux board support code
 In depth coverage on embedded Linux driver stacks and driver implementations (I2C,
SPI, GPIO)
 Analysis and walkthrough of Embedded Linux video and audio driver stacks
 Hands on sessions on multi-media application porting
 Hands on sessions on various hardware targets including Mini 2440, Omap, Zed etc.
301, Prashanthiram Towers, Saradhi Studio Lane, Ameerpet, Hyderabad
Ph:040-66100265 Email: info@techveda.org www.techveda.org
Who should attend
Developers looking to master or expecting assignments/projects in the following core areas:
 Embedded Linux Porting
 Linux BSP development
 Uboot Customization
 Embedded Linux Driver Development
 Android System Development
OR
 GNU C programmers looking to master Embedded Linux, BSP and Embedded Device
Driver Development
 Experienced developers looking for a refresher course on Linux BSP and Embedded
Device Driver Development.
Course Prerequisites
 Good programming skills using GNU C
 Application programming experience on Linux platform
 Linux kernel programming basics
OR
 Participants who have undergone “Linux Kernel and Driver Developer” course from
Veda Solutions
Detailed Course Contents
Part 1: Embedded Hardware
1. Understanding Embedded Systems
● Embedded systems landscape
● Attributes of Embedded Systems
● Trends in Embedded technology
● Embedded Platform Architecture
● Embedded Processor Architecture
● Microcontroller, microprocessors and
SOC
2. Understanding Embedded Boot sequence
● Boot technology considerations
● Role of Bootstrap Processor
● Boot components
● Hardware Power sequences
● RESET vectors
● CPU initialization
● Device Initialization
● Boot device selection
3. Understanding ARM Architecture
● Introduction to ARM architecture
● Processor modes
● ARM Registers
● ARM Endian Support
● ARM Instruction Set
● Addressing modes
● The System Control Processor
4. Embedded Target boards (ARM Soc based)
● Understanding Target board schematic
● Interpreting Target board
manuals/data sheets
● Identifying key components on Target
board
● Identifying various Device interfaces
● Understanding Memory maps
Part 2: Platform BSP
1. Embedded Board Support Packages
● Introduction to BSP
● BSP design considerations
● Various stages in Board Support Code
2. Working with components of BSP
● Introduction to BootROM
● BootROM design
● BootROM design considerations
● BootROM code
● BootROM executions trace
● Memory organization
● Introduction to FSBL
● FSBL functionalities
● FSBL design standards
● Getting hands on with FSBL (case
study)
● Build & Running FSBL
● FSBL Call Graph
● Introduction to SSBL
● Types of SSBL
● SSBL as primary bootloader
3. Uboot
● Introduction to Uboot
● Key Features
● Supported Platforms & Processors
● Supported Boot modes
4. Uboot source walk-through
● Uboot source tree layout
● Memory organization
● Memory relocation
● Stack setup
● Important Misc.
5. Uboot build and setup
● Build structure
● Building U-Boot for emulator
● Building U-Boot for physical target
● Creating flash partitions
● Environment variables
● Commands
● Uboot call graph
6. Customizing Uboot for new targets
● Uboot source tree in detail
● Porting/upgrading u-boot
● Coding guidelines
● Customizing configuration files
● Target specific modifications
● Customizing/adding drivers
● Customizing/adding new commands
● Uboot scripts
● Hosting Apps on Uboot
Part 3: Embedded Linux & Application Porting
1. Embedded Linux overview
● Linux as an Embedded Operating
system
● Linux and open source Ecosystem for
Embedded Devices
● Linux kernel facilities for Embedded
Devices
● Understanding Linux system Boot
Process
● Introduction to Linux system
components
2. Cross-compiler tool-chains
● Need for cross tool-chain
● Different tool-chains’ build procedures
● Using pre-build cross tool-chain
● Building cross tool-chain using cross
tool-NG
● Using Scratch box
3. Building kernel Image
● Kernel Source tree organization
● Introduction to kernel Build system
● Understanding Kconfig and Make
scripts
● Kernel configuration for target
● Cross compiling kernel source
● Linker scripts
● Build analysis
● Kernel parameters
4. Upgrading/Porting kernel to specific target
● Prerequisites
● Generic procedure
● Kconfig language and Makefile
● Module by module porting
5. Linux File Systems for Embedded Storage
● Need for flash file systems
● Linux File system support for Flash
memory
● Understanding jffs2 file system
● Enabling kernel support for jffs2
● Understanding UBI file system
● Enabling kernel support for UBIFS
● Understanding Cramfs
● Enabling kernel support for Cramfs
● Understanding SquashFS
● Kernel support for SquashFS
● Understanding YAFFS2
● Kernel support for YAFFS2
6. Root File system
● Understanding Linux Init process
● Need of root file system
● Understanding Unix File system
hierarchy
● Choosing root file system layout
● Startup scripts
● Choosing system binaries and utilities
● Cross-compiling and hosting Apps
● Populating device nodes
● Need for log daemons
● Setting up log daemons
● Building fs image
7. Deploying & Testing Linux system on target
● Flashing U-boot to target
● Booting Linux kernel from DDR
● Flashing kernel image to target
● Deploying RFS through initrd(ramdisk)
● Deploying RFS through initramfs
● Deploying RFS through NFS
● Flashing root file system to target
● Kernel boot from NOR flash
● Kernel boot from NAND flashes
● Kernel boot from SD/MMC
● Kernel boot from Serial flashes
8. Network services and utilities
● nfs
● Telnet
● Ssh
● Dhcp
● Snmp
● http
9. Graphical interface frameworks
● X.org
● Fltk
● Nano-x
● Gtk
● WxEmbedded
● Qt for Embedded
10. Porting multimedia Apps
● Audio Apps
● Video Apps
● Direct media layer
● DirectFB
● Video for Linux
● Digital video broadcasting
Part 4: Embedded Linux BSP
1. Linux BSP basics
● Linux BSP components
● Platform Devices
● Understanding timers
● Understanding interrupts
● Understanding clocks
● Understanding power management
● Understanding memory map
● Understanding interrupts
● Understanding GPIO
2. Hardware Clocks
● Introduction to clocks
● Clock types and significance
● Linux clock management framework
● Using clock interfaces in drivers
3. Power Management
● Introduction to power management
● Device power management and
significance
● Linux power management framework
● Using power API’s in drivers
4. Device Tree (FDT)
● Introduction to Device tree
● Device Tree Script (dts)
● Device Tree compiler(dtc)
● Device Tree Blob (dtb)
● Booting Linux with device tree
● Device tree and drivers
Part 5: Embedded Linux Device Drivers
1. Linux device driver model
● Introduction to device driver model
● Design objectives
● Hotplug drivers
● Sysfs filesystem
● Procfs filesystem
● Debugfs filesystem
2. Linux device drivers
● Overview of Linux device drivers
● Categories of Linux device drivers
3. Handling Platform devices
● Linux platform driver stack
● Platform devices Enumeration
● Hands on with platform drivers
4. RTC
● Basic RTC operation
● Linux RTC subsystem
● Implementing RTC driver
5. Watchdog
● Basic watchdog operation
● Linux watchdog subsystem
● Implementing watchdog driver
6. UART controller
● UART introduction
● Linux UART stack
● Implementing UART driver
7. Console Devices
● Introduction to console
● Need for console dev
● Writing Console Driver
8. Handling i2c interface
● Introduction to i2c
● i2c protocol
● Linux i2c driver stack
● i2c adapter driver
● i2c bus manager
● i2c client drivers
9. Handling SPI interface
● Introduction to SPI Bus
● SPI protocols
● Linux SPI subsystem
● SPI drivers
10. Handling GPIO
● Introduction to GPIO
● Linux GPIO management
● Accessing GPIO interfaces
11. Handling Input devices
● Introduction to input devices
● Linux Input subsystem
● Implementing input drivers (Keypad,
mouse, Touch screen)
12. USB
● USB protocol introduction
● Linux USB subsystem
● Linux USB OTG subsystem
● Implementing USB driver for Mass
storage protocol
13. SD/MMC
● SD/MMC protocol introduction
● Linux SD/MMC subsystem
● Implementing SD/MMC driver
14. NAND
● Introduction to MTD devices
● Linux MTD Subsystem
● NAND device introduction
● Implementing NAND driver
15. Ethernet
● Network protocols introduction
● Introduction to Ethernet
● Implementing Ethernet driver
16. Audio Devices
● Basic audio operation
● Audio codec’s introduction
● Linux Audio Subsystem
● Implementing audio drivers
17. Display/LCD
● Basic display operation
● Linux Display Subsystem
● Implementing display drivers
18. Frame buffer and Video Devices
● Introduction to Linux Video Subsystem
● Analysis of Frame Buffer Driver
Part 6: Debugging Tools
1. User space tools
● GDB, gdb server
● Valgrind
2. Kernel space tools
● Printk
● Kernel OOPS
● KDB
● KGDB
3. Boot time measurement tools
● Grabserial
● Bootchart
Part 6: Open Source Development
1. Open Source Contribution
● Importance/Benefits of open source
contributions
● Open Source project management
Practices
● Development tools required
2. Source control tools (GIT)
● Overview of GIT
● Useful git commands
● Open source projects hosted under Git
3. Using GIT
● How to clone an existing git tree
● How to create your own working
branch in existing git tree
● How to create patches against the
reference tree
● Review of few useful commands
4. Merging GIT trees
● How to upgrade your source tree in
sync with mainline tree version
● How GIT tree merging works
● How to merge the mainline tree
changes into your internal tree
● How to merge BSP into mainline
5. Contributing patches
● How to send your own patches to
mainline GIT tree
● Precautions, while sending patches to
mainline
● Other important open source
contribution tips
301, Prashanthiram Towers, Saradhi Studio Lane, Ameerpet, Hyderabad
Ph:040-66100265 Email: info@techveda.org www.techveda.org

Mais conteúdo relacionado

Mais procurados

Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Linaro
 
Yocto and IoT - a retrospective
Yocto and IoT - a retrospectiveYocto and IoT - a retrospective
Yocto and IoT - a retrospectiveOpen-RnD
 
Build your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectBuild your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectYen-Chin Lee
 
BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64 BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64 Linaro
 
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily JobLuca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Joblinuxlab_conf
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesLinaro
 
BKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFIBKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFILinaro
 
Porting linux to a new architecture
Porting linux to a new architecturePorting linux to a new architecture
Porting linux to a new architectureKALRAY
 
LAS16-400K2: TianoCore – Open Source UEFI Community Update
LAS16-400K2: TianoCore – Open Source UEFI Community UpdateLAS16-400K2: TianoCore – Open Source UEFI Community Update
LAS16-400K2: TianoCore – Open Source UEFI Community UpdateLinaro
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introductionYi-Hsiu Hsu
 
LAS16-109: LAS16-109: The status quo and the future of 96Boards
LAS16-109: LAS16-109: The status quo and the future of 96BoardsLAS16-109: LAS16-109: The status quo and the future of 96Boards
LAS16-109: LAS16-109: The status quo and the future of 96BoardsLinaro
 
BKK16-105 HALs for LITE
BKK16-105 HALs for LITEBKK16-105 HALs for LITE
BKK16-105 HALs for LITELinaro
 

Mais procurados (20)

Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
 
Android Things : Building Embedded Devices
Android Things : Building Embedded DevicesAndroid Things : Building Embedded Devices
Android Things : Building Embedded Devices
 
U-Boot - An universal bootloader
U-Boot - An universal bootloader U-Boot - An universal bootloader
U-Boot - An universal bootloader
 
Yocto and IoT - a retrospective
Yocto and IoT - a retrospectiveYocto and IoT - a retrospective
Yocto and IoT - a retrospective
 
Build your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectBuild your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto project
 
BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64 BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64
 
BusyBox for Embedded Linux
BusyBox for Embedded LinuxBusyBox for Embedded Linux
BusyBox for Embedded Linux
 
Introduction to Embedded Systems
Introduction to Embedded Systems Introduction to Embedded Systems
Introduction to Embedded Systems
 
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily JobLuca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
 
Embedded Android : System Development - Part I
Embedded Android : System Development - Part IEmbedded Android : System Development - Part I
Embedded Android : System Development - Part I
 
BKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFIBKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFI
 
Porting linux to a new architecture
Porting linux to a new architecturePorting linux to a new architecture
Porting linux to a new architecture
 
Raspberry Pi - Overview
Raspberry Pi - OverviewRaspberry Pi - Overview
Raspberry Pi - Overview
 
Masters porting linux
Masters porting linuxMasters porting linux
Masters porting linux
 
LAS16-400K2: TianoCore – Open Source UEFI Community Update
LAS16-400K2: TianoCore – Open Source UEFI Community UpdateLAS16-400K2: TianoCore – Open Source UEFI Community Update
LAS16-400K2: TianoCore – Open Source UEFI Community Update
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introduction
 
Embedded Android : System Development - Part III
Embedded Android : System Development - Part IIIEmbedded Android : System Development - Part III
Embedded Android : System Development - Part III
 
LAS16-109: LAS16-109: The status quo and the future of 96Boards
LAS16-109: LAS16-109: The status quo and the future of 96BoardsLAS16-109: LAS16-109: The status quo and the future of 96Boards
LAS16-109: LAS16-109: The status quo and the future of 96Boards
 
BKK16-105 HALs for LITE
BKK16-105 HALs for LITEBKK16-105 HALs for LITE
BKK16-105 HALs for LITE
 

Destaque

Uboot starts analysis
Uboot starts analysisUboot starts analysis
Uboot starts analysiscri fan
 
U-Boot presentation 2013
U-Boot presentation  2013U-Boot presentation  2013
U-Boot presentation 2013Wave Digitech
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequenceHoucheng Lin
 
Download presentation
Download presentationDownload presentation
Download presentationwebhostingguy
 
Slideshare.Com Powerpoint
Slideshare.Com PowerpointSlideshare.Com Powerpoint
Slideshare.Com Powerpointguested929b
 
Slideshare Powerpoint presentation
Slideshare Powerpoint presentationSlideshare Powerpoint presentation
Slideshare Powerpoint presentationelliehood
 

Destaque (8)

Uboot starts analysis
Uboot starts analysisUboot starts analysis
Uboot starts analysis
 
U-Boot presentation 2013
U-Boot presentation  2013U-Boot presentation  2013
U-Boot presentation 2013
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequence
 
Download presentation
Download presentationDownload presentation
Download presentation
 
Slideshare.Com Powerpoint
Slideshare.Com PowerpointSlideshare.Com Powerpoint
Slideshare.Com Powerpoint
 
Slideshare Powerpoint presentation
Slideshare Powerpoint presentationSlideshare Powerpoint presentation
Slideshare Powerpoint presentation
 
Slideshare ppt
Slideshare pptSlideshare ppt
Slideshare ppt
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 

Semelhante a Introduction and course Details of Embedded Linux Platform Developer Training

Porting Android ABS 2011
Porting Android ABS 2011Porting Android ABS 2011
Porting Android ABS 2011Opersys inc.
 
EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...
EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...
EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...melbats
 
embedded-linux-120203.pdf
embedded-linux-120203.pdfembedded-linux-120203.pdf
embedded-linux-120203.pdftwtester
 
Android Internals at Linaro Connect Asia 2013
Android Internals at Linaro Connect Asia 2013Android Internals at Linaro Connect Asia 2013
Android Internals at Linaro Connect Asia 2013Opersys inc.
 
01 linux-quick-start
01 linux-quick-start01 linux-quick-start
01 linux-quick-startNguyen Vinh
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)RuggedBoardGroup
 
Embedded Linux primer
Embedded Linux primerEmbedded Linux primer
Embedded Linux primerDrew Fustini
 
Hardware Detection Tool
Hardware Detection ToolHardware Detection Tool
Hardware Detection ToolAnne Nicolas
 
2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...
2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...
2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...xiso
 
Embedding Linux On The Encore Simputer
Embedding Linux On The Encore SimputerEmbedding Linux On The Encore Simputer
Embedding Linux On The Encore SimputerSatpal Parmar
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth Pilli
 
Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018Mender.io
 
IoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesIoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesMender.io
 

Semelhante a Introduction and course Details of Embedded Linux Platform Developer Training (20)

Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Embedded Linux on ARM
 
Porting Android
Porting AndroidPorting Android
Porting Android
 
Porting Android ABS 2011
Porting Android ABS 2011Porting Android ABS 2011
Porting Android ABS 2011
 
EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...
EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...
EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...
 
Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Embedded Linux on ARM
 
embedded-linux-120203.pdf
embedded-linux-120203.pdfembedded-linux-120203.pdf
embedded-linux-120203.pdf
 
Android Internals at Linaro Connect Asia 2013
Android Internals at Linaro Connect Asia 2013Android Internals at Linaro Connect Asia 2013
Android Internals at Linaro Connect Asia 2013
 
01 linux-quick-start
01 linux-quick-start01 linux-quick-start
01 linux-quick-start
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
 
Embedded Linux primer
Embedded Linux primerEmbedded Linux primer
Embedded Linux primer
 
Android presentation
Android presentationAndroid presentation
Android presentation
 
Hardware Detection Tool
Hardware Detection ToolHardware Detection Tool
Hardware Detection Tool
 
Armbian linux
Armbian linuxArmbian linux
Armbian linux
 
2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...
2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...
2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...
 
Embedding Linux On The Encore Simputer
Embedding Linux On The Encore SimputerEmbedding Linux On The Encore Simputer
Embedding Linux On The Encore Simputer
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latest
 
Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018
 
TMS320DM8148 Embedded Linux
TMS320DM8148 Embedded LinuxTMS320DM8148 Embedded Linux
TMS320DM8148 Embedded Linux
 
IoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesIoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSes
 

Último

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
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
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
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
 
"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
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"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
 
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
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Último (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
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
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
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
 
"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
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"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
 
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
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Introduction and course Details of Embedded Linux Platform Developer Training

  • 1. Embedded Linux Platform Developer Course description Advanced training program on Embedded Linux platform development with comprehensive coverage on target board bring up, Embedded Linux porting, Linux kernel BSP and Embedded Linux Device Driver Development Course Highlights  Detailed analysis of modern embedded hardware architectures and board bring up strategies  In depth understanding of open source boot loader “uboot”  Hands on sessions on uboot customization for new targets  Hands on sessions on Embedded Linux porting strategies  Analysis and detailed walkthrough of Embedded Linux board support code  In depth coverage on embedded Linux driver stacks and driver implementations (I2C, SPI, GPIO)  Analysis and walkthrough of Embedded Linux video and audio driver stacks  Hands on sessions on multi-media application porting  Hands on sessions on various hardware targets including Mini 2440, Omap, Zed etc. 301, Prashanthiram Towers, Saradhi Studio Lane, Ameerpet, Hyderabad Ph:040-66100265 Email: info@techveda.org www.techveda.org
  • 2. Who should attend Developers looking to master or expecting assignments/projects in the following core areas:  Embedded Linux Porting  Linux BSP development  Uboot Customization  Embedded Linux Driver Development  Android System Development OR  GNU C programmers looking to master Embedded Linux, BSP and Embedded Device Driver Development  Experienced developers looking for a refresher course on Linux BSP and Embedded Device Driver Development. Course Prerequisites  Good programming skills using GNU C  Application programming experience on Linux platform  Linux kernel programming basics OR  Participants who have undergone “Linux Kernel and Driver Developer” course from Veda Solutions Detailed Course Contents Part 1: Embedded Hardware 1. Understanding Embedded Systems ● Embedded systems landscape ● Attributes of Embedded Systems ● Trends in Embedded technology ● Embedded Platform Architecture ● Embedded Processor Architecture ● Microcontroller, microprocessors and SOC 2. Understanding Embedded Boot sequence ● Boot technology considerations ● Role of Bootstrap Processor ● Boot components ● Hardware Power sequences ● RESET vectors ● CPU initialization ● Device Initialization ● Boot device selection 3. Understanding ARM Architecture ● Introduction to ARM architecture ● Processor modes ● ARM Registers ● ARM Endian Support ● ARM Instruction Set ● Addressing modes ● The System Control Processor 4. Embedded Target boards (ARM Soc based) ● Understanding Target board schematic ● Interpreting Target board manuals/data sheets ● Identifying key components on Target board ● Identifying various Device interfaces ● Understanding Memory maps
  • 3. Part 2: Platform BSP 1. Embedded Board Support Packages ● Introduction to BSP ● BSP design considerations ● Various stages in Board Support Code 2. Working with components of BSP ● Introduction to BootROM ● BootROM design ● BootROM design considerations ● BootROM code ● BootROM executions trace ● Memory organization ● Introduction to FSBL ● FSBL functionalities ● FSBL design standards ● Getting hands on with FSBL (case study) ● Build & Running FSBL ● FSBL Call Graph ● Introduction to SSBL ● Types of SSBL ● SSBL as primary bootloader 3. Uboot ● Introduction to Uboot ● Key Features ● Supported Platforms & Processors ● Supported Boot modes 4. Uboot source walk-through ● Uboot source tree layout ● Memory organization ● Memory relocation ● Stack setup ● Important Misc. 5. Uboot build and setup ● Build structure ● Building U-Boot for emulator ● Building U-Boot for physical target ● Creating flash partitions ● Environment variables ● Commands ● Uboot call graph 6. Customizing Uboot for new targets ● Uboot source tree in detail ● Porting/upgrading u-boot ● Coding guidelines ● Customizing configuration files ● Target specific modifications ● Customizing/adding drivers ● Customizing/adding new commands ● Uboot scripts ● Hosting Apps on Uboot Part 3: Embedded Linux & Application Porting 1. Embedded Linux overview ● Linux as an Embedded Operating system ● Linux and open source Ecosystem for Embedded Devices ● Linux kernel facilities for Embedded Devices ● Understanding Linux system Boot Process ● Introduction to Linux system components 2. Cross-compiler tool-chains ● Need for cross tool-chain ● Different tool-chains’ build procedures ● Using pre-build cross tool-chain ● Building cross tool-chain using cross tool-NG ● Using Scratch box
  • 4. 3. Building kernel Image ● Kernel Source tree organization ● Introduction to kernel Build system ● Understanding Kconfig and Make scripts ● Kernel configuration for target ● Cross compiling kernel source ● Linker scripts ● Build analysis ● Kernel parameters 4. Upgrading/Porting kernel to specific target ● Prerequisites ● Generic procedure ● Kconfig language and Makefile ● Module by module porting 5. Linux File Systems for Embedded Storage ● Need for flash file systems ● Linux File system support for Flash memory ● Understanding jffs2 file system ● Enabling kernel support for jffs2 ● Understanding UBI file system ● Enabling kernel support for UBIFS ● Understanding Cramfs ● Enabling kernel support for Cramfs ● Understanding SquashFS ● Kernel support for SquashFS ● Understanding YAFFS2 ● Kernel support for YAFFS2 6. Root File system ● Understanding Linux Init process ● Need of root file system ● Understanding Unix File system hierarchy ● Choosing root file system layout ● Startup scripts ● Choosing system binaries and utilities ● Cross-compiling and hosting Apps ● Populating device nodes ● Need for log daemons ● Setting up log daemons ● Building fs image 7. Deploying & Testing Linux system on target ● Flashing U-boot to target ● Booting Linux kernel from DDR ● Flashing kernel image to target ● Deploying RFS through initrd(ramdisk) ● Deploying RFS through initramfs ● Deploying RFS through NFS ● Flashing root file system to target ● Kernel boot from NOR flash ● Kernel boot from NAND flashes ● Kernel boot from SD/MMC ● Kernel boot from Serial flashes 8. Network services and utilities ● nfs ● Telnet ● Ssh ● Dhcp ● Snmp ● http 9. Graphical interface frameworks ● X.org ● Fltk ● Nano-x ● Gtk ● WxEmbedded ● Qt for Embedded 10. Porting multimedia Apps ● Audio Apps ● Video Apps ● Direct media layer ● DirectFB ● Video for Linux ● Digital video broadcasting
  • 5. Part 4: Embedded Linux BSP 1. Linux BSP basics ● Linux BSP components ● Platform Devices ● Understanding timers ● Understanding interrupts ● Understanding clocks ● Understanding power management ● Understanding memory map ● Understanding interrupts ● Understanding GPIO 2. Hardware Clocks ● Introduction to clocks ● Clock types and significance ● Linux clock management framework ● Using clock interfaces in drivers 3. Power Management ● Introduction to power management ● Device power management and significance ● Linux power management framework ● Using power API’s in drivers 4. Device Tree (FDT) ● Introduction to Device tree ● Device Tree Script (dts) ● Device Tree compiler(dtc) ● Device Tree Blob (dtb) ● Booting Linux with device tree ● Device tree and drivers Part 5: Embedded Linux Device Drivers 1. Linux device driver model ● Introduction to device driver model ● Design objectives ● Hotplug drivers ● Sysfs filesystem ● Procfs filesystem ● Debugfs filesystem 2. Linux device drivers ● Overview of Linux device drivers ● Categories of Linux device drivers 3. Handling Platform devices ● Linux platform driver stack ● Platform devices Enumeration ● Hands on with platform drivers 4. RTC ● Basic RTC operation ● Linux RTC subsystem ● Implementing RTC driver 5. Watchdog ● Basic watchdog operation ● Linux watchdog subsystem ● Implementing watchdog driver 6. UART controller ● UART introduction ● Linux UART stack ● Implementing UART driver 7. Console Devices ● Introduction to console ● Need for console dev ● Writing Console Driver 8. Handling i2c interface ● Introduction to i2c ● i2c protocol ● Linux i2c driver stack ● i2c adapter driver ● i2c bus manager ● i2c client drivers
  • 6. 9. Handling SPI interface ● Introduction to SPI Bus ● SPI protocols ● Linux SPI subsystem ● SPI drivers 10. Handling GPIO ● Introduction to GPIO ● Linux GPIO management ● Accessing GPIO interfaces 11. Handling Input devices ● Introduction to input devices ● Linux Input subsystem ● Implementing input drivers (Keypad, mouse, Touch screen) 12. USB ● USB protocol introduction ● Linux USB subsystem ● Linux USB OTG subsystem ● Implementing USB driver for Mass storage protocol 13. SD/MMC ● SD/MMC protocol introduction ● Linux SD/MMC subsystem ● Implementing SD/MMC driver 14. NAND ● Introduction to MTD devices ● Linux MTD Subsystem ● NAND device introduction ● Implementing NAND driver 15. Ethernet ● Network protocols introduction ● Introduction to Ethernet ● Implementing Ethernet driver 16. Audio Devices ● Basic audio operation ● Audio codec’s introduction ● Linux Audio Subsystem ● Implementing audio drivers 17. Display/LCD ● Basic display operation ● Linux Display Subsystem ● Implementing display drivers 18. Frame buffer and Video Devices ● Introduction to Linux Video Subsystem ● Analysis of Frame Buffer Driver Part 6: Debugging Tools 1. User space tools ● GDB, gdb server ● Valgrind 2. Kernel space tools ● Printk ● Kernel OOPS ● KDB ● KGDB 3. Boot time measurement tools ● Grabserial ● Bootchart
  • 7. Part 6: Open Source Development 1. Open Source Contribution ● Importance/Benefits of open source contributions ● Open Source project management Practices ● Development tools required 2. Source control tools (GIT) ● Overview of GIT ● Useful git commands ● Open source projects hosted under Git 3. Using GIT ● How to clone an existing git tree ● How to create your own working branch in existing git tree ● How to create patches against the reference tree ● Review of few useful commands 4. Merging GIT trees ● How to upgrade your source tree in sync with mainline tree version ● How GIT tree merging works ● How to merge the mainline tree changes into your internal tree ● How to merge BSP into mainline 5. Contributing patches ● How to send your own patches to mainline GIT tree ● Precautions, while sending patches to mainline ● Other important open source contribution tips 301, Prashanthiram Towers, Saradhi Studio Lane, Ameerpet, Hyderabad Ph:040-66100265 Email: info@techveda.org www.techveda.org