COMP3221: Microprocessors and Embedded Systems - PowerPoint PPT Presentation

About This Presentation
Title:

COMP3221: Microprocessors and Embedded Systems

Description:

Different exam papers for undergraduate and postgraduate students. ... It uses a 2*2 keypad to get the input from the user and requires that any ... – PowerPoint PPT presentation

Number of Views:57
Avg rating:3.0/5.0
Slides: 25
Provided by: huiw
Category:

less

Transcript and Presenter's Notes

Title: COMP3221: Microprocessors and Embedded Systems


1
COMP3221 Microprocessors and Embedded Systems
  • Final Exam
  • http//www.cse.unsw.edu.au/cs3221
  • Lecturer Hui Wu
  • Session 1, 2005

2
Final Exam
  • 3 hours.
  • Open book.
  • No calculator is allowed.
  • 50 of the total marks.
  • Lab 25
  • Assignment1 10
  • Assignment 2 15
  • Different exam papers for undergraduate and
    postgraduate students.

3
Scope of Final Exam
Topics Covered
  • All topics, excluding Serial Communication and
    Memory Systems.

4
Structure of Final Exam
Four Questions
  • Question 1 Basic Concepts (20 marks)
  • 10 PARTs.
  • Question 2 Miscellaneous Questions (20 marks)
  • 7 PARTs.
  • Question 3 AVR Assembly Programming (30 marks)
  • 3 PARTs.
  • Question 4 Interrupts and I/O (30 marks)
  • 7 PARTs.

5
Sample PARTs in Question 1
Discuss the advantages of using macros versus
functions. (2 marks)
6
Sample PARTs in Question 1 (Cont.)
Describe how the prioritisation is achieved in
daisy chain interrupts. (2 marks)
7
Sample PARTs in Question 2
Consider a two dimensional integer array A, where
the array element Ax,y is at row x (x ? 0) and
column y (y ? 0). A is stored at 0x0200 in
memory and has 100 rows and 50 columns. The size
of each element is eight bytes. Assume that array
A is stored in memory in row-major order i.e. in
sequential order the elements of row 0 first,
row 1 second and so on. Give a formula for
computing the address of the element Ai,j (0 ?
i ? 99 and 0 ? j ? 49). (3 marks)
8
Sample PARTs in Question 2 (Cont.)
Consider two single precision floating point
numbers x and y in IEEE 754 format, where
x0xC0EE8000 and y0xC1AA4000. What is the
hexadecimal value of the result of xy in IEEE
754 format? (3 marks)
9
Sample PARTs in Question 2 (Cont.)
Consider the following AVR assembly code.  
.set xpc ldi
r20, low(x) ldi r21, high(x)
ldi r30, low(pc)
ldi r31, high(pc) Assume that the address
of the instruction ldi r20, low(x) is 0x0202.
After the above sequence of code is executed,
what are the contents in r20, r21, r30, and r31,
respectively? (3 marks)
10
Sample PARTs in Question 2 (Cont.)
A C program consists of five functions. Their
calling relations are shown as follows (the
arguments and irrelevant C statements are
omitted). int main(void)

func1()
func2()

11
Sample PARTs in Question 2 (Cont.)
int func1()

func1()
int
func2()
func3()
func4()

12
Sample PARTs in Question 2 (Cont.)
func1() is a recursive function and calls itself
15 times for the actual parameters given in
main(). Both func3() and func4() do not call any
function. The sizes of all stack frames are shown
as follows. main() 200
bytes. func1() 100 bytes.
func2() 400 bytes.
func3() 1,400 bytes
func4() 300 bytes Draw the call tree of this
program. (2 marks) How much stack space is needed
to execute this program correctly? (3 marks)

13
Sample PARTs in Question 3
  • Write an AVR assembly program to find the minimum
    value of all array elements in the
    one-dimensional integer array A. Your program
    must satisfy the following requirements.
  • Array A has 10 elements and each element is a
    2-byte signed integer.
  • Each element Ai (i0, 1, , 9) has an initial
    value that is stored in the flash memory. You may
    choose any integer value for each element.
  • Array A is stored contiguously in the SRAM.
  • Your program must define and use at lease one
    MACRO.
  • The minimum value found by your program is
    stored in registers r26r25. (10 marks)

14
Sample PARTs in Question 3 (Cont.)
Consider an embedded system using an AVR Mega64
microcontroller. Assume that Timer/Counter 0
Overflow Interrupt has been set to occur every
200 ms in the main program. Write an interrupt
service routine ISR0 for Timer/Counter 0 Overflow
Interrupt to count the number of hours that has
passed since the embedded system started to
operate. (10 marks)
15
Sample PARTs in Question 3 (Cont.)
Write an AVR assembly program to implement the
following C program. int sum(int n) int
main(void) int n100 sum(n)
return 0
16
Sample PARTs in Question 3 (Cont.)
int sum(int n) if (nlt0) return 0
else return (n sum(n-1)) All local
variables and parameters must be stored in the
stack space. You need to choose a proper size for
n and describe the stack frame structure using a
diagram. (10 marks)
17
Sample PARTs in Question 4
Assume for a processor with a 700 MHz clock it
takes 150 clock cycles for a polling operation
(calling polling routine, accessing the device,
and returning). The overhead for an interrupt
operation is 200 clock cycles. Hard disk
transfers data in 128-byte chunks and can
transfer at 6 M bytes/second rate. If
the processor uses software polling, what
percentage of the processor time is tied up in
polling the hard disk to achieve a data transfer
rate of 6M bytes/second? (4 marks)
18
Sample PARTs in Question 4 (Cont.)
If the processor uses interrupt technique and the
interrupt rate is equal to software polling rate,
what percentage of the processor time is tied up
in servicing interrupt by the hard disk during
the data transfer? (4 marks)
19
Sample PARTs in Question 4 (Cont.)
Consider an embedded system using an AVR mega64
microcontroller. There are 5 interrupting
sources, Int0, Int1, , Int4. The size of the
stack space needed by each interrupt service
routine, denoted also by Inti (i0, 1, , 4) for
simplicity, is shown as follows.
Int0 100 bytes
Int1 50 bytes
Int2 20 bytes
Int3 40 bytes
Int4 50 bytes If no interrupt occurs, the
correct execution of the program needs 1K bytes
of stack space in the worst case.
20
Sample PARTs in Question 4 (Cont.)
If interrupts may occur at any time and each
interrupt service routine does not enable the
Global Interrupt Flag I in the Program Status
Register, how much stack space is needed by the
program in the worst case? (4 marks)
21
Sample PARTs in Question 4 (Cont.)
Assume that an interrupting device generates a
new interrupt request only if its last interrupt
request has been processed i.e. its interrupt
service routine has been finished. If interrupts
may occur at any time and each interrupt service
routine enables the Global Interrupt Flag I in
the Program Status Register at the beginning of
the interrupt service routine, how much stack
space is needed by program in the worst case? (4
marks)
22
Sample PARTs in Question 4 (Cont.)
Consider designing an electronic toy. It uses a
22 keypad to get the input from the user and
requires that any decimal integer number and four
directions (up, down, left and right) be input
via 4 keys. If a straightforward key scanning
approach like the one in our Lab 4 is used, only
4 symbols can be input to the electronic toy,
which does not satisfy the requirement.
23
Sample PARTs in Question 4 (Cont.)
Design an encoding scheme such that all
the required symbols can be represented via 4
keys. (4 marks)
24
Sample PARTs in Question 4 (Cont.)
Describe a key scanning procedure which
implements your encoding scheme using a diagram
or an algorithm. (6 marks)
Write a Comment
User Comments (0)
About PowerShow.com