2. Contents
2
Introduction to Embedded System
Hardware Board Design
Fundamental of Semiconductor
Digital and Analog
Components Identification
Board Design
Board Bring up and Power up
Layout Design Techniques
Hardware Debugging
Device Driver and Software
Essential Components of Embedded Linux
Booting Process
Boot-loaders
Linux Porting
Fundamental of Device Drivers
Driver Architecture of Peripherals
Driver Debugging Techniques
3. Introduction to Embedded System
3
What is Embedded System
Embedded Linux and Featured Hardware
Customized Linux box tailored to suit the
Product Requirement
Architecture and SOC support in Linux
What is SOC
RISC Vs CISC
Example SOC 6467
5. Fundamental of Semiconductor
5
A semiconductor is a material
which has electrical conductivity to
a degree between that of a
conductor (such as copper) and that
of an insulator (such as glass).
Semiconductors are the
foundation of modern electronics.
PN Junction Diode
Transistors
Light-emitting diodes (LEDs)
Solar cells
6. Digital and Analog
6
Analog Electronics
• Analog signal is a continuous signal which
represents physical measurements.
• Human voice in air, analog electronic
devices.
• OPAMP, DAC, RF, Analog Filters,
Converters, Linear Circuits
Digital Electronics
• Digital signals are discrete time signals
generated by digital modulation.
• Computers, CDs, DVDs, and other digital
electronic devices.
• Gates, Flip Flop, Sequential and
combinational circuits,
7. Components Identification
7
Active Components:
Those devices or components which
produce energy in the form of Voltage or
Current are called as Active Components
Those devices or components which
required external source to their
operation is called Active Components.
For Example: Diodes Transistors SCR etc…
Passive Components:
Those devices or components which
store or maintain Energy in the form of
Voltage or Current are known as Passive
Components
Those devices or components which do
not required external source to their
operation is called Passive Components.
9. Board Bring up and Power up
9
Board Power up Activities
Clock Check
DDR Bring up activity
Ethernet Bring up activity
LCD Bring up activity
WiFi Bring up activity
SD Card Bring up activity
Other peripherals Bring UP
10. Layout Design Techniques
10
Single Sided PCB
Multi Layer PCB
Package Selection
Power Plane
Ground Plane
DRC
Copper Pouring
PCB Antenna Design
Signal Integrity
Delay Interactive Tuning
15. Booting Process (Cont.)
15
We flash a fresh board and it did not work!
Not able to flash a fresh board
Kernel stuck while booting
Not able to mount file system
To develop board bring-up utilities
To develop low level Diagnostic utilities – POST
Why it is required to understand booting
process?
16. Boot-loaders
16
U-Boot (Universal Bootloader) is an open source, primary boot
loader used in embedded devices. It is available for a number of
different computer architectures, including 68k, ARM, AVR32,
Blackfin, MicroBlaze, MIPS, Nios, PPC and x86.
Raw Boot-loader
Primary Boot-loader
Secondary Boot-loader
Starting of U-boot – TEXT_BASE
CPU and Board Initializations
Main loop
U-boot Command “bootm”
17. Boot-loaders (Cont.)
17
Why boot-loader is required? Why U-boot?
Initializing the hardware, especially the memory controller
Providing boot parameters for the Linux kernel
Starting the Linux kernel
Why U-boot?
U-Boot is a GPL'ed cross-platform boot loader
CPUs including PowerPC, ARM, XScale, MIPS, Coldfire, NIOS,
Microblaze, and x86
Right balance between a rich feature set and a small binary
footprint