Introduction to Embedded Systems

Size: px
Start display at page:

Download "Introduction to Embedded Systems"

Transcription

1 Introduction to Embedded Systems Sanjit A. Seshia UC Berkeley EECS 149/249A Fall : E. A. Lee, A. L. Sangiovanni-Vincentelli, S. A. Seshia. All rights reserved. Chapter 9: Memory Architectures Role of Memory in Embedded Systems Traditional roles: Storage and Communication for Programs Communication with Sensors and Actuators Often much more constrained than in general-purpose computing Size, power, reliability, etc. Can be important for programmers to understand these constraints EECS 149/249A, UC Berkeley: 2 1

2 Memory Architecture: Issues Types of memory volatile vs. non-volatile, SRAM vs. DRAM Memory maps Harvard architecture Memory-mapped I/O Memory organization statically allocated stacks heaps (allocation, fragmentation, garbage collection) The memory model of C Memory hierarchies scratchpads, caches, virtual memory) Memory protection segmented spaces These issues loom larger in embedded systems than in general-purpose computing. EECS 149/249A, UC Berkeley: 3 Non-Volatile Memory Preserves contents when power is off EPROM: erasable programmable read only memory Invented by Dov Frohman of Intel in 1971 Erase by exposing the chip to strong UV light EEPROM: electrically erasable programmable read-only memory Invented by George Perlegos at Intel in 1978 Flash memory Invented by Dr. Fujio Masuoka at Toshiba around 1980 Erased a block at a time Limited number of program/erase cycles (~ 100,000) Controllers can get quite complex Disk drives Not as well suited for embedded systems USB Drive Images from the Wikimedia EECS Commons 149/249A, UC Berkeley: 4 2

3 Volatile Memory Loses contents when power is off. SRAM: static random-access memory Fast, deterministic access time But more power hungry and less dense than DRAM Used for caches, scratchpads, and small embedded memories DRAM: dynamic random-access memory Slower than SRAM Access time depends on the sequence of addresses Denser than SRAM (higher capacity) Requires periodic refresh (typically every 64msec) Typically used for main memory Boot loader On power up, transfers data from non-volatile to volatile memory. EECS 149/249A, UC Berkeley: 5 Example: Die of a STM32F103VGT6 ARM Cortex-M3 microcontroller with 1 megabyte flash memory by STMicroelectronics. Image from Wikimedia Commons EECS 149/249A, UC Berkeley: 6 3

4 Memory Map of an ARM Cortex TM -M3 architecture Defines the mapping of addresses to physical memory. Note that this does not define how much physical memory there is! EECS 149/249A, UC Berkeley: 7 Another Example: Atmel AVR The AVR is an 8-bit single chip microcontroller first developed by Atmel in The AVR was one of the first microcontroller families to use on-chip flash memory for program storage. It has a modified Harvard architecture. 1 AVR was conceived by two students at the Norwegian Institute of Technology (NTH) Alf-Egil Bogen and Vegard Wollan. 1 A Harvard architecture uses separate memory spaces for program and data. It originated with the Harvard Mark I relay-based computer (used during World War II), which stored the program on punched tape (24 bits wide) and the data in electro-mechanical counters. EECS 149/249A, UC Berkeley: 8 4

5 A Use of AVR: Arduino Arduino is a family of open-source hardware boards built around either 8-bit AVR processors or 32-bit ARM processors. Example: Atmel AVR Atmega pin DIP on an Arduino Duemilanove board Image from Wikimedia Commons EECS 149/249A, UC Berkeley: 9 Another example use of an AVR processor The irobot Create Command Module Atmel ATMega 168 Microcontroller EECS 149/249A, UC Berkeley: 10 5

6 ATMega 168: An 8-bit microcontroller with 16-bit addresses AVR microcontroller architecture used in irobot command module. Why is it called an 8-bit microcontroller? EECS 149/249A, UC Berkeley: 11 ATMega168 Memory Architecture An 8-bit microcontroller with 16-bit addresses irobot command module has 16K bytes flash memory (14,336 available for the user program. Includes interrupt vectors and boot loader.) 1 k bytes RAM Source: ATmega168 Reference Manual The 8-bit data is why this is called an 8-bit microcontroller. Additional I/O on the command module: Two 8-bit timer/counters One 16-bit timer/counter 6 PWM channels 8-channel, 10-bit ADC One serial UART 2-wire serial interface EECS 149/249A, UC Berkeley: 12 6

7 Questions to test your understanding 1. What is the difference between an 8-bit microcontroller and a 32-bit microcontroller? 2. Why use volatile memory? Why not always use nonvolatile memory? EECS 149/249A, UC Berkeley: 13 Memory Organization for Programs Statically-allocated memory Compiler chooses the address at which to store a variable. Stack Dynamically allocated memory with a Last-in, First-out (LIFO) strategy Heap Dynamically allocated memory EECS 149/249A, UC Berkeley: 14 7

8 Statically-Allocated Memory in C char x; int main(void) { Compiler chooses what address to use for x, and the variable is accessible across procedures. The variable s lifetime is the total duration of the program execution. EECS 149/249A, UC Berkeley: 15 Statically-Allocated Memory with Limited Scope void foo(void) { static char x; Compiler chooses what address to use for x, but the variable is meant to be accessible only in foo(). The variable s lifetime is the total duration of the program execution (values persist across calls to foo()). EECS 149/249A, UC Berkeley: 16 8

9 Variables on the Stack ( automatic variables ) void foo(void) { char x; stack As nested procedures get called, the stack pointer moves to lower memory addresses. When these procedures, return, the pointer moves up. When the procedure is called, x is assigned an address on the stack (by decrementing the stack pointer). When the procedure returns, the memory is freed (by incrementing the stack pointer). The variable persists only for the duration of the call to foo(). EECS 149/249A, UC Berkeley: 17 Question 1 What is meant by the following C code: char x; void foo(void) { EECS 149/249A, UC Berkeley: 18 9

10 Answer 1 What is meant by the following C code: char x; void foo(void) { An 8-bit quantity (hex 0x20) is stored at an address in statically allocated memory in internal RAM determined by the compiler. EECS 149/249A, UC Berkeley: 19 Question 2 What is meant by the following C code: char *x; void foo(void) { EECS 149/249A, UC Berkeley: 20 10

11 Answer 2 What is meant by the following C code: char *x; void foo(void) { An 16-bit quantity (hex 0x0020) is stored at an address in statically allocated memory in internal RAM determined by the compiler. EECS 149/249A, UC Berkeley: 21 Question 3 What is meant by the following C code: char *x, y; void foo(void) { y = *x; EECS 149/249A, UC Berkeley: 22 11

12 Answer 3 What is meant by the following C code: char *x, y; void foo(void) { y = *x; The 8-bit quantity in the I/O register at location 0x20 is loaded into y, which is at a location in Internal SRAM determined by the compiler. EECS 149/249A, UC Berkeley: 23 Question 4 char foo() { char *x, y; y = *x; return y; char z; int main(void) { z = foo(); Where are x, y, z in memory? EECS 149/249A, UC Berkeley: 24 12

13 Answer 4 char foo() { char *x, y; y = *x; return y; char z; int main(void) { z = foo(); x occupies 2 bytes on the stack, y occupies 1 byte on the stack, and z occupies 1 byte in static memory. EECS 149/249A, UC Berkeley: 25 Question 5 What is meant by the following C code: void foo(void) { char *x, y; x = &y; * EECS 149/249A, UC Berkeley: 26 13

14 Answer 5 What is meant by the following C code: void foo(void) { char *x, y; x = &y; * 16 bits for x and 8 bits for y are allocated on the stack, then x is loaded with the address of y, and then y is loaded with the 8-bit quantity 0x20. EECS 149/249A, UC Berkeley: 27 Question 6 What goes into z in the following program: char foo() { char y; uint16_t x; y = *x; return y; char z; int main(void) { z = foo(); EECS 149/249A, UC Berkeley: 28 14

15 Answer 6 What goes into z in the following program: char foo() { char y; uint16_t x; y = *x; return y; char z; int main(void) { z = foo(); z is loaded with the 8-bit quantity in the I/O register at location 0x20. EECS 149/249A, UC Berkeley: 29 Quiz: Find the flaw in this program (begin by thinking about where each variable is allocated) int x = 2; int* foo(int y) { int z; z = y * x; return &z; int main(void) { int* result = foo(10);... EECS 149/249A, UC Berkeley: 30 15

16 Solution: Find the flaw in this program int x = 2; int* foo(int y) { int z; z = y * x; return &z; statically allocated: compiler assigns a memory location. arguments on the stack automatic variables on the stack int main(void) { int* result = foo(10);... program counter, argument 10, and z go on the stack (and possibly more, depending on the compiler). The procedure foo() returns a pointer to a variable on the stack. What if another procedure call (or interrupt) occurs before the returned pointer is de-referenced? EECS 149/249A, UC Berkeley: 31 Watch out for Recursion!! Quiz: What is the Final Value of z? void foo(uint16_t x) { char y; y = *x; if (x > 0x100) { foo(x 1); char z; void main() { z = 0x10; foo(0x04ff); EECS 149/249A, UC Berkeley: 32 16

17 Dynamically-Allocated Memory The Heap An operating system typically offers a way to dynamically allocate memory on a heap. Memory management (malloc() and free()) can lead to many problems with embedded systems: Memory leaks (allocated memory is never freed) Memory fragmentation (allocatable pieces get smaller) Automatic techniques ( garbage collection ) often require stopping everything and reorganizing the allocated memory. This is deadly for real-time programs. EECS 149/249A, UC Berkeley: 33 Other Issues Memory hierarchy Cache: A subset of memory addresses is mapped to SRAM Accessing an address not in SRAM results in cache miss A miss is handled by copying contents of DRAM to SRAM Scratchpad: SRAM and DRAM occupy disjoint regions of memory space Software manages what is stored where Segmentation Logical addresses are mapped to a subset of physical addresses Permissions regulate which tasks can access which memory See your textbook for more details. EECS 149/249A, UC Berkeley: 34 17

18 Memory Hierarchy Memorymapped I/O devices CPU registers Cache or scratch pad Main memory Disk or Flash register address fits within one instruction word SRAM DRAM Here, the cache or scratchpad, main memory, and disk or flash share the same address space. EECS 149/249A, UC Berkeley: 35 Memory Hierarchy CPU registers register address fits within one instruction word Memorymapped I/O devices Cache or scratch pad SRAM Main memory DRAM Disk or Flash Here, each distinct piece of memory hardware has its own segment of the address space. This requires more careful software design, but gives more direct control over timing. EECS 149/249A, UC Berkeley: 36 18

19 Direct-Mapped Cache A set consists of one line Set 0 1 valid bit t tag bits B = 2 b bytes per block Set 1 t bits s bits b bits Tag Set index Block offset m-1 Address 0... If the tag of the address matches the tag of the line, then we have a cache hit. Otherwise, the fetch goes to main memory, updating the line. Set S CACHE EECS 149/249A, UC Berkeley: 37 Set-Associative Cache A set consists of several lines Set 0 1 valid bit t tag bits B = 2 b bytes per block... t bits s bits b bits Tag Set index Block offset m-1 0 Address Tag matching is done using an associative memory or content-addressable memory. Set 1 Set S CACHE EECS 149/249A, UC Berkeley: 38 19

20 Set-Associative Cache A set consists of several lines Set 0 1 valid bit t tag bits B = 2 b bytes per block... t bits s bits b bits Tag Set index Block offset m-1 0 Address A cache miss requires a replacement policy (like LRU or FIFO). Set 1 Set S CACHE EECS 149/249A, UC Berkeley: 39 Your Lab Hardware (2014 & 2015) myrio 1950/1900 (National Instruments) Xilinx Zynq Z-7010 ARM Cortex-A9 MPCore dual core processor Real-time Linux Xilinx Artix-7 FPGA Preconfigured with a 32-bit MicroBlaze microprocessor running without an operating system ( bare metal ). EECS 149/249A, UC Berkeley: 40 20

21 Xilinx Zynq Dual-core ARM processor + FPGA + rich I/O on a single chip. EECS 149/249A, UC Berkeley: 41 Microblaze I/O Architecture Source: Xilinx EECS 149/249A, UC Berkeley: 42 21

22 Microblaze I/O Architecture Source: Xilinx EECS 149/249A, UC Berkeley: 43 0xFFFFFFFF Berkeley Microblaze Personality Memory Map MicroBlaze 50MHz MEMORY BRAM UART0 UART1 ADC Subsystem TIMER Unmapped Area ADC subsystem Unmapped Area Debugger Unmapped Area UARTs Unmapped Area Timer Unmapped Area Interrupt controller 0xC220FFFF 0xC x8440FFFF 0x x8402FFFF 0x x83C0FFFF 0x83C x8180FFFF 0x Debugger Unmapped Area Interrupt controller Memory for Instructions and Data 0x0000FFFF 0x EECS 149/249A, UC Berkeley: 44 22

23 Conclusion Understanding memory architectures is essential to programming embedded systems. EECS 149/249A, UC Berkeley: 45 23

2.0 Command and Data Handling Subsystem

2.0 Command and Data Handling Subsystem 2.0 Command and Data Handling Subsystem The Command and Data Handling Subsystem is the brain of the whole autonomous CubeSat. The C&DH system consists of an Onboard Computer, OBC, which controls the operation

More information

ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-17: Memory organisation, and types of memory

ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-17: Memory organisation, and types of memory ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-17: Memory organisation, and types of memory 1 1. Memory Organisation 2 Random access model A memory-, a data byte, or a word, or a double

More information

Chapter 1 Computer System Overview

Chapter 1 Computer System Overview Operating Systems: Internals and Design Principles Chapter 1 Computer System Overview Eighth Edition By William Stallings Operating System Exploits the hardware resources of one or more processors Provides

More information

Chapter 13. PIC Family Microcontroller

Chapter 13. PIC Family Microcontroller Chapter 13 PIC Family Microcontroller Lesson 01 PIC Characteristics and Examples PIC microcontroller characteristics Power-on reset Brown out reset Simplified instruction set High speed execution Up to

More information

With respect to the way of data access we can classify memories as:

With respect to the way of data access we can classify memories as: Memory Classification With respect to the way of data access we can classify memories as: - random access memories (RAM), - sequentially accessible memory (SAM), - direct access memory (DAM), - contents

More information

Embedded Software Development: Spottbillige Hardware + OSS = Zum Spielen zu Schade!

Embedded Software Development: Spottbillige Hardware + OSS = Zum Spielen zu Schade! Embedded Software Development: Spottbillige Hardware + OSS = Zum Spielen zu Schade! Gregor Hohpe www.eaipatterns.com OOP 2012 1 Microcontrollers CPU core, memory, and I/O (analog, digital) on one chip

More information

Computers. Hardware. The Central Processing Unit (CPU) CMPT 125: Lecture 1: Understanding the Computer

Computers. Hardware. The Central Processing Unit (CPU) CMPT 125: Lecture 1: Understanding the Computer Computers CMPT 125: Lecture 1: Understanding the Computer Tamara Smyth, tamaras@cs.sfu.ca School of Computing Science, Simon Fraser University January 3, 2009 A computer performs 2 basic functions: 1.

More information

CHAPTER 7: The CPU and Memory

CHAPTER 7: The CPU and Memory CHAPTER 7: The CPU and Memory The Architecture of Computer Hardware, Systems Software & Networking: An Information Technology Approach 4th Edition, Irv Englander John Wiley and Sons 2010 PowerPoint slides

More information

Memory Basics. SRAM/DRAM Basics

Memory Basics. SRAM/DRAM Basics Memory Basics RAM: Random Access Memory historically defined as memory array with individual bit access refers to memory with both Read and Write capabilities ROM: Read Only Memory no capabilities for

More information

Algorithms and Methods for Distributed Storage Networks 3. Solid State Disks Christian Schindelhauer

Algorithms and Methods for Distributed Storage Networks 3. Solid State Disks Christian Schindelhauer Algorithms and Methods for Distributed Storage Networks 3. Solid State Disks Institut für Informatik Wintersemester 2007/08 Solid State Disks Motivation 2 10 5 1980 1985 1990 1995 2000 2005 2010 PRODUCTION

More information

Programming Embedded Systems

Programming Embedded Systems Programming Embedded Systems Lecture 13 Overview of memory management Monday Feb 27, 2012 Philipp Rümmer Uppsala University Philipp.Ruemmer@it.uu.se 1/32 Lecture outline Memory architecture of microcontrollers,

More information

Technical Note. Micron NAND Flash Controller via Xilinx Spartan -3 FPGA. Overview. TN-29-06: NAND Flash Controller on Spartan-3 Overview

Technical Note. Micron NAND Flash Controller via Xilinx Spartan -3 FPGA. Overview. TN-29-06: NAND Flash Controller on Spartan-3 Overview Technical Note TN-29-06: NAND Flash Controller on Spartan-3 Overview Micron NAND Flash Controller via Xilinx Spartan -3 FPGA Overview As mobile product capabilities continue to expand, so does the demand

More information

Microtronics technologies Mobile: 99707 90092

Microtronics technologies Mobile: 99707 90092 For more Project details visit: http://www.projectsof8051.com/rfid-based-attendance-management-system/ Code Project Title 1500 RFid Based Attendance System Synopsis for RFid Based Attendance System 1.

More information

Keil C51 Cross Compiler

Keil C51 Cross Compiler Keil C51 Cross Compiler ANSI C Compiler Generates fast compact code for the 8051 and it s derivatives Advantages of C over Assembler Do not need to know the microcontroller instruction set Register allocation

More information

Logical Operations. Control Unit. Contents. Arithmetic Operations. Objectives. The Central Processing Unit: Arithmetic / Logic Unit.

Logical Operations. Control Unit. Contents. Arithmetic Operations. Objectives. The Central Processing Unit: Arithmetic / Logic Unit. Objectives The Central Processing Unit: What Goes on Inside the Computer Chapter 4 Identify the components of the central processing unit and how they work together and interact with memory Describe how

More information

Embedded Systems Design Course Applying the mbed microcontroller

Embedded Systems Design Course Applying the mbed microcontroller Embedded Systems Design Course Applying the mbed microcontroller Memory and data management These course notes are written by R.Toulson (Anglia Ruskin University) and T.Wilmshurst (University of Derby).

More information

CSCA0102 IT & Business Applications. Foundation in Business Information Technology School of Engineering & Computing Sciences FTMS College Global

CSCA0102 IT & Business Applications. Foundation in Business Information Technology School of Engineering & Computing Sciences FTMS College Global CSCA0102 IT & Business Applications Foundation in Business Information Technology School of Engineering & Computing Sciences FTMS College Global Chapter 2 Data Storage Concepts System Unit The system unit

More information

Software based Finite State Machine (FSM) with general purpose processors

Software based Finite State Machine (FSM) with general purpose processors Software based Finite State Machine (FSM) with general purpose processors White paper Joseph Yiu January 2013 Overview Finite state machines (FSM) are commonly used in electronic designs. FSM can be used

More information

All Programmable Logic. Hans-Joachim Gelke Institute of Embedded Systems. Zürcher Fachhochschule

All Programmable Logic. Hans-Joachim Gelke Institute of Embedded Systems. Zürcher Fachhochschule All Programmable Logic Hans-Joachim Gelke Institute of Embedded Systems Institute of Embedded Systems 31 Assistants 10 Professors 7 Technical Employees 2 Secretaries www.ines.zhaw.ch Research: Education:

More information

8051 MICROCONTROLLER COURSE

8051 MICROCONTROLLER COURSE 8051 MICROCONTROLLER COURSE Objective: 1. Familiarization with different types of Microcontroller 2. To know 8051 microcontroller in detail 3. Programming and Interfacing 8051 microcontroller Prerequisites:

More information

RAM & ROM Based Digital Design. ECE 152A Winter 2012

RAM & ROM Based Digital Design. ECE 152A Winter 2012 RAM & ROM Based Digital Design ECE 152A Winter 212 Reading Assignment Brown and Vranesic 1 Digital System Design 1.1 Building Block Circuits 1.1.3 Static Random Access Memory (SRAM) 1.1.4 SRAM Blocks in

More information

Palaparthi.Jagadeesh Chand. Associate Professor in ECE Department, Nimra Institute of Science & Technology, Vijayawada, A.P.

Palaparthi.Jagadeesh Chand. Associate Professor in ECE Department, Nimra Institute of Science & Technology, Vijayawada, A.P. Patient Monitoring Using Embedded Palaparthi.Jagadeesh Chand Associate Professor in ECE Department, Nimra Institute of Science & Technology, Vijayawada, A.P Abstract The aim of this project is to inform

More information

MICROPROCESSOR BCA IV Sem MULTIPLE CHOICE QUESTIONS

MICROPROCESSOR BCA IV Sem MULTIPLE CHOICE QUESTIONS MICROPROCESSOR BCA IV Sem MULTIPLE CHOICE QUESTIONS 1) Which is the microprocessor comprises: a. Register section b. One or more ALU c. Control unit 2) What is the store by register? a. data b. operands

More information

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Question Bank Subject Name: EC6504 - Microprocessor & Microcontroller Year/Sem : II/IV

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Question Bank Subject Name: EC6504 - Microprocessor & Microcontroller Year/Sem : II/IV DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Question Bank Subject Name: EC6504 - Microprocessor & Microcontroller Year/Sem : II/IV UNIT I THE 8086 MICROPROCESSOR 1. What is the purpose of segment registers

More information

AN10866 LPC1700 secondary USB bootloader

AN10866 LPC1700 secondary USB bootloader Rev. 2 21 September 2010 Application note Document information Info Content Keywords LPC1700, Secondary USB Bootloader, ISP, IAP Abstract This application note describes how to add a custom secondary USB

More information

Programing the Microprocessor in C Microprocessor System Design and Interfacing ECE 362

Programing the Microprocessor in C Microprocessor System Design and Interfacing ECE 362 PURDUE UNIVERSITY Programing the Microprocessor in C Microprocessor System Design and Interfacing ECE 362 Course Staff 1/31/2012 1 Introduction This tutorial is made to help the student use C language

More information

Soft processors for microcontroller programming education

Soft processors for microcontroller programming education Soft processors for microcontroller programming education Charles Goetzman Computer Science University of Wisconsin La Crosse goetzman.char@uwlax.edu Jeff Fancher Electronics Western Technical College

More information

Chapter 1 Lesson 3 Hardware Elements in the Embedded Systems. 2008 Chapter-1L03: "Embedded Systems - ", Raj Kamal, Publs.: McGraw-Hill Education

Chapter 1 Lesson 3 Hardware Elements in the Embedded Systems. 2008 Chapter-1L03: Embedded Systems - , Raj Kamal, Publs.: McGraw-Hill Education Chapter 1 Lesson 3 Hardware Elements in the Embedded Systems 1 Typical Embedded System Hardware units 2 Basic Circuit Elements at the System 3 (i) Power Source 1. System own supply with separate supply

More information

NAND Flash FAQ. Eureka Technology. apn5_87. NAND Flash FAQ

NAND Flash FAQ. Eureka Technology. apn5_87. NAND Flash FAQ What is NAND Flash? What is the major difference between NAND Flash and other Memory? Structural differences between NAND Flash and NOR Flash What does NAND Flash controller do? How to send command to

More information

Homework # 2. Solutions. 4.1 What are the differences among sequential access, direct access, and random access?

Homework # 2. Solutions. 4.1 What are the differences among sequential access, direct access, and random access? ECE337 / CS341, Fall 2005 Introduction to Computer Architecture and Organization Instructor: Victor Manuel Murray Herrera Date assigned: 09/19/05, 05:00 PM Due back: 09/30/05, 8:00 AM Homework # 2 Solutions

More information

CS5460: Operating Systems

CS5460: Operating Systems CS5460: Operating Systems Lecture 13: Memory Management (Chapter 8) Where are we? Basic OS structure, HW/SW interface, interrupts, scheduling Concurrency Memory management Storage management Other topics

More information

Price/performance Modern Memory Hierarchy

Price/performance Modern Memory Hierarchy Lecture 21: Storage Administration Take QUIZ 15 over P&H 6.1-4, 6.8-9 before 11:59pm today Project: Cache Simulator, Due April 29, 2010 NEW OFFICE HOUR TIME: Tuesday 1-2, McKinley Last Time Exam discussion

More information

Lab 3 Microcontroller programming Interfacing to Sensors and Actuators with irobot

Lab 3 Microcontroller programming Interfacing to Sensors and Actuators with irobot 1. Objective Lab 3 Microcontroller programming Interfacing to Sensors and Actuators with irobot In this lab, you will: i. Become familiar with the irobot and AVR tools. ii. Understand how to program a

More information

SDRAM and DRAM Memory Systems Overview

SDRAM and DRAM Memory Systems Overview CHAPTER SDRAM and DRAM Memory Systems Overview Product Numbers: MEM-NPE-32MB=, MEM-NPE-64MB=, MEM-NPE-128MB=, MEM-SD-NPE-32MB=, MEM-SD-NPE-64MB=, MEM-SD-NPE-128MB=, MEM-SD-NSE-256MB=, MEM-NPE-400-128MB=,

More information

Module 2. Embedded Processors and Memory. Version 2 EE IIT, Kharagpur 1

Module 2. Embedded Processors and Memory. Version 2 EE IIT, Kharagpur 1 Module 2 Embedded Processors and Memory Version 2 EE IIT, Kharagpur 1 Lesson 5 Memory-I Version 2 EE IIT, Kharagpur 2 Instructional Objectives After going through this lesson the student would Pre-Requisite

More information

361 Computer Architecture Lecture 14: Cache Memory

361 Computer Architecture Lecture 14: Cache Memory 1 361 Computer Architecture Lecture 14 Memory cache.1 The Motivation for s Memory System Processor DRAM Motivation Large memories (DRAM) are slow Small memories (SRAM) are fast Make the average access

More information

Atmel Norway 2005. XMEGA Introduction

Atmel Norway 2005. XMEGA Introduction Atmel Norway 005 XMEGA Introduction XMEGA XMEGA targets Leadership on Peripheral Performance Leadership in Low Power Consumption Extending AVR market reach XMEGA AVR family 44-100 pin packages 16K 51K

More information

Building Blocks for PRU Development

Building Blocks for PRU Development Building Blocks for PRU Development Module 1 PRU Hardware Overview This session covers a hardware overview of the PRU-ICSS Subsystem. Author: Texas Instruments, Sitara ARM Processors Oct 2014 2 ARM SoC

More information

Memory. The memory types currently in common usage are:

Memory. The memory types currently in common usage are: ory ory is the third key component of a microprocessor-based system (besides the CPU and I/O devices). More specifically, the primary storage directly addressed by the CPU is referred to as main memory

More information

Computer Architecture

Computer Architecture Computer Architecture Slide Sets WS 2013/2014 Prof. Dr. Uwe Brinkschulte M.Sc. Benjamin Betting Part 11 Memory Management Computer Architecture Part 11 page 1 of 44 Prof. Dr. Uwe Brinkschulte, M.Sc. Benjamin

More information

Why using ATmega16? University of Wollongong Australia. 7.1 Overview of ATmega16. Overview of ATmega16

Why using ATmega16? University of Wollongong Australia. 7.1 Overview of ATmega16. Overview of ATmega16 s schedule Lecture 7 - C Programming for the Atmel AVR School of Electrical, l Computer and Telecommunications i Engineering i University of Wollongong Australia Week Lecture (2h) Tutorial (1h) Lab (2h)

More information

FPGA Design From Scratch It all started more than 40 years ago

FPGA Design From Scratch It all started more than 40 years ago FPGA Design From Scratch It all started more than 40 years ago Presented at FPGA Forum in Trondheim 14-15 February 2012 Sven-Åke Andersson Realtime Embedded 1 Agenda Moore s Law Processor, Memory and Computer

More information

Computer Systems Structure Main Memory Organization

Computer Systems Structure Main Memory Organization Computer Systems Structure Main Memory Organization Peripherals Computer Central Processing Unit Main Memory Computer Systems Interconnection Communication lines Input Output Ward 1 Ward 2 Storage/Memory

More information

Chapter 2: Computer-System Structures. Computer System Operation Storage Structure Storage Hierarchy Hardware Protection General System Architecture

Chapter 2: Computer-System Structures. Computer System Operation Storage Structure Storage Hierarchy Hardware Protection General System Architecture Chapter 2: Computer-System Structures Computer System Operation Storage Structure Storage Hierarchy Hardware Protection General System Architecture Operating System Concepts 2.1 Computer-System Architecture

More information

COMPUTER HARDWARE. Input- Output and Communication Memory Systems

COMPUTER HARDWARE. Input- Output and Communication Memory Systems COMPUTER HARDWARE Input- Output and Communication Memory Systems Computer I/O I/O devices commonly found in Computer systems Keyboards Displays Printers Magnetic Drives Compact disk read only memory (CD-ROM)

More information

MICROPROCESSOR AND MICROCOMPUTER BASICS

MICROPROCESSOR AND MICROCOMPUTER BASICS Introduction MICROPROCESSOR AND MICROCOMPUTER BASICS At present there are many types and sizes of computers available. These computers are designed and constructed based on digital and Integrated Circuit

More information

Lab Experiment 1: The LPC 2148 Education Board

Lab Experiment 1: The LPC 2148 Education Board Lab Experiment 1: The LPC 2148 Education Board 1 Introduction The aim of this course ECE 425L is to help you understand and utilize the functionalities of ARM7TDMI LPC2148 microcontroller. To do that,

More information

Microcontrollers in Practice

Microcontrollers in Practice M. Mitescu I. Susnea Microcontrollers in Practice With 117 Figures, 34 Tables and CD-Rom 4y Springer Contents Resources of Microcontrollers, 1 1.1 In this Chapter 1 1.2 Microcontroller Architectures 1

More information

Embedded Systems on ARM Cortex-M3 (4weeks/45hrs)

Embedded Systems on ARM Cortex-M3 (4weeks/45hrs) Embedded Systems on ARM Cortex-M3 (4weeks/45hrs) Course & Kit Contents LEARN HOW TO: Use of Keil Real View for ARM Use ARM Cortex-M3 MCU for professional embedded application development Understanding

More information

Architekturen und Einsatz von FPGAs mit integrierten Prozessor Kernen. Hans-Joachim Gelke Institute of Embedded Systems Professur für Mikroelektronik

Architekturen und Einsatz von FPGAs mit integrierten Prozessor Kernen. Hans-Joachim Gelke Institute of Embedded Systems Professur für Mikroelektronik Architekturen und Einsatz von FPGAs mit integrierten Prozessor Kernen Hans-Joachim Gelke Institute of Embedded Systems Professur für Mikroelektronik Contents Überblick: Aufbau moderner FPGA Einblick: Eigenschaften

More information

Microcontroller Systems. ELET 3232 Topic 8: Slot Machine Example

Microcontroller Systems. ELET 3232 Topic 8: Slot Machine Example Microcontroller Systems ELET 3232 Topic 8: Slot Machine Example 1 Agenda We will work through a complete example Use CodeVision and AVR Studio Discuss a few creative instructions Discuss #define and #include

More information

Chapter 4 System Unit Components. Discovering Computers 2012. Your Interactive Guide to the Digital World

Chapter 4 System Unit Components. Discovering Computers 2012. Your Interactive Guide to the Digital World Chapter 4 System Unit Components Discovering Computers 2012 Your Interactive Guide to the Digital World Objectives Overview Differentiate among various styles of system units on desktop computers, notebook

More information

Computer-System Architecture

Computer-System Architecture Chapter 2: Computer-System Structures Computer System Operation I/O Structure Storage Structure Storage Hierarchy Hardware Protection General System Architecture 2.1 Computer-System Architecture 2.2 Computer-System

More information

C Programming. for Embedded Microcontrollers. Warwick A. Smith. Postbus 11. Elektor International Media BV. 6114ZG Susteren The Netherlands

C Programming. for Embedded Microcontrollers. Warwick A. Smith. Postbus 11. Elektor International Media BV. 6114ZG Susteren The Netherlands C Programming for Embedded Microcontrollers Warwick A. Smith Elektor International Media BV Postbus 11 6114ZG Susteren The Netherlands 3 the Table of Contents Introduction 11 Target Audience 11 What is

More information

STM32 F-2 series High-performance Cortex-M3 MCUs

STM32 F-2 series High-performance Cortex-M3 MCUs STM32 F-2 series High-performance Cortex-M3 MCUs STMicroelectronics 32-bit microcontrollers, 120 MHz/150 DMIPS with ART Accelerator TM and advanced peripherals www.st.com/mcu STM32 F-2 series The STM32

More information

SmartFusion csoc: Basic Bootloader and Field Upgrade envm Through IAP Interface

SmartFusion csoc: Basic Bootloader and Field Upgrade envm Through IAP Interface Application Note AC372 SmartFusion csoc: Basic Bootloader and Field Upgrade envm Through IAP Interface Table of Contents Introduction................................................ 1 Introduction to Field

More information

13. Publishing Component Information to Embedded Software

13. Publishing Component Information to Embedded Software February 2011 NII52018-10.1.0 13. Publishing Component Information to Embedded Software NII52018-10.1.0 This document describes how to publish SOPC Builder component information for embedded software tools.

More information

Microprocessor and Microcontroller Architecture

Microprocessor and Microcontroller Architecture Microprocessor and Microcontroller Architecture 1 Von Neumann Architecture Stored-Program Digital Computer Digital computation in ALU Programmable via set of standard instructions input memory output Internal

More information

University of Dublin Trinity College. Storage Hardware. Owen.Conlan@cs.tcd.ie

University of Dublin Trinity College. Storage Hardware. Owen.Conlan@cs.tcd.ie University of Dublin Trinity College Storage Hardware Owen.Conlan@cs.tcd.ie Hardware Issues Hard Disk/SSD CPU Cache Main Memory CD ROM/RW DVD ROM/RW Tapes Primary Storage Floppy Disk/ Memory Stick Secondary

More information

Simplifying Embedded Hardware and Software Development with Targeted Reference Designs

Simplifying Embedded Hardware and Software Development with Targeted Reference Designs White Paper: Spartan-6 and Virtex-6 FPGAs WP358 (v1.0) December 8, 2009 Simplifying Embedded Hardware and Software Development with Targeted Reference Designs By: Navanee Sundaramoorthy FPGAs are becoming

More information

A3 Computer Architecture

A3 Computer Architecture A3 Computer Architecture Engineering Science 3rd year A3 Lectures Prof David Murray david.murray@eng.ox.ac.uk www.robots.ox.ac.uk/ dwm/courses/3co Michaelmas 2000 1 / 1 6. Stacks, Subroutines, and Memory

More information

PROJECT PRESENTATION ON CELLPHONE OPERATED ROBOTIC ASSISTANT

PROJECT PRESENTATION ON CELLPHONE OPERATED ROBOTIC ASSISTANT PROJECT PRESENTATION ON CELLPHONE OPERATED ROBOTIC ASSISTANT ELECTRONICS ENGINEERING DEPARTMENT SVNIT, SURAT-395007, INDIA Prepared by: Anurag Gupta (U05EC401) Dhrumeel Bakshi (U05EC326) Dileep Dhakal

More information

CSCA0201 FUNDAMENTALS OF COMPUTING. Chapter 5 Storage Devices

CSCA0201 FUNDAMENTALS OF COMPUTING. Chapter 5 Storage Devices CSCA0201 FUNDAMENTALS OF COMPUTING Chapter 5 Storage Devices 1 1. Computer Data Storage 2. Types of Storage 3. Storage Device Features 4. Other Examples of Storage Device 2 Storage Devices A storage device

More information

Display Message on Notice Board using GSM

Display Message on Notice Board using GSM Advance in Electronic and Electric Engineering. ISSN 2231-1297, Volume 3, Number 7 (2013), pp. 827-832 Research India Publications http://www.ripublication.com/aeee.htm Display Message on Notice Board

More information

September 25, 2007. Maya Gokhale Georgia Institute of Technology

September 25, 2007. Maya Gokhale Georgia Institute of Technology NAND Flash Storage for High Performance Computing Craig Ulmer cdulmer@sandia.gov September 25, 2007 Craig Ulmer Maya Gokhale Greg Diamos Michael Rewak SNL/CA, LLNL Georgia Institute of Technology University

More information

Machine Architecture and Number Systems. Major Computer Components. Schematic Diagram of a Computer. The CPU. The Bus. Main Memory.

Machine Architecture and Number Systems. Major Computer Components. Schematic Diagram of a Computer. The CPU. The Bus. Main Memory. 1 Topics Machine Architecture and Number Systems Major Computer Components Bits, Bytes, and Words The Decimal Number System The Binary Number System Converting from Decimal to Binary Major Computer Components

More information

Embedded Component Based Programming with DAVE 3

Embedded Component Based Programming with DAVE 3 Embedded Component Based Programming with DAVE 3 By Mike Copeland, Infineon Technologies Introduction Infineon recently introduced the XMC4000 family of ARM Cortex -M4F processor-based MCUs for industrial

More information

7a. System-on-chip design and prototyping platforms

7a. System-on-chip design and prototyping platforms 7a. System-on-chip design and prototyping platforms Labros Bisdounis, Ph.D. Department of Computer and Communication Engineering 1 What is System-on-Chip (SoC)? System-on-chip is an integrated circuit

More information

A N. O N Output/Input-output connection

A N. O N Output/Input-output connection Memory Types Two basic types: ROM: Read-only memory RAM: Read-Write memory Four commonly used memories: ROM Flash, EEPROM Static RAM (SRAM) Dynamic RAM (DRAM), SDRAM, RAMBUS, DDR RAM Generic pin configuration:

More information

Handout 17. by Dr Sheikh Sharif Iqbal. Memory Unit and Read Only Memories

Handout 17. by Dr Sheikh Sharif Iqbal. Memory Unit and Read Only Memories Handout 17 by Dr Sheikh Sharif Iqbal Memory Unit and Read Only Memories Objective: - To discuss different types of memories used in 80x86 systems for storing digital information. - To learn the electronic

More information

A 5 Degree Feedback Control Robotic Arm (Haptic Arm)

A 5 Degree Feedback Control Robotic Arm (Haptic Arm) A 5 Degree Feedback Control Robotic Arm (Haptic Arm) 1 Prof. Sheetal Nirve, 2 Mr.Abhilash Patil, 3 Mr.Shailesh Patil, 4 Mr.Vishal Raut Abstract: Haptics is the science of applying touch sensation and control

More information

150127-Microprocessor & Assembly Language

150127-Microprocessor & Assembly Language Chapter 3 Z80 Microprocessor Architecture The Z 80 is one of the most talented 8 bit microprocessors, and many microprocessor-based systems are designed around the Z80. The Z80 microprocessor needs an

More information

Republic Polytechnic School of Information and Communications Technology C226 Operating System Concepts. Module Curriculum

Republic Polytechnic School of Information and Communications Technology C226 Operating System Concepts. Module Curriculum Republic Polytechnic School of Information and Communications Technology C6 Operating System Concepts Module Curriculum Module Description: This module examines the fundamental components of single computer

More information

Memory Allocation. Static Allocation. Dynamic Allocation. Memory Management. Dynamic Allocation. Dynamic Storage Allocation

Memory Allocation. Static Allocation. Dynamic Allocation. Memory Management. Dynamic Allocation. Dynamic Storage Allocation Dynamic Storage Allocation CS 44 Operating Systems Fall 5 Presented By Vibha Prasad Memory Allocation Static Allocation (fixed in size) Sometimes we create data structures that are fixed and don t need

More information

Microcontrollers and Sensors. Scott Gilliland - zeroping@gmail

Microcontrollers and Sensors. Scott Gilliland - zeroping@gmail Microcontrollers and Sensors Scott Gilliland - zeroping@gmail Microcontrollers Think tiny computer on a chip 8 to 128 pins Runs on 3.3 to 5 Volts 8 to 20 Mhz Uses µw to mw of power ~ 4 kilobytes of flash

More information

Ingar Fredriksen AVR Applications Manager. Tromsø August 12, 2005

Ingar Fredriksen AVR Applications Manager. Tromsø August 12, 2005 Ingar Fredriksen AVR Applications Manager Tromsø August 12, 2005 Atmel Norway 2005 Atmel Norway 2005 The history of computers Foundation for modern computing 3 An automatic computing machine must have:

More information

The Quest for Speed - Memory. Cache Memory. A Solution: Memory Hierarchy. Memory Hierarchy

The Quest for Speed - Memory. Cache Memory. A Solution: Memory Hierarchy. Memory Hierarchy The Quest for Speed - Memory Cache Memory CSE 4, Spring 25 Computer Systems http://www.cs.washington.edu/4 If all memory accesses (IF/lw/sw) accessed main memory, programs would run 20 times slower And

More information

SBC6245 Single Board Computer

SBC6245 Single Board Computer SBC6245 Single Board Computer 400MHz Atmel AT91SAM9G45 ARM 926EJ-STM Microcontroller On Board 128MB Nand Flash plus 128MB DDR2 SDRAM RS232, RS485, Ethernet, USB Host, LCD, Touch Screen, RTC, Supports for

More information

1. Memory technology & Hierarchy

1. Memory technology & Hierarchy 1. Memory technology & Hierarchy RAM types Advances in Computer Architecture Andy D. Pimentel Memory wall Memory wall = divergence between CPU and RAM speed We can increase bandwidth by introducing concurrency

More information

ENGI E1112 Departmental Project Report: Computer Science/Computer Engineering

ENGI E1112 Departmental Project Report: Computer Science/Computer Engineering ENGI E1112 Departmental Project Report: Computer Science/Computer Engineering Daniel Estrada Taylor, Dev Harrington, Sekou Harris December 2012 Abstract This document is the final report for ENGI E1112,

More information

Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization

Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization Lesson Objectives To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization AE3B33OSD Lesson 1 / Page 2 What is an Operating System? A

More information

ECIO40P ECIO28P ECRM40. Page 1. USB programmable microcontrollers. 0.6 DIP footprint. Supplied with a free version of Flowcode. E-blocks compatible

ECIO40P ECIO28P ECRM40. Page 1. USB programmable microcontrollers. 0.6 DIP footprint. Supplied with a free version of Flowcode. E-blocks compatible Page 1 USB programmable microcontrollers 0.6 DIP footprint Supplied with a free version of Flowcode E-blocks compatible ECIO40P ECIO28P ECRM40 trademarks of. Page 2 What does it do? ECIO devices are powerful

More information

Reconfigurable System-on-Chip Design

Reconfigurable System-on-Chip Design Reconfigurable System-on-Chip Design MITCHELL MYJAK Senior Research Engineer Pacific Northwest National Laboratory PNNL-SA-93202 31 January 2013 1 About Me Biography BSEE, University of Portland, 2002

More information

6. Storage and File Structures

6. Storage and File Structures ECS-165A WQ 11 110 6. Storage and File Structures Goals Understand the basic concepts underlying different storage media, buffer management, files structures, and organization of records in files. Contents

More information

Network connectivity controllers

Network connectivity controllers Network connectivity controllers High performance connectivity solutions Factory Automation The hostile environment of many factories can have a significant impact on the life expectancy of PCs, and industrially

More information

Discovering Computers 2011. Living in a Digital World

Discovering Computers 2011. Living in a Digital World Discovering Computers 2011 Living in a Digital World Objectives Overview Differentiate among various styles of system units on desktop computers, notebook computers, and mobile devices Identify chips,

More information

Atmel s Self-Programming Flash Microcontrollers

Atmel s Self-Programming Flash Microcontrollers Atmel s Self-Programming Flash Microcontrollers By Odd Jostein Svendsli, Marketing Manager Summary The third-generation Flash microcontrollers from Atmel are now available. These microcontrollers offer

More information

Hello and welcome to this presentation of the STM32L4 Firewall. It covers the main features of this system IP used to secure sensitive code and data.

Hello and welcome to this presentation of the STM32L4 Firewall. It covers the main features of this system IP used to secure sensitive code and data. Hello and welcome to this presentation of the STM32L4 Firewall. It covers the main features of this system IP used to secure sensitive code and data. 1 Here is an overview of the Firewall s implementation

More information

File System Management

File System Management Lecture 7: Storage Management File System Management Contents Non volatile memory Tape, HDD, SSD Files & File System Interface Directories & their Organization File System Implementation Disk Space Allocation

More information

Outline: Operating Systems

Outline: Operating Systems Outline: Operating Systems What is an OS OS Functions Multitasking Virtual Memory File Systems Window systems PC Operating System Wars: Windows vs. Linux 1 Operating System provides a way to boot (start)

More information

Freescale Semiconductor, Inc. Product Brief Integrated Portable System Processor DragonBall ΤΜ

Freescale Semiconductor, Inc. Product Brief Integrated Portable System Processor DragonBall ΤΜ nc. Order this document by MC68328/D Microprocessor and Memory Technologies Group MC68328 MC68328V Product Brief Integrated Portable System Processor DragonBall ΤΜ As the portable consumer market grows

More information

Nasir Memon Polytechnic Institute of NYU

Nasir Memon Polytechnic Institute of NYU Nasir Memon Polytechnic Institute of NYU SSD Drive Technology Overview SSD Drive Components NAND FLASH Microcontroller SSD Drive Forensics Challenges Overview SSD s are fairly new to the market Whereas

More information

Fastboot Techniques for x86 Architectures. Marcus Bortel Field Application Engineer QNX Software Systems

Fastboot Techniques for x86 Architectures. Marcus Bortel Field Application Engineer QNX Software Systems Fastboot Techniques for x86 Architectures Marcus Bortel Field Application Engineer QNX Software Systems Agenda Introduction BIOS and BIOS boot time Fastboot versus BIOS? Fastboot time Customizing the boot

More information

Slide Set 8. for ENCM 369 Winter 2015 Lecture Section 01. Steve Norman, PhD, PEng

Slide Set 8. for ENCM 369 Winter 2015 Lecture Section 01. Steve Norman, PhD, PEng Slide Set 8 for ENCM 369 Winter 2015 Lecture Section 01 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary Winter Term, 2015 ENCM 369 W15 Section

More information

AVR Butterfly Training. Atmel Norway, AVR Applications Group

AVR Butterfly Training. Atmel Norway, AVR Applications Group AVR Butterfly Training Atmel Norway, AVR Applications Group 1 Table of Contents INTRODUCTION...3 GETTING STARTED...4 REQUIRED SOFTWARE AND HARDWARE...4 SETTING UP THE HARDWARE...4 SETTING UP THE SOFTWARE...5

More information

8-Bit Flash Microcontroller for Smart Cards. AT89SCXXXXA Summary. Features. Description. Complete datasheet available under NDA

8-Bit Flash Microcontroller for Smart Cards. AT89SCXXXXA Summary. Features. Description. Complete datasheet available under NDA Features Compatible with MCS-51 products On-chip Flash Program Memory Endurance: 1,000 Write/Erase Cycles On-chip EEPROM Data Memory Endurance: 100,000 Write/Erase Cycles 512 x 8-bit RAM ISO 7816 I/O Port

More information

We r e going to play Final (exam) Jeopardy! "Answers:" "Questions:" - 1 -

We r e going to play Final (exam) Jeopardy! Answers: Questions: - 1 - . (0 pts) We re going to play Final (exam) Jeopardy! Associate the following answers with the appropriate question. (You are given the "answers": Pick the "question" that goes best with each "answer".)

More information

Using the CoreSight ITM for debug and testing in RTX applications

Using the CoreSight ITM for debug and testing in RTX applications Using the CoreSight ITM for debug and testing in RTX applications Outline This document outlines a basic scheme for detecting runtime errors during development of an RTX application and an approach to

More information

MICROPROCESSOR. Exclusive for IACE Students www.iace.co.in iacehyd.blogspot.in Ph: 9700077455/422 Page 1

MICROPROCESSOR. Exclusive for IACE Students www.iace.co.in iacehyd.blogspot.in Ph: 9700077455/422 Page 1 MICROPROCESSOR A microprocessor incorporates the functions of a computer s central processing unit (CPU) on a single Integrated (IC), or at most a few integrated circuit. It is a multipurpose, programmable

More information