

Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Instructions for a microprocessor homework assignment focusing on arm architecture, including instruction encoding and decoding, arm7tdmi flags and conditions, addressing modes, jtag scan interface, and conditional instructions. Students are required to complete the keil uvision tutorial before starting the assignment.
Typology: Study Guides, Projects, Research
1 / 3
This page cannot be seen from the preview
Don't miss anything!


Spring 2012 (Morrow) 1
0. Keil uVision Tutorial
Prior to attempting this homework , complete the Keil uVision tutorial. You can find a link to the tutorial on the course web page.
1. (15 points) Instruction Encoding and Decoding a. Determine what the corresponding assembly language instructions are for the binary machine language instructions below, and describe what the instruction will accomplish. Also write the corresponding RTL statement(s) indicating what the instruction does. 0x 229 D7 00 A 0xEA b. For the following code fragment, explain how the instructions/pseudo-instructions are encoded to ARM7 instructions (i.e. identify what the value of each field of the instruction would be similar to chapter A4 of AARM, with a brief rationale for why that value is correct), and what binary value they would be encoded to. SUB R1, R2, #- ItsaLabel LDR R1, =0x LDR R2, =0x ADR R3, ItsaLabel c. Students often write code like the following fragment. Why is this inefficient? Is it ever necessary to MOV an immediate constant into a register to be able to use that value in a data processing instruction (see page A3-9 of AARM for the list of data processing instructions), and if so, when? MOV R7, #0x OR R8, R8, R 2. (5 points) ARM7TDMI Flags and Conditions List the flag bits that are present in the CPSR, and what each represents. What determines whether or not the C bit is updated by any MOV instruction? What determines the value of C when it is updated? 3. (20 points) ARM7TDMI Addressing Modes Using the uVision sample project provided on the web page as a starting point, create a complete ARM program that has the following constants and variables. Do not make any changes to aduc7026.s or exceptions.s. Rename main.s to teamX_hw2p3.s , where X is your homework team number.
ECE 353 Introduction to Microprocessor Systems
Spring 2012 (Morrow) 2
In your program, write code to do the following (in sequence). Determine a reasonably minimal set of instructions to accomplish the required items, being sure to use the required addressing modes. (Deductions will be taken for excessive instructions.) Do not use any branches in your code. You may add constant data to your program in order to store addresses. Do not use any pseudo-instructions. Every instruction that you use must encode to precisely that instruction – check the assembler listing file to be sure.
Comment teamX_hw2p4.s to clearly indicate the sections of code that correspond to each item in the list.
Important: Submit ONLY your program source code file teamX_hw2p3.s using your homework team’s dropbox in Learn@UW. Also, submit a paper copy of teamX hw2p3.s_ with the rest of the assignment.
4. (10 points) JTAG Scan Interface A. Describe the capabilities that having a JTAG scan chain adds to a processor. List the 4 signals that form the basic JTAG interface and describe their functions. What is the TAP controller, and how is it operated?
Refer to IEEE standard 1149.1 You can get that standard at IEEE Xplore going through the Wendt library site, or directly at http://ieeexplore.ieee.org/Xplore/dynhome.jsp. Going through Wendt ensures that you will not have access problems to the IEEE site.)
5. (20 points) Using Conditional Instructions