1 / 13

Teaching Microprocessor Systems Design Using a SoC and Embedded Linux Platform

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)

rocco
Download Presentation

Teaching Microprocessor Systems Design Using a SoC and Embedded Linux Platform

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 Real-time Embedded System Lab, ASU

  2. 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

  3. SoC-based platforms one or more processor cores memory-address mapped I/O IP blocks Intel PXA, Motorola Dragonball, TI OMAP Abundant I/O interfaces: human interfaces, multimedia, networking, and inter-IC/device communication. 5 JTAG ARM920T 7 USBd ARM9TDMI 4 6 Bootstrap MS/SD UART1 20 8 A/D UART2 Bus Arbiter I Cache D Cache 13 BTA RTC INTC MMU 2 5 CSPI I/O pads Timer I/O pads 6 AHB SSI/I2S WatchDog AIPI#1 AIPI#2 1 2 I2C PWM 14 DMA (11 chnl) CSI 25 LCDC GPIO Bus CTL MMA 6 SIM 92 EIM & SDRAMC 5 DPLLx2 eSRAM (128KB) Emerging Embedded Systems Real-time Embedded System Lab, ASU

  4. 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 Real-time Embedded System Lab, ASU

  5. 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

  6. Serial port Power Supply Multi-ICE probe BlueTooth RF I/F Memory Extension slot LCD/Touch Panel Camera I/F Development Platforms • Hardware • Freescale’s MXLADS (with Dragonball MXL processor) • Peripherals: • serial mouse, LCD, magnetic card reader, buzzer • EEPROM, digital potentiometer, ADC Real-time Embedded System Lab, ASU

  7. ARM elf gcc cross-compiler GDB debugger Applications GDB Server MontaVista IDE Host PC workstation Target MXLADS Embedded Linux cygwin DB MX1 ADS board support package Windows Development Platforms • Software • ARM SDT 2.02u (assembler, compiler, and ARMulator) • Linux tool chain from MontaVista Real-time Embedded System Lab, ASU

  8. 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

  9. A Pseudo Device Driver • To exercise kernel I/O address space and interrupts Real-time Embedded System Lab, ASU

  10. 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

  11. Evaluation • Survey at the end of Fall 2004 • Summary in 5 categories Real-time Embedded System Lab, ASU

  12. 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

  13. Acknowledgement • NSF EIA program • Motorola Dragonball University Program • Embedded System Consortium (ASU, Intel, and Motorola) Real-time Embedded System Lab, ASU

More Related