Teaching Microprocessor Systems
Design Using a SoC and Embedded Linux
Platform
Yann-Hang Lee and Aung Oo
Computer Science and Engineering Department
Arizona State University
[email protected]
Real-time Embedded System Lab, ASU
WCAE_05_ 1
Microprocessor System Course
 A typical Computer Engineering course (core)
 Organization of microprocessor systems (8 or 16-bit
microcontrollers, such as 8051, HC11, HC12, etc.)
 Input/Output interfaces and peripherals
 Programmable timer
 Serial (UART) and parallel ports
 Data acquisition (A/D and D/A)
 ROM monitor to provide a simple execution and
debugging environment
 Assembly programming
 Single execution thread with ISRs
Real-time Embedded System Lab, ASU
WCAE_05_ 2
Emerging Embedded Systems
5
ARM920T
JTAG
ARM9TDMI
4
UART1
8
UART2
Bootstr
ap
Bus
I Cache D Cache Arbiter
1
I/O pads
RTC
2
 Abundant I/O interfaces:
 human interfaces, multimedia,
networking, and inter-IC/device
communication.
MMU
INTC
Timer
WatchDog
PWM
25
LCDC
92
EIM &
SDRAMC
AIPI#1
AHB
AIPI#2
USBd
7
MS/SD
6
A/D
20
BTA
13
CSPI
SSI/I2S
I2C
DMA
(11 chnl)
CSI
Bus
CTL
eSRAM
(128KB
)
MM
A
I/O pads
 SoC-based platforms
 one or more processor cores
 memory-address mapped I/O IP
blocks
 Intel PXA, Motorola Dragonball,
TI OMAP
5
6
2
14
GPIO
SIM
DPLL
x2
6
5
Real-time Embedded System Lab, ASU
WCAE_05_ 3
Emerging Embedded Systems
 I/O programming
using high-level
languages
SDRAM
F lash m em ory
(for booting)
 For portability,
modularity, and
readability.
 Appropriate use of
programming
languages and
software structures
M ouse
LC D
(U S B interface)
(serial
interface)
K eyboard
(P S 2 serial
D ragonball
MX1
T ouch panel
D evelop m ent board
C M O S video
interface)
G P IO to
digital/analog
converter
 Operating systems on
sensor
S erial E P R O M
(S P I interface)
S erial E P R O M
(I2C interface)
target boards
Real-time Embedded System Lab, ASU
WCAE_05_ 4
A New Course on Microprocessor Systems
 Course Objectives: to develop
 an understanding for using a CPU core in system-level design.
 the ability to integrate CPU core with various interface units.
 the skills for programming and debugging I/O operations to manage
peripherals for embedded applications.
 Major topics covered:
 Introduction and review of ISA and assembly language (4 lectures)
 C programming for embedded systems (2 lectures)
 Interrupts and I/O multiplexing (2 lectures)
 Parallel I/O interface and signal handshaking (1 lecture)
 Timers and counters (2 lectures)
 Serial communication: UART, SPI, and I2C (4 lectures)
 LCD interfaces (3 lectures)
 Transducers and sensors, touch panels, A/D-D/A converters (3
lectures)
 Memory devices, SRAM, SDRAM, and flash memory(3 lectures)
 Buses, access arbitration, timing, and bus protocols (2 lectures)
Real-time Embedded System Lab, ASU
WCAE_05_ 5
Development Platforms
 Hardware
 Freescale’s MXLADS (with Dragonball MXL processor)
 Peripherals:
 serial mouse, LCD, magnetic card reader, buzzer
 EEPROM, digital potentiometer, ADC
Serial port
Power Supply
Multi-ICE probe
BlueTooth RF
I/F
Memory
Extension
slot
LCD/Touch
Panel
Camera
I/F
Real-time Embedded System Lab, ASU
WCAE_05_ 6
Development Platforms
 Software
 ARM SDT 2.02u (assembler, compiler, and ARMulator)
 Linux tool chain from MontaVista
Host PC
workstation
ARM elf
GDB
gcc
debugger
crosscompiler
MontaVista IDE
Applications
GDB Server
cygwin
Embedded Linux
Windows
DB MX1 ADS board
support package
Target
MXLADS
Real-time Embedded System Lab, ASU
WCAE_05_ 7
Development Projects
 Introduction project
 programming environment on a target development board.
 Mixed C/C++ and assembly programming, calling conversion,
instruction count measurement
 Software to manage interfaces and peripherals
 IO space as a part of kernel space
 programs must run as kernel tasks
 Develop loadable kernel modules as device
drivers
 Invoked by device file calls (open, close, read, write, and
ioctl)
 Students don’t have much experience with Linux kernel or
system programming
Real-time Embedded System Lab, ASU
WCAE_05_ 8
A Pseudo Device Driver
 To exercise kernel I/O address space and interrupts
R e g iste r sig n a l h a n d le r w ith
ta sk stru ctu re
T a sk stru ctu re fo r
th e u se r p ro ce ss
D e vice d rive r
m o d u le w ith
re g iste re d
IR Q h a n d le rs
A p p lica tio n co d e
R e g iste r u se r p ro ce ss
fo r sig n a lin g a n d
re a d /w rite to IO ’s
….
sig h a n d le r
sig m a sk
sig p e n d in g
….
m e m o ry m a p p e d IO ’s
b u ffe rs
C o re
K e rn e l
S ig n a l H a n d le r(s)
A syn ch ro n o u s
sig n a ls
IR Q s
U ser Space
in te rru p ts
K e rn e l S p a c e
Real-time Embedded System Lab, ASU
WCAE_05_ 9
Sample Projects
 Midi file player
 a driver to control PWM as a tone generator
 a blocking call which returns once the play duration is over
(interruptible_sleep_on and timer interrupt)
 a main program to parse an input midi file and to invoke the
driver for each note (frequency and duration)
 Magnetic card reader
 a card reader driver (bit streams input from general-purpose
IO pins)
 the ISR-driven approach for block data transfer (bit banging)
and signal handlers
 a driver for serial port (ioctl to configure UART)
 a main program to read card information and send to serial
port
Real-time Embedded System Lab, ASU
WCAE_05_ 10
Evaluation
 Survey at the end of Fall 2004
 Summary in 5 categories
C Programming skill improved
Strongly
Disagree
Use Linux/Development Tools
effectively
Strongly
Disagree
Strongly
Disagree
Strongly
Agree
Disagree
Understand Architecture/Schematics
Neutral
Disagree
Disagree
Strongly
Agree
Strongly
Agree
Neutral
Neutral
Agree
Agree
Can write drivers to manage interfaces
and peripherals
Strongly
Disagree
Disagree
Agree
Motivated to work in embedded
Systems
Strongly
Disagree
Strongly
Agree
Disagree
Agree
Neutral
Strongly
Agree
Agree
Neutral
Real-time Embedded System Lab, ASU
WCAE_05_ 11
Conclusion
 Re-tool the existing microprocessor system
course
 SoC platform
 High-level language programming
 IO management as a part of operating system
 Didn’t abandon assembly language
 to explain processor execution model
 to interact with programs of multiple languages
 to determine the tradeoffs of selecting a proper language
 No textbook, manuals and data sheets are more
than 2000 pages
Real-time Embedded System Lab, ASU
WCAE_05_ 12
Acknowledgement
 NSF EIA program
 Motorola Dragonball University Program
 Embedded System Consortium (ASU, Intel, and
Motorola)
Real-time Embedded System Lab, ASU
WCAE_05_ 13
Descargar

Chapter 1 -- Introduction