Teaching Microprocessor Systems Design Using a SoC and Embedded Linux Platform

Yüklə 0,83 Mb.
ölçüsü0,83 Mb.

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
    • yhlee@asu.edu

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

  • ROM monitor to provide a simple execution and debugging environment

  • Assembly programming

    • Single execution thread with ISRs

Emerging Embedded Systems

  • SoC-based platforms

    • one or more processor cores
    • memory-address mapped I/O IP blocks
    • Intel PXA, Motorola Dragonball, TI OMAP

Emerging Embedded Systems

  • I/O programming using high-level languages

    • For portability, modularity, and readability.
    • Appropriate use of programming languages and software structures
  • Operating systems on target boards

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)

Development Platforms

  • Hardware

    • Freescale’s MXLADS (with Dragonball MXL processor)
    • Peripherals:

Development Platforms

  • Software

    • ARM SDT 2.02u (assembler, compiler, and ARMulator)
    • Linux tool chain from MontaVista

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

A Pseudo Device Driver

  • To exercise kernel I/O address space and interrupts

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)
    • a driver for serial port (ioctl to configure UART)
    • a main program to read card information and send to serial port


  • Survey at the end of Fall 2004

  • Summary in 5 categories


  • 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


  • NSF EIA program

  • Motorola Dragonball University Program

  • Embedded System Consortium (ASU, Intel, and Motorola)

Yüklə 0,83 Mb.

Dostları ilə paylaş:

Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2020
rəhbərliyinə müraciət

    Ana səhifə