CSE 325 Embedded Microprocessor System Design Fall 2010 Computer Science & Engineering Department Arizona State University Tempe, AZ 85287 Dr. Yann-Hang Lee yhlee@asu.edu Brickyard 552 (480) 727-7507 7/23 Course Syllabus (1) To focus in the integration of hardware modules to construct embedded systems, the programming models and characteristics of various input/out interfaces. Use either assembly language or any high-level languages Course Goals: Develop an understanding for using a CPU core as a component in system-level design. Ability to integrate CPU core with various interface units in embedded controllers. Skills for programming and debugging I/O operations to manage peripherals for embedded applications. Pre-requisites: Assembly language, microprocessor organization, and experience of C programming language set 1 -- 1 Course Syllabus (2) Major topics covered: Introduction and review of instruction set and assembly language programming (3 lectures) Interfacing between C and assembly languages (2 lectures) Coldfire processor and IO multiplexing (2 lecture) Interrupt and exception (2 lectures) Timers and counters (2 lectures) Serial communication: UART, SPI, and I2C (5 lectures) Parallel I/O interface and signal handshaking (2 lectures) Keyboards and LCD (3 lectures) A/D-D/A converters (2 lectures) Memory devices, SRAM, DRAM, flash memory, and SDRAM controller (4 lectures) set 1 -- 2 Course Syllabus (3) Office hours: 3:45pm – 5:30pm, Monday and Wednesday Evaluation Midterm exams (20%) (during the class periods on March 10) Lab assignments (50%) Final exam (30%) (during the final exam period scheduled by the University, i.e. 9:50-11:40am, Dec. 15) You can bring in a set of manuals (to be specified), calculator, and a 3x5 note card to the exams. set 1 -- 3 Target Environment Freescale Project Board Student Learning Kit and Coldfire 5211SLK Development Software CodeWarrior IDE (editor, compiler, assembler, debugger, etc.) set 1 -- 4 Embedded Systems Computer (general) PC on desk top Windows, email, instant message, Microsoft word, power point, games computation and communication Embedded Controller Embedded system the software and hardware component that is an essential part of an application system Control and computation Reference input sensor Plant actuator set 1 -- 5 Embedded Systems -- Examples Applications of Embedded Systems They are everywhere How many CPUs in your PC The average new car has a dozen microprocessors in it. The Mercedes S-class has 65. How many microprocessors in average household microwave oven washer, dryer, dishwasher garage opener HDTV set 1 -- 7 Hardware Platform Organization buses to connect components – PCI, ISA, PC104+ memory Package standard chips on PC processor + ASIC SOC I/O I/O CPU (microprocessor) I/O Timer I/O set 1 -- 8 Embedded Processors Must be optimized for applications performance, speed power I/O peripherals Processor cores + peripheral interfaces x86 processor + PCI bus SoC (system on a chip) architecture integrate CPU core and peripheral interfaces on one chip with some internal RAM and external boot memory extendable with an external bus HC11 micro-controller SoC platforms configurable IP blocks and software support Applications: handheld computing, cellular phone, infotainment, automobile, etc. set 1 -- 9 Simple SW Structure for Embedded Systems To write the control software (program) for a smart washer initialization initialize read keypad or control knob read sensors external trigger? take an action System current state state transition diagram external triggers via polling or ISR ISR: to set/clear events Threads for concurrent operations Take actions Change system state set 1 -- 10 Software Structure of Periodic Tasks Invoke computation periodically Adjust pressure valves at a 20 Hz rate Task initialization (set up periodic timer interrupts) Task initialization start_time=time( ) wait for the interrupt event computation computation Sleep(period ( time( ) -start_time) ) set 1 -- 11 Embedded System Development Development process integrate HW components Requirements develop programs Test Implementation (HW and SW) Test/verification Development environment Development workstation Embedded systems (Workstation, embedded system development tools) Simulated signal source (workstation, interface cards, & test harness) Ethernet set 1 -- 12 Development Environment Use the host to edit, compile, and build application programs configure the target Target At the target embedded system, use tools to load, execute, debug, and monitor (performance and timing) CrossWind WindSh Tornado Tools Host Target Browser WindView Target Server X.c X.cpp X.s Makefile GNU X.o X.out VxWorks RTOS & Target agent WDB Agent Applications (text, data) vxWorks set 1 -- 13