Emertxe's presentation in Open Source India 2014 about an innovative self-learning kit we have created. Linux device drivers is often perceived as a difficult topic, that prevents students, enthusiasts and professionals from learning it. This presentation talks about various features (Board, SDK and sample code) of the kit.
4. About Us
Emertxe is India’s one of the top IT finishing schools & self learning kits
provider. Our primary focus is on Embedded with diversification focus on IT
applications.
Our IT finishing school providers training programs for corporate,
professionals and students in the following areas:
o Embedded Systems (Beginners)
o Advanced Linux workshops (Professionals)
o IT Applications (Java, Android, Oracle)
Our product division works on IoT based solutions with major focus in
Embedded aspect by focusing on the following areas:
o Hardware design
o Product engineering, integration and solutions
o Linux porting and tuning
o Embedded application development
5. Our vision
Two fold “Vision”
Education
Contribute to “industry-academia”
gap
Solutions
Build solutions to solve
“common-problems”
“Make life easier”
7. Motivation
Diverse Hardware
(Customisations, Multiple-vendor,
Optimisation)
Lack of resources
(Formal courses, documentation, support)
Setup and installation
(SDKs, tool-chain, configuration)
Too geeky!
(Fear of getting bullied)
8. Practical challenges
Hard to learn
(Professionals,
Enthusiasts,
Students)
No special
devices
(Most of them
are fits-for-all)
Enriched
learning
(Character,
Block, multi-peripherals)
Higher entry
barrier
(Giving up!)
9. Some questions!
Which driver should I work on to begin with?
Can I see some sample drivers?
I do not have specific hardware, where I can find one?
Can I write char, block drivers. What about interrupts?
I would like to implement USB, SCSI, Serial and Audio drivers. How to?
Well a lot of can's, but we have something for you!
11. Overview of LDD kit
• Dedicated board
• Rich peripheral support
• On-board DFU interface for upgrading
• Can act as a normal MC device as well
Hardware
• Currently supports Ubuntu distributions
• Completely based on Open source
• Firmware stack based on LUFA
• AVR-GCC compiler
SDK
• Well documented setup & quick start guide
• Sample device driver code
• Test harness for validation and debugging
Get “hands-dirty”
15. Block diagram
USB Host Controller
Host Controller
Driver
USB Core
Device Driver-2
System Call
Interface
User Application
Kernel
LDD kit
Users
Device Driver-1 Device Driver-3
16. What you can create?
RS232 interface (i/p and o/p)
Interrupt handling (switches)
I/O control
Timers (LED control)
Synchronization mechanisms
SD/MMC Card driver
SCSI Implementation
USB Protocol
SCSI over USB
Simple drivers for LED, SSD, LCD
USB to Serial converter
Mass storage driver
USB Audio
Input drivers
Character
Block
USB
17. Summary
Learning Linux device driver development is challenging
Our LDD kit tries to solve challenges by:
Having a dedicated hardware with very rich in peripherals
Larger problem of software is resolved by well documented &
supported SDK
Having sample source code & self-learning stuff
By having whole ecosystem built with open source
With this we believe:
To make the learning easier
Contribute and make a difference to students, professionals and
enthusiasts
Provide practical real-time learning experience