Interrupt-Driven Digital Control

Size: px
Start display at page:

Download "Interrupt-Driven Digital Control"

Transcription

1 Interrupt-Driven Digital Control

2 Digital Control System Digital Computer Command + Controller D/A Control Signal Plant A/D T Sampler Sensor

3 Interrupt Main Program Interrupt Service Routine

4 PC Interrupt

5 PC Interrupt

6 PC Interrupt

7 PC bus AD board IRQ5 AD Converter Timer AD conversion start AD conversion end Timer AD Converter IRQ Interrupt Request T (Sampling Period)

8 Interrupt Definitions Hardware signal indicating an event has happened and needs to be serviced Latency The time from when the interrupt occurred to when the event is serviced

9 Threads and Processes Thread A unit of execution A piece of code that can be scheduled to run by the kernel May be launch by a process or a driver Process A collection of threads with a common execution environment A process has at least on thread Launch from an executable file Can create threads to handle interrupts

10 ISRs and ISTs Interrupt Service Routine (ISR) A piece of code loaded into the kernel Assigned to a particular IRQ Called immediately to handle the hardware interrupt Should be written to run quickly with few outside dependencies Can be chained together if multiple device might use the same IRQ Notifies the kernel which IST should run Interrupt Service Thread (IST) A thread registered to handle an interrupt Can be created by either a process or a driver Scheduled like any other thread on the system Should be written to do the bulk of the interrupt handling work

11 ISRs and ISTs Work Together ISRs and ISTs usually work as pairs ISR handles the critical work IST handles the bulk of the work They synchronize by using an Event Object The IST creates an Event Object Uses the API WaitForSingleObject to sit and wait on that object to be signaled The ISR tells the kernel which object to signal Which unblocks the IST and makes it runable If the IST is the highest priority runable thread, it will get scheduled to run immediately

12 Priority Levels Windows CE 5.0 has 256 levels of priority Level 0 is the highest and 255 is the lowest The old CE model of 8 levels now map to the lowest 8 of the new model The default level for a thread is 251

13 Scheduler Is responsible for determining which thread will run Has a queue for threads for each priority level Will always schedule the first thread at the highest priority level A thread gets to run for set length of time, called a quantum Typically 100 milliseconds A quantum of 0 means the quantum never runs out The thread can run until blocked or interrupted A Thread runs until Its quantum runs out It is interrupted by a higher priority thread Its blocked by a resource contention Such as access to a critical section or a mutex

14 Fitting It All Together Interrupt Occurs Interrupt Handler calls registered ISR ISR runs, tells kernel which event to signal IST runs and resets the interrupt Scheduler runs the IST Kernel signals event, IST becomes runnable

15 Interrupt Architecture

16 Program Template(1) #define AD_BASE #define AD_LOW_BYTE #define AD_HIGH_BYTE #define AD_MUX #define AD_STATUS #define AD_CONTROL #define COUNTER0 #define COUNTER1 #define COUNTER2 #define COUNTER_CONTROL #define DA_BASE #define DA_CHANNEL1_HIGH #define DA_CHANNEL1_LOW #define DA_CHANNEL2_HIGH #define DA_CHANNEL2_LOW 0x300 AD_BASE AD_BASE+1 AD_BASE+2 AD_BASE+8 AD_BASE+9 AD_BASE+12 AD_BASE+13 AD_BASE+14 AD_BASE+15 0x2c0 DA_BASE DA_BASE+1 DA_BASE+2 DA_BASE+3 #define ONMASK 0xdf /* Turn IRQ5 On */ #define OFFMASK 0x20 /* Turn IRQ5 Off */ #define PICMASK 0x21 /* 8259 Mask Register */ #define PICEOI 0x20 /* 8259 EOI Instruction */ #define DEBUGMODE 1

17 Program Template(2) int WINAPI WinMain( { DWORD IDThread; HINSTANCE hinstance, HINSTANCE hprevinstance, LPTSTR lpcmdline, int ncmdshow) hintrthread=createthread(0,0,intrthread,0,0,&idthread); if (hintrthread==null) { printf("[error]:failed to create IntrThread\r\n"); return 0; } if (!CeSetThreadPriority(hIntrThread,200)) { printf("cesetthreadpriority - Fail\n"); } } MessageBox(NULL, TEXT("Press OK to finish"),text("notice"),mb_ok); return 0;

18 Program Template(3) DWORD IntrThread(PVOID parg) { int high_byte,low_byte; long y,x; hintrevent=createevent(null, FALSE, FALSE, NULL); if (!(InterruptInitialize(SYSINTR_FIRMWARE+5,hIntrEvent,0,0))) { printf("interrupt Thread Initialize - Fail\r\n"); } else { printf("interrupt Thread Initialize - Success\r\n"); } _outp(ad_mux,0); /* AD channel selection */ _outp(ad_base+1,0); /* AD range control */ _outp(ad_control,0xd3); /* set AD mode */ InitializeTimerInterrupt(); _outp(ad_status,0); /* clears AD interrupt */

19 Program Template(4) interruptcounter=0; while(1) { WaitForSingleObject(hIntrEvent, INFINITE); interruptcounter++; low_byte=_inp(ad_low_byte) & 0xFF; high_byte=_inp(ad_high_byte) & 0xFF; x= (low_byte>>4)+(high_byte<<4)-2048; y=x; y=y+2048; low_byte= y & 0xff; high_byte= (y >> 8) & 0x0f; _outp(da_channel1_high,high_byte); _outp(da_channel1_low,low_byte); _outp(da_channel1_high,high_byte); _outp(ad_status,0); /* clears AD interrupt */ } } InterruptDone(SYSINTR_FIRMWARE+5);

20 Program Template(5) void InitializeTimerInterrupt(void) { unsigned short count; /* Initilize the timer */ count=10; _outp(counter_control,0x74); /* */ _outp(counter1,(count & 0xff)); _outp(counter1,((count >> 8) & 0xff)); count=20; _outp(counter_control,0xb4); /* */ _outp(counter2,(count & 0xff)); _outp(counter2,((count >> 8) & 0xff)); /* count=10,count=50 : 2KHz for 1MHz clock input */ /* count=10,count=20 : 5KHz for 1MHz clock input */ } /* InitializeTimerInterrupt */

21 PCL-818L

22 Two s complement 입력전압 입력값 Two s complement (long integer: 4 bytes) 10*(2047/2048) 0xfff 0x000007ff 10*(1/2048) 0x801 0x x *(1/2048) 0x7ff 0xffffffff -10 0x0 0xfffff800

23 AD connection

24 DA Connection 5 번그라운드 1 번출력

25 실험 1: AD & DA

26

27 실험 2: 구형파발생 주파수가 100Hz, 10Hz, 1Hz 인구형파 (0 volt- 1volt) 를발생시켜서 DA converter 로출력한다. 주어진 sample program 은 5KHz 의주기로인터럽트가발생되어, 인터럽트서비스루틴이동작된다. 따라서 global 변수로서 interrupt counter 변수를정의한후, 이변수를적절히사용하여위의주파수를갖는구형파를발생시켜오실로스코프로확인한다.

28 실험 3: AD 변환값저장 함수발생기로부터주파수가 10 Hz 인정현파를발생시켜서이를 AD converter 로입력한후, 0.1 초구간동안 (500 sample, 정현파 1 주기 ) 의입력값을저장한후, 이를 plotting 하여정현파의그래프가그려짐을확인한다. 이때 AD converter 로입력된데이터를저장하기위해서는저장하려는데이터의갯수만큼 global 변수 array 로서정의한후, Interrupt Service Thread 내에서 AD converter 입력값을변수에저장하고, 이변수 array 가모두채워지면, 파일에저장하도록한다. Interrupt Service Thread 내에서는파일저장을수행해서는안된다.

29 실험 3: AD 변환값저장 File save 를위한별도의 Thread 생성 File save thread 는 IST 보다낮은 priority 가짐 IST 에서는실시간으로변수에값을저장하고, 변수의저장이완료되면 flag 를 set 함. File save thread 에서는변수의저장이완료됨을알리는 flag 가 set 되는것을기다림. 변수의저장이완료되면 file 에 save 하고 file 을 close 함.

30 Digitization

31 Digitization

32 Digitization ZOH(zero order hold)

33 Laplace Transforms Laplace Transform st L[ f()] t = F() s = f() t e dt L[ f ( t)] = sf( s) yt () + ayt () + byt () = ut () 0 () + () + () = () 2 s Y s asy s by s U s Gs () Y() s 1 = = () U s s as b

34 z-transform z-transform Z [ f( k)] = F( z) = f( k) z Z = k = 0 1 [ f( k 1)] z F( z) k

35 z-transform yk ( ) = ayk ( 1) ayk ( 2) + buk ( ) + buk ( 1) + buk ( 2) Y( z) = a z Y( z) a z Y( z) + bu( z) + bz U( z) + b z U( z) Y( z) b + bz + bz = U( z) 1 + az + az

36 z-transform example 1 k 0 ek ( ) = 0 k < z 1 Ez ( ) = 1 + z + z + = =, z < z z 1 a k k 0 ek ( ) = 0 k < z 1 E( z) = 1 + az + a z + = =, az < az z a

37 Inverse z-tranform z Ez ( ) = ( z 1)( z 2) Ez ( ) = = + z ( z 1)( z 2) z 1 z 2 z z Ez ( ) = + z 1 z 2 k ek ( ) = 1+ 2, k 0

38 System Response yk ( ) = ayk ( 1) + uk ( ) Y z = az Y z + U z 1 ( ) ( ) ( ) Y( z) 1 z Gz ( ) = = = ( ) 1 z U( z) = z 1 z z Y( z) = G( zu ) ( z) = z az 1 1 U z az z a

39 System Response Y( z) z a/( a 1) 1/(1 a) = = + z ( z a)( z 1) z a z 1 za /( a 1) z /(1 a) Y( z) = + z a z 1 1 a k yk ( ) = + a, k 0 1 a a 1

40 Relationship Between s and z at f() t = e, t 0 1 F() s = pole : s = a s+ a akt f ( kt ) = e, k 0 Z [ f( k)] 1 e z e z at 1 a2t 2 = z = = pole : z = at 1 at 1 e z z e e at z = e st

41 Relationship Between s and z s = jω jωt z = e = cos( ωt) + jsin( ωt) = 1 ( ωt) ωs 2π fs π ω = = = ωt = π 2 2 T

42 Relationship Between s and z

43 Relationship Between s and z

44 Relationship Between s and z

45 Continuous System

46

Digital Control System

Digital Control System Digital Control System Digital Computer Command + Controller D/A Control Signal Plant A/D T Sampler Sensor Digital Controller Design Design by Emulation-Approximation Euler s Method Tustin s Method Discrete

More information

Interrupts and Time. Real-Time Systems, Lecture 5. Martina Maggio 28 January Lund University, Department of Automatic Control

Interrupts and Time. Real-Time Systems, Lecture 5. Martina Maggio 28 January Lund University, Department of Automatic Control Interrupts and Time Real-Time Systems, Lecture 5 Martina Maggio 28 January 2016 Lund University, Department of Automatic Control Content [Real-Time Control System: Chapter 5] 1. Interrupts 2. Clock Interrupts

More information

Interrupts and Time. Interrupts. Content. Real-Time Systems, Lecture 5. External Communication. Interrupts. Interrupts

Interrupts and Time. Interrupts. Content. Real-Time Systems, Lecture 5. External Communication. Interrupts. Interrupts Content Interrupts and Time Real-Time Systems, Lecture 5 [Real-Time Control System: Chapter 5] 1. Interrupts 2. Clock Interrupts Martina Maggio 25 January 2017 Lund University, Department of Automatic

More information

Interrupt/Timer/DMA 1

Interrupt/Timer/DMA 1 Interrupt/Timer/DMA 1 Exception An exception is any condition that needs to halt normal execution of the instructions Examples - Reset - HWI - SWI 2 Interrupt Hardware interrupt Software interrupt Trap

More information

Process Scheduling Queues

Process Scheduling Queues Process Control Process Scheduling Queues Job queue set of all processes in the system. Ready queue set of all processes residing in main memory, ready and waiting to execute. Device queues set of processes

More information

Grundlagen Microcontroller Interrupts. Günther Gridling Bettina Weiss

Grundlagen Microcontroller Interrupts. Günther Gridling Bettina Weiss Grundlagen Microcontroller Interrupts Günther Gridling Bettina Weiss 1 Interrupts Lecture Overview Definition Sources ISR Priorities & Nesting 2 Definition Interrupt: reaction to (asynchronous) external

More information

In Class Assignment 2

In Class Assignment 2 In Class Assignment 2 Name: UMBC ID: Academic Integrity Statement: "Integrity of scholarship is essential for an academic community. The University expects that students will honor this. By signing this,

More information

Bare Metal Application Design, Interrupts & Timers

Bare Metal Application Design, Interrupts & Timers Topics 1) How does hardware notify software of an event? Bare Metal Application Design, Interrupts & Timers 2) What architectural design is used for bare metal? 3) How can we get accurate timing? 4) How

More information

Micrium µc/os II RTOS Introduction EE J. E. Lumpp

Micrium µc/os II RTOS Introduction EE J. E. Lumpp Micrium µc/os II RTOS Introduction (by Jean Labrosse) EE599 001 Fall 2012 J. E. Lumpp μc/os II μc/os II is a highly portable, ROMable, very scalable, preemptive real time, deterministic, multitasking kernel

More information

ADSmartIO Driver Specification for Windows CE

ADSmartIO Driver Specification for Windows CE Version: 1.0 ADS document #110110-4004A Last Saved: 12/21/00 2:51 PM Applied Data Systems Inc. 9140 Guilford Road, Columbia, MD 21046 301-490-4007 Driver Change Log Version Release # Date By Changes Draft

More information

EE Embedded Systems Design. Lessons Exceptions - Resets and Interrupts

EE Embedded Systems Design. Lessons Exceptions - Resets and Interrupts EE4800-03 Embedded Systems Design Lessons 7-10 - Exceptions - Resets and Interrupts 1 - Exceptions - Resets and Interrupts Polling vs. Interrupts Exceptions: Resets and Interrupts 68HC12 Exceptions Resets

More information

By the end of Class. Outline. Homework 5. C8051F020 Block Diagram (pg 18) Pseudo-code for Lab 1-2 due as part of prelab

By the end of Class. Outline. Homework 5. C8051F020 Block Diagram (pg 18) Pseudo-code for Lab 1-2 due as part of prelab By the end of Class Pseudo-code for Lab 1-2 due as part of prelab Homework #5 on website due before next class Outline Introduce Lab 1-2 Counting Timers on C8051 Interrupts Laboratory Worksheet #05 Copy

More information

Distributed Real-Time Control Systems. Chapter 10 Real-Time Digital Control

Distributed Real-Time Control Systems. Chapter 10 Real-Time Digital Control Distributed Real-Time Control Systems Chapter 10 Real-Time Digital Control 1 Real-Time Digital Control Hardware Digital Controllers are usually designed as periodic tasks with fixed period and synchronized

More information

Course Introduction. Purpose: Objectives: Content: 27 pages 4 questions. Learning Time: 20 minutes

Course Introduction. Purpose: Objectives: Content: 27 pages 4 questions. Learning Time: 20 minutes Course Introduction Purpose: This course provides an overview of the Direct Memory Access Controller and the Interrupt Controller on the SH-2 and SH-2A families of 32-bit RISC microcontrollers, which are

More information

SOFTWARE ARCHITECT MICROSOFT CORPORATION BLOGS.MSDN.COM/MIKEHALL

SOFTWARE ARCHITECT MICROSOFT CORPORATION BLOGS.MSDN.COM/MIKEHALL MIKE HALL SOFTWARE ARCHITECT MICROSOFT CORPORATION MIKEHALL@MICROSOFT.COM BLOGS.MSDN.COM/MIKEHALL Windows CE Backgrounder Windows Embedded CE Architecture Real-Time Architecture Tools and Application Development

More information

Homework / Exam. Return and Review Exam #1 Reading. Machine Projects. Labs. S&S Extracts , PIC Data Sheet. Start on mp3 (Due Class 19)

Homework / Exam. Return and Review Exam #1 Reading. Machine Projects. Labs. S&S Extracts , PIC Data Sheet. Start on mp3 (Due Class 19) Homework / Exam Return and Review Exam #1 Reading S&S Extracts 385-393, PIC Data Sheet Machine Projects Start on mp3 (Due Class 19) Labs Continue in labs with your assigned section 1 Interrupts An interrupt

More information

+ Overview. Projects: Developing an OS Kernel for x86. ! Handling Intel Processor Exceptions: the Interrupt Descriptor Table (IDT)

+ Overview. Projects: Developing an OS Kernel for x86. ! Handling Intel Processor Exceptions: the Interrupt Descriptor Table (IDT) + Projects: Developing an OS Kernel for x86 Low-Level x86 Programming: Exceptions, Interrupts, and Timers + Overview! Handling Intel Processor Exceptions: the Interrupt Descriptor Table (IDT)! Handling

More information

Using programmed I/O on the M16C; and Writing an Interrupt Service Routine (ISR)

Using programmed I/O on the M16C; and Writing an Interrupt Service Routine (ISR) Tutorial 2 Basic M16C Programming 1 Introduction The goal for Tutorial 2 is to take a more in-depth look at the sample program from the previous tutorial, and make use of it as a foundation for writing

More information

Profiling FlashFX Disk Performance Christopher Tacke, emvp Windows CE Product Manager, Applied Data Systems Columbia, Maryland April 23, 2002

Profiling FlashFX Disk Performance Christopher Tacke, emvp Windows CE Product Manager, Applied Data Systems Columbia, Maryland April 23, 2002 Profiling FlashFX Disk Performance Christopher Tacke, emvp Windows CE Product Manager, Applied Data Systems Columbia, Maryland April 23, 2002 Abstract With embedded systems, just like most any information

More information

EEL 4744C: Microprocessor Applications. Lecture 7. Part 1. Interrupt. Dr. Tao Li 1

EEL 4744C: Microprocessor Applications. Lecture 7. Part 1. Interrupt. Dr. Tao Li 1 EEL 4744C: Microprocessor Applications Lecture 7 Part 1 Interrupt Dr. Tao Li 1 M&M: Chapter 8 Or Reading Assignment Software and Hardware Engineering (new version): Chapter 12 Dr. Tao Li 2 Interrupt An

More information

Reading Assignment. Interrupt. Interrupt. Interrupt. EEL 4744C: Microprocessor Applications. Lecture 7. Part 1

Reading Assignment. Interrupt. Interrupt. Interrupt. EEL 4744C: Microprocessor Applications. Lecture 7. Part 1 Reading Assignment EEL 4744C: Microprocessor Applications Lecture 7 M&M: Chapter 8 Or Software and Hardware Engineering (new version): Chapter 12 Part 1 Interrupt Dr. Tao Li 1 Dr. Tao Li 2 Interrupt An

More information

Application Note One Wire Digital Output. 1 Introduction. 2 Electrical Parameters for One Wire Interface. 3 Start and Data Transmission

Application Note One Wire Digital Output. 1 Introduction. 2 Electrical Parameters for One Wire Interface. 3 Start and Data Transmission Application Note One Wire Digital Output 1 Introduction The pressure transmitter automatically outputs pressure data, and when appropriate temperature data, in a fixed interval. The host simply waits for

More information

Distributed Real- Time Control Systems. Lecture 7 Real- Time Control

Distributed Real- Time Control Systems. Lecture 7 Real- Time Control Distributed Real- Time Control Systems Lecture 7 Real- Time Control 1 Real- Time Digital Control Hardware Digital Controllers are usually designed as periodic tasks with fixed period and synchronizeda/d-

More information

Asynchronous Events on Linux

Asynchronous Events on Linux Asynchronous Events on Linux Frederic.Rossi@Ericsson.CA Open System Lab Systems Research June 25, 2002 Ericsson Research Canada Introduction Linux performs well as a general purpose OS but doesn t satisfy

More information

Nios II. uc/os-ii porting with Nios II Altera Corporation

Nios II. uc/os-ii porting with Nios II Altera Corporation Nios II uc/os-ii porting with Nios II 2002 2 µc/os-ii Main Features Portable (Most 8, 16, 32 and 64 bit CPUs) ROMable Scalable Preemptive Real-Time Deterministic High Performance Multitasking Robust Provides

More information

Windows Interrupts

Windows Interrupts Windows 2000 - Interrupts Ausgewählte Betriebssysteme Institut Betriebssysteme Fakultät Informatik 1 Interrupts Software and Hardware Interrupts and Exceptions Kernel installs interrupt trap handlers Interrupt

More information

Interrupts. How can we synchronize with a peripheral? Polling

Interrupts. How can we synchronize with a peripheral? Polling Interrupts How can we synchronize with a peripheral? Polling run a program loop continually checking status of the peripheral wait for it to be ready for us to communicate with it Then handle I/O with

More information

Interrupt vectors for the 68HC912B32. The interrupt vectors for the MC9S12DP256 are located in memory from 0xFF80 to 0xFFFF.

Interrupt vectors for the 68HC912B32. The interrupt vectors for the MC9S12DP256 are located in memory from 0xFF80 to 0xFFFF. Interrupts The Real Time Interrupt Interrupt vectors for the 68HC912B32 The interrupt vectors for the MC9S12DP256 are located in memory from 0xFF80 to 0xFFFF. These vectors are programmed into Flash EEPROM

More information

PC Interrupt Structure and 8259 DMA Controllers

PC Interrupt Structure and 8259 DMA Controllers ELEC 379 : DESIGN OF DIGITAL AND MICROCOMPUTER SYSTEMS 1998/99 WINTER SESSION, TERM 2 PC Interrupt Structure and 8259 DMA Controllers This lecture covers the use of interrupts and the vectored interrupt

More information

LEGO RCX Hitachi H8/3292

LEGO RCX Hitachi H8/3292 LEGO RCX Hitachi H8/3292 LISHA/UFSC Fauze Valério Polpeta Prof. Dr. Antônio Augusto Fröhlich {fauze guto}@lisha.ufsc.br http://www.lisha.ufsc.br/~{fauze guto} March 2003 March 2003 http://www.lisha.ufsc.br

More information

LSN 4 GUI Programming Using The WIN32 API

LSN 4 GUI Programming Using The WIN32 API LSN 4 GUI Programming Using The WIN32 API ECT362 Operating Systems Department of Engineering Technology LSN 4 Why program GUIs? This application will help introduce you to using the Win32 API Gain familiarity

More information

PMC-DA Channel 16 Bit D/A for PMC Systems REFERENCE MANUAL Version 1.0 June 2001

PMC-DA Channel 16 Bit D/A for PMC Systems REFERENCE MANUAL Version 1.0 June 2001 PMC-DA816 8 Channel 16 Bit D/A for PMC Systems REFERENCE MANUAL 796-10-000-4000 Version 1.0 June 2001 ALPHI TECHNOLOGY CORPORATION 6202 S. Maple Avenue #120 Tempe, AZ 85283 USA Tel: (480) 838-2428 Fax:

More information

Final Examination. Thursday, December 3, :20PM 620 PM. NAME: Solutions to Selected Problems ID:

Final Examination. Thursday, December 3, :20PM 620 PM. NAME: Solutions to Selected Problems ID: CSE 237B EMBEDDED SOFTWARE, FALL 2009 PROF. RAJESH GUPTA Final Examination Thursday, December 3, 2009 5:20PM 620 PM NAME: Solutions to Selected Problems ID: Problem Max. Points Points 1 20 2 25 3 35 4

More information

Real-Time Systems / Real-Time Operating Systems EE445M/EE380L.6, Spring 2015

Real-Time Systems / Real-Time Operating Systems EE445M/EE380L.6, Spring 2015 The University of Texas at Austin Department of Electrical and Computer Engineering Real-Time Systems / Real-Time Operating Systems EE445M/EE380L.6, Spring 2015 Final Exam Solutions Date: May 14, 2015

More information

IP-48DAC channel 16-bit Digital/Analog Converter With memory Industry Pack Module PROGRAMMING MANUAL Version 1.

IP-48DAC channel 16-bit Digital/Analog Converter With memory Industry Pack Module PROGRAMMING MANUAL Version 1. IP-48DAC-16 48-channel 16-bit Digital/Analog Converter With memory Industry Pack Module PROGRAMMING MANUAL 828-10-000-4000 Version 1.0 January 2007 ALPHI TECHNOLOGY CORPORATION 1898 E. Southern Ave Tempe,

More information

Computer Labs: I/O and Interrupts

Computer Labs: I/O and Interrupts Computer Labs: I/O and Interrupts 2 o MIEIC Pedro F. Souto (pfs@fe.up.pt) October 3, 2010 I/O Operation I/O devices are the interface between the computer and its environment Most of the time, the processor

More information

MP Assignment III. 1. An 8255A installed in a system has system base address E0D0H.

MP Assignment III. 1. An 8255A installed in a system has system base address E0D0H. MP Assignment III 1. An 8255A installed in a system has system base address E0D0H. i) Calculate the system addresses for the three ports and control register for this 8255A. System base address = E0D0H

More information

What happens when an HC12 gets in unmasked interrupt:

What happens when an HC12 gets in unmasked interrupt: What happens when an HC12 gets in unmasked interrupt: 1. Completes current instruction 2. Clears instruction queue 3. Calculates return address 4. Stacks return address and contents of CPU registers 5.

More information

INTERRUPT MANAGEMENT An interrupt is a hardware mechanism used to service an event that can be external or internal to

INTERRUPT MANAGEMENT An interrupt is a hardware mechanism used to service an event that can be external or internal to CHAPTER 2 ucosiii Page 1 ENGG4420 CHAPTER 2 LECTURE 5 October 22 12 3:28 PM INTERRUPT MANAGEMENT An interrupt is a hardware mechanism used to service an event that can be external or internal to the CPU.

More information

EE458 - Embedded Systems Lecture 8 Semaphores

EE458 - Embedded Systems Lecture 8 Semaphores EE458 - Embedded Systems Lecture 8 Semaphores Outline Introduction to Semaphores Binary and Counting Semaphores Mutexes Typical Applications RTEMS Semaphores References RTC: Chapter 6 CUG: Chapter 9 1

More information

Process Coordination and Shared Data

Process Coordination and Shared Data Process Coordination and Shared Data Lecture 19 In These Notes... Sharing data safely When multiple threads/processes interact in a system, new species of bugs arise 1. Compiler tries to save time by not

More information

Interrupts. Embedded Systems Interfacing. 08 September 2011

Interrupts. Embedded Systems Interfacing. 08 September 2011 08 September 2011 An iterrupt is an internal or external event that forces a hardware call to a specified function called an interrupt service routine Interrupt enable must be set (initialization) The

More information

Mobile Operating Systems Lesson 01 Operating System

Mobile Operating Systems Lesson 01 Operating System Mobile Operating Systems Lesson 01 Operating System Oxford University Press 2007. All rights reserved. 1 Operating system (OS) The master control program Manages all software and hardware resources Controls,

More information

Process & Thread Management II. Queues. Sleep() and Sleep Queues CIS 657

Process & Thread Management II. Queues. Sleep() and Sleep Queues CIS 657 Process & Thread Management II CIS 657 Queues Run queues: hold threads ready to execute Not a single ready queue; 64 queues All threads in same queue are treated as same priority Sleep queues: hold threads

More information

Process & Thread Management II CIS 657

Process & Thread Management II CIS 657 Process & Thread Management II CIS 657 Queues Run queues: hold threads ready to execute Not a single ready queue; 64 queues All threads in same queue are treated as same priority Sleep queues: hold threads

More information

Types of Interrupts:

Types of Interrupts: Interrupt structure Introduction Interrupt is signals send by an external device to the processor, to request the processor to perform a particular task or work. Mainly in the microprocessor based system

More information

Programming Embedded Systems

Programming Embedded Systems Programming Embedded Systems Lecture 5 Interrupts, modes of multi-tasking Wednesday Feb 1, 2012 Philipp Rümmer Uppsala University Philipp.Ruemmer@it.uu.se 1/31 Lecture outline Interrupts Internal, external,

More information

APPLICATION NOTE 5306 Programming Baud Rates of the MAX3108 UART

APPLICATION NOTE 5306 Programming Baud Rates of the MAX3108 UART Maxim > Design Support > Technical Documents > Application Notes > Interface Circuits > APP 5306 Keywords: UART, RS232, RS485, SPI, I2C, half duplex, HDX, full duplex, FDX, WLP, wafer level package, FIFO,

More information

COEN-4720 Embedded Systems Design Lecture 4 Interrupts (Part 1) Cristinel Ababei Dept. of Electrical and Computer Engineering Marquette University

COEN-4720 Embedded Systems Design Lecture 4 Interrupts (Part 1) Cristinel Ababei Dept. of Electrical and Computer Engineering Marquette University COEN-4720 Embedded Systems Design Lecture 4 Interrupts (Part 1) Cristinel Ababei Dept. of Electrical and Computer Engineering Marquette University Outline Introduction NVIC and Interrupt Control Interrupt

More information

C Language Programming, Interrupts and Timer Hardware

C Language Programming, Interrupts and Timer Hardware C Language Programming, Interrupts and Timer Hardware In this sequence of three labs, you will learn how to write simple C language programs for the MC9S12 microcontroller, and how to use interrupts and

More information

BASICS OF THE RENESAS SYNERGY TM

BASICS OF THE RENESAS SYNERGY TM BASICS OF THE RENESAS SYNERGY TM PLATFORM Richard Oed 2018.11 02 CHAPTER 9 INCLUDING A REAL-TIME OPERATING SYSTEM CONTENTS 9 INCLUDING A REAL-TIME OPERATING SYSTEM 03 9.1 Threads, Semaphores and Queues

More information

Introduction to the MC9S12 Hardware Subsystems

Introduction to the MC9S12 Hardware Subsystems Setting and clearing bits in C Using pointers in C o Program to count the number of negative numbers in an area of memory Introduction to the MC9S12 Hardware Subsystems o The MC9S12 timer subsystem Operators

More information

PROCESS SCHEDULING II. CS124 Operating Systems Fall , Lecture 13

PROCESS SCHEDULING II. CS124 Operating Systems Fall , Lecture 13 PROCESS SCHEDULING II CS124 Operating Systems Fall 2017-2018, Lecture 13 2 Real-Time Systems Increasingly common to have systems with real-time scheduling requirements Real-time systems are driven by specific

More information

INTERRUPTS in microprocessor systems

INTERRUPTS in microprocessor systems INTERRUPTS in microprocessor systems Microcontroller Power Supply clock fx (Central Proccesor Unit) CPU Reset Hardware Interrupts system IRQ Internal address bus Internal data bus Internal control bus

More information

Instruction Set Architecture of MIPS Processor

Instruction Set Architecture of MIPS Processor CSE 3421/5421: Introduction to Computer Architecture Instruction Set Architecture of MIPS Processor Presentation B Study: 2.1 2.3, 2.4 2.7, 2.10 and Handout MIPS Instructions: 32-bit Core Subset Read:

More information

CS 550 Operating Systems Spring Interrupt

CS 550 Operating Systems Spring Interrupt CS 550 Operating Systems Spring 2019 Interrupt 1 Revisit -- Process MAX Stack Function Call Arguments, Return Address, Return Values Kernel data segment Kernel text segment Stack fork() exec() Heap Data

More information

EE 354 Fall 2013 Lecture 9 The Sampling Process and Evaluation of Difference Equations

EE 354 Fall 2013 Lecture 9 The Sampling Process and Evaluation of Difference Equations EE 354 Fall 2013 Lecture 9 The Sampling Process and Evaluation of Difference Equations Digital Signal Processing (DSP) is centered around the idea that you can convert an analog signal to a digital signal

More information

Chapter 3 Process Description and Control

Chapter 3 Process Description and Control Operating Systems: Internals and Design Principles Chapter 3 Process Description and Control Seventh Edition By William Stallings Process Control Block Structure of Process Images in Virtual Memory How

More information

EECS 373 Midterm 2 Fall 2018

EECS 373 Midterm 2 Fall 2018 EECS 373 Midterm 2 Fall 2018 Name: unique name: Sign the honor code: I have neither given nor received aid on this exam nor observed anyone else doing so. Nor did I discuss this exam with anyone after

More information

Quadros. RTXC Kernel Services Reference, Volume 1. Levels, Threads, Exceptions, Pipes, Event Sources, Counters, and Alarms. Systems Inc.

Quadros. RTXC Kernel Services Reference, Volume 1. Levels, Threads, Exceptions, Pipes, Event Sources, Counters, and Alarms. Systems Inc. Quadros Systems Inc. RTXC Kernel Services Reference, Volume 1 Levels, Threads, Exceptions, Pipes, Event Sources, Counters, and Alarms Disclaimer Quadros Systems, Inc. makes no representations or warranties

More information

Efficiency and memory footprint of Xilkernel for the Microblaze soft processor

Efficiency and memory footprint of Xilkernel for the Microblaze soft processor Efficiency and memory footprint of Xilkernel for the Microblaze soft processor Dariusz Caban, Institute of Informatics, Gliwice, Poland - June 18, 2014 The use of a real-time multitasking kernel simplifies

More information

Timers 1 / 46. Jiffies. Potent and Evil Magic

Timers 1 / 46. Jiffies. Potent and Evil Magic Timers 1 / 46 Jiffies Each timer tick, a variable called jiffies is incremented It is thus (roughly) the number of HZ since system boot A 32-bit counter incremented at 1000 Hz wraps around in about 50

More information

BASICS OF THE RENESAS SYNERGY PLATFORM

BASICS OF THE RENESAS SYNERGY PLATFORM BASICS OF THE RENESAS SYNERGY PLATFORM TM Richard Oed 2017.12 02 CHAPTER 9 INCLUDING A REAL-TIME OPERATING SYSTEM CONTENTS 9 INCLUDING A REAL-TIME OPERATING SYSTEM 03 9.1 Threads, Semaphores and Queues

More information

Mark Redekopp, All rights reserved. EE 357 Unit 10b. Interrupts Timers

Mark Redekopp, All rights reserved. EE 357 Unit 10b. Interrupts Timers EE 357 Unit 10b Interrupts Timers IPL bits Coldfire / M68K Interrupts Coldfire interrupt architecture is based on original M68K 3-bit input (IPL[2:0]) indicating interrupt requests/priorities 000 = No

More information

Real-Time Systems. Exam June 3rd, 2017, hours: 08:00 13:00

Real-Time Systems. Exam June 3rd, 2017, hours: 08:00 13:00 Department of AUTOMATIC CONTROL Real-Time Systems Exam June 3rd, 2017, hours: 08:00 13:00 Points and grades All answers must include a clear motivation and a well-formulated answer. Answers may be given

More information

Design UART Loopback with Interrupts

Design UART Loopback with Interrupts Once the E is displayed, will the 0 reappear if you return the DIP switch to its OFF position and re-establish the loopback path? Usually not. When you break the loopback path, it will most likely truncate

More information

Task Based Programming Revisited Real Time Operating Systems

Task Based Programming Revisited Real Time Operating Systems ECE3411 Fall 2016 Lecture 6a. Task Based Programming Revisited Real Time Operating Systems Marten van Dijk, Syed Kamran Haider Department of Electrical & Computer Engineering University of Connecticut

More information

GLOSSARY. VisualDSP++ Kernel (VDK) User s Guide B-1

GLOSSARY. VisualDSP++ Kernel (VDK) User s Guide B-1 B GLOSSARY Application Programming Interface (API) A library of C/C++ functions and assembly macros that define VDK services. These services are essential for kernel-based application programs. The services

More information

Embedded Systems. October 2, 2017

Embedded Systems. October 2, 2017 15-348 Embedded Systems October 2, 2017 Announcements Read pages 267 275 The Plan! Timers and Counter Interrupts A little review of timers How do we keep track of seconds using a timer? We have several

More information

real-time kernel documentation

real-time kernel documentation version 1.1 real-time kernel documentation Introduction This document explains the inner workings of the Helium real-time kernel. It is not meant to be a user s guide. Instead, this document explains overall

More information

Benchmarking Real-time Determinism in Windows CE

Benchmarking Real-time Determinism in Windows CE Chris Tacke, emvp CE Product Manager, Applied Data Systems Lawrence Ricci, emvp Business Development Manager, Applied Data Systems Copyright 2002 Page 1 6/3/2002 Abstract The real time or deterministic

More information

Microprocessors & Interfacing

Microprocessors & Interfacing Lecture Overview Microprocessors & Interfacing Interrupts (I) Lecturer : Dr. Annie Guo Introduction to Interrupts Interrupt system specifications Multiple sources of interrupts Interrupt priorities Interrupts

More information

Design and Implementation Interrupt Mechanism

Design and Implementation Interrupt Mechanism Design and Implementation Interrupt Mechanism 1 Module Overview Study processor interruption; Design and implement of an interrupt mechanism which responds to interrupts from timer and UART; Program interrupt

More information

original M68K requests/priorities Interrupts to execute important code interrupts (n will always be I) I-bits bits in SR accomplish this

original M68K requests/priorities Interrupts to execute important code interrupts (n will always be I) I-bits bits in SR accomplish this Coldfire / M68K Interrupts EE 5 Unit 1b Interrupts Timers Coldfire interrupt architecture is based on original M68K -bit input (IPL[2:]) indicating interrupt requests/priorities = No interrupt t 1-111

More information

Roadmap for This Lecture

Roadmap for This Lecture Thread Scheduling 1 Roadmap for This Lecture Overview Priorities Scheduling States Scheduling Data Structures Quantum Scheduling Scenarios Priority Adjustments (boosts and decays) Multiprocessor Scheduling

More information

Interrupts (I) Lecturer: Sri Notes by Annie Guo. Week8 1

Interrupts (I) Lecturer: Sri Notes by Annie Guo. Week8 1 Interrupts (I) Lecturer: Sri Notes by Annie Guo Week8 1 Lecture overview Introduction to Interrupts Interrupt system specifications Multiple Sources of Interrupts Interrupt Priorities Interrupts in AVR

More information

Developer Documentation

Developer Documentation Developer Documentation Development of Scanner Applications for ACD Windows CE Second Edition Devices Version: 3.0 Copyright ACD Gruppe This document may not be duplicated or made accessible to third parties

More information

Timer 32. Last updated 8/7/18

Timer 32. Last updated 8/7/18 Last updated 8/7/18 Basic Timer Function Delay Counter Load a value into a counter register The counter counts Down to zero (count down timer) Up from zero (count up timer) An action is triggered when

More information

CprE 288 Spring 2014 Homework 5 Due Fri. Feb. 21

CprE 288 Spring 2014 Homework 5 Due Fri. Feb. 21 CprE 288 Spring 2014 Homework 5 Due Fri. Feb. 21 Notes: Homework answers must be typed using a word editor. Homework is individual work. Adhere to the University s policy relating to the integrity of scholarship.

More information

I2C on the HMC6352 Compass

I2C on the HMC6352 Compass I 2 C Bus The I 2 C bus is a two-wire bus(plus ground) where the two wire are called SCL Clock line SDA Data line Gnd Ground line This is a synchronous bus. SCL is the synchronizing signal. SCL and SDA

More information

Designing Responsive and Real-Time Systems

Designing Responsive and Real-Time Systems Designing Responsive and Real-Time Systems Chapter 10 Renesas Electronics America Inc. Embedded Systems using the RX63N Rev. 1.0 00000-A Learning Objectives Most Embedded Systems have multiple real time

More information

Module Introduction. PURPOSE: The intent of this module is to explain MCU processing of reset and interrupt exception events.

Module Introduction. PURPOSE: The intent of this module is to explain MCU processing of reset and interrupt exception events. Module Introduction PURPOSE: The intent of this module is to explain MCU processing of reset and interrupt exception events. OBJECTIVES: - Describe the difference between resets and interrupts. - Identify

More information

8051 Timers and Serial Port

8051 Timers and Serial Port 8051 Timers and Serial Port EE4380 Fall 2001 Class 10 Pari vallal Kannan Center for Integrated Circuits and Systems University of Texas at Dallas Timer: Mode 1 Operation (recap) 16 bit counter. Load the

More information

Model Based Development of Embedded Control Software

Model Based Development of Embedded Control Software Model Based Development of Embedded Control Software Part 5: Portable TDL Run-time System Claudiu Farcas Credits: MoDECS Project Team, Giotto Department of Computer Science cs.uni-salzburg.at Contents

More information

12.1. Unit 12. Exceptions & Interrupts

12.1. Unit 12. Exceptions & Interrupts 12.1 Unit 12 Exceptions & Interrupts 12.2 Disclaimer 1 This is just an introduction to the topic of interrupts. You are not meant to master these right now but just start to use them We will cover more

More information

EE4390 Microprocessors

EE4390 Microprocessors EE4390 Microprocessors Lessons 23, 24 - Exceptions - Resets and Interrupts Revised: Aug 1, 2003 1 - Exceptions - Resets and Interrupts Polling vs. Interrupts Exceptions: Resets and Interrupts 68HC12 Exceptions

More information

W90N745. System Library. User's Manual

W90N745. System Library. User's Manual W90N745 System Library User's Manual - 1 - Publication Release Date: 06/14/2006 This page intentionally left blank. Publication Release Date: 06/14/2006-2 - CONTENTS W90N745 Supported C Library Functions

More information

AN HONORS UNIVERSITY IN MARYLAND UMBC. AvrX. Yousef Ebrahimi Professor Ryan Robucci

AN HONORS UNIVERSITY IN MARYLAND UMBC. AvrX.   Yousef Ebrahimi Professor Ryan Robucci AvrX https://github.com/kororos/avrx Yousef Ebrahimi Professor Ryan Robucci Introduction AvrX is a Real Time Multitasking Kernel written for the Atmel AVR series of micro controllers. The Kernel is written

More information

Installation & Reference Guide

Installation & Reference Guide Installation & Reference Guide DOC. REV. 7/31/2015 VersaAPI VersaLogic Application Programming Interface WWW.VERSALOGIC.COM 12100 SW Tualatin Road Tualatin, OR 97062-7341 (503) 747-2261 Fax (971) 224-4708

More information

Interrupts and Low Power Features

Interrupts and Low Power Features ARM University Program 1 Copyright ARM Ltd 2013 Interrupts and Low Power Features Module Syllabus Interrupts What are interrupts? Why use interrupts? Interrupts Entering an Exception Handler Exiting an

More information

UNIT - II PERIPHERAL INTERFACING WITH 8085

UNIT - II PERIPHERAL INTERFACING WITH 8085 UNIT - II PERIPHERAL INTERFACING WITH 8085 Peripheral Interfacing is considered to be a main part of Microprocessor, as it is the only way to interact with the external world. The interfacing happens with

More information

Marten van Dijk, Syed Kamran Haider

Marten van Dijk, Syed Kamran Haider ECE3411 Fall 2015 Wrap Up Review Session Marten van Dijk, Syed Kamran Haider Department of Electrical & Computer Engineering University of Connecticut Email: vandijk, syed.haider@engr.uconn.edu Pulse Width

More information

4) In response to the the 8259A sets the highest priority ISR, bit and reset the corresponding IRR bit. The 8259A also places

4) In response to the the 8259A sets the highest priority ISR, bit and reset the corresponding IRR bit. The 8259A also places Lecture-52 Interrupt sequence: The powerful features of the 8259A in a system are its programmability and the interrupt routine address capability. It allows direct or indirect jumping to the specific

More information

Homework. Reading. Machine Projects. Labs. Intel 8254 Programmable Interval Timer (PIT) Data Sheet. Continue on MP3

Homework. Reading. Machine Projects. Labs. Intel 8254 Programmable Interval Timer (PIT) Data Sheet. Continue on MP3 Homework Reading Intel 8254 Programmable Interval Timer (PIT) Data Sheet Machine Projects Continue on MP3 Labs Continue in labs with your assigned section 1 Restrictions on ISR Code Software that was executing

More information

EE 472 Embedded Systems. Name solutions. Instructions:

EE 472 Embedded Systems. Name solutions. Instructions: Name solutions Instructions: Write your name and student id on every page. You may not consult any other materials or anyone in the class. If you are unsure of what a question is asking, write your assumptions

More information

2. (2 pts) If an external clock is used, which pin of the 8051 should it be connected to?

2. (2 pts) If an external clock is used, which pin of the 8051 should it be connected to? ECE3710 Exam 2. Name _ Spring 2013. 5 pages. 102 points, but scored out of 100. You may use any non-living resource to complete this exam. Any hint of cheating will result in a 0. Part 1 Short Answer 1.

More information

Operating Systems 2010/2011

Operating Systems 2010/2011 Operating Systems 2010/2011 Input/Output Systems part 1 (ch13) Shudong Chen 1 Objectives Discuss the principles of I/O hardware and its complexity Explore the structure of an operating system s I/O subsystem

More information

Real Time Embedded Systems. Lecture 10 January 31, 2012 Interrupts

Real Time Embedded Systems.  Lecture 10 January 31, 2012 Interrupts Interrupts Real Time Embedded Systems www.atomicrhubarb.com/embedded Lecture 10 January 31, 2012 Interrupts Section Topic Where in the books Catsoulis chapter 1 (pg 10-12) Simon chapter4 Zilog UM197 (ZNEO

More information

Kernel Interrupt: A Major Overhaul

Kernel Interrupt: A Major Overhaul Kernel Interrupt: A Major Overhaul - APIC Initialization & - Vector Allocation Dou Liyang douly.fnst@cn.fujitsu.com June 20 2018 Copyright 2018 FUJITSU LIMITED Outline Basics of an interrupt What's next?

More information