FAKULTI KEJURUTERAAN ELEKTRIK FAKULTI KEJURUTERAAN ELEKTRIK UNIVERSITI TEKNOLOGI MALAYSIA KAMPUS SKUDAI JOHOR SKEE 3732 MICROPROCESSOR LABORATORY
|
|
- Leonard Ford
- 5 years ago
- Views:
Transcription
1 Fakulti: Nama Matapelajaran: Kod Matapelajaran : SKEE 3732 FAKULTI KEJURUTERAAN ELEKTRIK Semakan Tarikh Keluaran Pindaan Terakhir No. Prosedur : 1 : September 2016 : September 2017 : PKUTMFKE(0)10 FAKULTI KEJURUTERAAN ELEKTRIK UNIVERSITI TEKNOLOGI MALAYSIA KAMPUS SKUDAI JOHOR SKEE 3732 MICROPROCESSOR LABORATORY Laboratory 1: Using the Atmel Studio Prepared by: ZURAIMI BIN YAHYA Approved by : Head of Department Name: Signature & Stamp: Signature & Stamp: Date: Date: SKEE3732 up Laboratory 1 Sheet (Rev ).docx 1
2 I. PRELIMINARY PREPARATION (15 marks) Important Note: You are required to do following BEFORE the lab session. 1. Install Atmel Studio 6.2. You can download from the file AStudio6_2sp2_1563.exe or get a copy from the Microprocessor Laboratory or from the following link under \Software folder. 2. You should also have the following files that can be obtained from the link: a. Atmega32 Reference manual.pdf ( Lab1\Reference folder) b. 8bit AVR Instruction Set.pdf ( Lab1\Reference folder) c. Instruction Set Summary.pdf ( Lab1\Reference folder) d. AVR Assembler User Guide.pdf ( Lab1\Reference folder) e. Appendix A for SKEE3732 Laboratory 1 Sheet.pdf ( \Lab1 folder) f. Appendix B for SKEE3732 Laboratory 1 Sheet.pdf ( \Lab1 folder) g. Appendix C for SKEE3732 Laboratory 1 Sheet.pdf ( \Lab1 folder) h. Essential C.pdf ( Lab1\Reference folder) i. m32adef.pdf ( Lab1\Reference folder) Section A (5 marks) 3. Print a. a hardcopy of the program in Figure B2(B5), b. instructions sets pp of the Atmega32 Reference manual.pdf, c. all pages of AVR Assembler User Guide.pdf d. and Appendix A for SKEE3732 Laboratory 1 Sheet.pdf. Have it available at all time while doing PreLab and Laboratory session. For the files Atmega32 Reference manual.pdf and AVRInstructionSet4.pdf, you may have it handy on a computer or tablet for quick and convenient reference at any time by using the search feature. 4. Referring section B2, TYPE the program Lab1Pre.asm given in Figure B2(B5) of Appendix B for SKEE3732 Laboratory 1 Sheet on Atmel Studio. Do not CUT and PASTE from the original pdf documents. A zero mark (0) will be awarded for an obvious CUT and PASTE. For CLARITY of reading the program during debugging process, DO NOT COPY the lengthy comments given in the program but write short comment (using your own word) if possible only on the line of the instruction. (2 marks will be deducted if not complied) The comments are given in the original document are reference for you to understand the operation of program which you can refer to from the hardcopy that you have printed (as required in para 3 above). SKEE3732 up Laboratory 1 Sheet (Rev ).docx 2
3 Use Section A.1 through A.9 of file Appendix A for SKEE3732 Laboratory 1 Sheet.pdf as reference for the theory on the instructions in Lab1Pre. Organise the code of the program as guided in section A.13 of Appendix A For Skee3732 Laboratory 1 Sheet.pdf. (2 marks will be deducted if not complied) Steps B1 thru B19 in Section B.2 thru B.12 of Appendix B For Skee3732 Laboratory 1 Sheet.pdf that must be completed in order for you complete this Prelaboratory Preparation. 5. Referring to Section B.1 Step B7 of Appendix B for SKEE3732 Laboratory 1 Sheet select the target of program as Simulator. Section B (5 marks) 6. Referring section C.3, write the program Lab1PreCversion.asm given in Figure C3 of Appendix C for SKEE3732 Laboratory 1 Sheet on Atmel Studio 6. Again Do not CUT and PASTE from the original pdf documents. A zero mark (0) will be awarded for an obvious CUT and PASTE. Again, for clarity of reading the program during debugging process, do not copy the lengthy comments given in the program but write short comment (using your own word) if possible only on the line of the instruction. (2 marks will be deducted if not complied) The comments are given as reference for you understand the operation of program which you can refer to from the hardcopy that you have printed. Use file Section A and Section B of Essential C.pdf as reference for the theory on the statements in Lab1PreCversion.c. Section C.1 and C.2 are addition reference that is specific for programming AVR s architecture using C/C++. Organise the code of the program such that each structure in the codes is properly indented according to the levels. (2 marks will be deducted if not complied). SKEE3732 up Laboratory 1 Sheet (Rev ).docx 3
4 II. LABORATORY SHEET 1 Title: Using the Atmel Studio 6: Programing in Assembly Language and C Language 2 Objective: To use Atmel Studio 6: 1. To write, assemble and debug an assembly language program given in Figure B.2(A5) of Appendix B for SKEE3732 Laboratory 1 Sheet. Describe (with evidence snap shot) the operation completed by each process identified the assembly language program by debugging the program. 2. To write, compile and debug a given C language program given in Figure C.3 of Appendix C for SKEE3732 Laboratory 1 Sheet which perform the same function as the given assembly language program in Objective 1. Describe (with evidence snap shot) the operation completed by each process identified the C program by debugging the program. 3. To compare the Assembly Language program generated by the C program in Objective 2 with the manually generated assembly language program in Objective 1. Use Table 1 and Table 2 to compare. 3 Equipment/Software/Reference: 1. A computer system running Windows XP or Window Vista or Window 7/8. 2. Atmel Studio 6.2 installed on the system. In the case of Windows 10 it is advisable that Atmel Studio 7 is used. 3. Reference 1 Atmega32 Reference manual 4. Reference 2 AVRInstructionSet 5. Reference 3 AVR Assembler User Guide 6. Reference 4 Essential C.pdf SKEE3732 up Laboratory 1 Sheet (Rev ).docx 4
5 4 Procedures Note: You must complete Preliminary Preparation before proceeding this section. Make sure that Atmel Studio 6.2 has been installed on your Window PC. A. Procedure 1: 1. By referring to Section B.3 thru B12 of Appendix B for SKEE3732 Laboratory 1 Sheet, debug the program given in Figure B2(B5) on the Atmel Studio 6 (assuming you have assembled successfully) by tracing through the program and by referring process # Fill Table 1 (column 2) as you debug through the each process. Give evidence of the final result of each process (11 process total) identified in the program by taking snapshot of the Processor View and Memory View. Highlight Register/Memory location affected the by completion of the process in snapshot taken. Result for Process 1 and Process 8 is given in example 1 and 2 below for your guidance You can trace through (single stepping) or use break point to stop at the beginning of each process (which is also the end of the previous process). 2. To give evidence, take snap shots of relevant registers/memory locations affected before the process and after the process complete. These snapshots can be used to support Discussion materials in of your report. Highlight the register or memory location affected in the snapshot for the respective process as shown in example 2 (to show that you know what is going on). 3. However the relevant view to snapshot depends on what register or which memory location(s) that you need to read. The snapshot of the PC that identifies the instance of the overall result must also be taken. Do not just take snapshots without documenting the result. Examples as shown in Example 1 and Example 2 below. B. Procedure 2: 1. By referring to Section C7 thru C.12 of Appendix C for SKEE3732 Laboratory 1 Sheet, debug the program given in Figure C3 in Lab1 Appendix B on the Atmel Studio 6 (assuming you have solved all errors if any) by tracing through the program and by referring process # take the snapshot of the Watch View that gives the values to the affected variables. 2. Note that for Process 10, you will need you to debug in the Disassembly View after restarting a new Start Debugging and Break (after noticing than you cannot Step Over the while(1) structure), by setting the breakpoint at the generated assembly language instruction of the while(1) C/C++ statement and then take the snap shots of the Processor View and proof that that the Program Counter doesn t change whilst the Cycle Counter Increments as you Step Over continuously over the instruction. C. Procedure 3: 1. By referring to Section C.6 of Appendix C for SKEE3732 Laboratory 1 Sheet, determine the assembly language instruction generated by the Atmel Studio C/C++ from the SKEE3732 up Laboratory 1 Sheet (Rev ).docx 5
6 program given in Figure C.3, for each of the process given in Table 1 (assuming the program has been compiled successfully) by inspecting the disassembly view. 5 Result to be Taken: When reporting result based on evidence taken, describe (which are explained in comment fields) each process (Process 1 through 8) identified in the program given in Figure B2(B5) of Appendix B for SKEE3732 Laboratory 1 Sheet by using diagram showing the movement of data that implement the process. The diagram is to be taken from snapshot in results during debugging process of the program should be utilised. A. For Procedure 1: Fill Table 1 (column 2) as you debug through the each process. Give evidence of the final result of each process (11 process total) identified in the program by taking snapshot of them Processor View and Memory View. Highlight Register/Memory location affected the by completion of the process in snapshot taken. Result for Process 1 and Process 8 is given in example 1 and 2 below for your guidance You can trace through (single stepping) or use breakpoints to stop at the beginning of each process (which is also the end of the previous process). However what view to snapshot depends on what register or which memory location(s) that you need to read. The snapshot of the PC that identifies the instance of the overall result must also be taken. Do not just take snapshots without documenting the result as shown in Example 1 and Example 2 below. The red box shows the data of registers/memory locations affected snapshots of data before the completion of a certain process. Evidence Example 1 : In Process 1 Register/Memory location affected is PC and SP. (So you are needed to give the snap shot of content SP with PC for their condition just before the process (PC should be = 000A) starts and their condition just after the process ends. Value of R16 is not required because it is not the ultimate objects affected in the process but just used as a temporary storage and highlight it in red box as shown below) PC and SP before Process #1 entry SKEE3732 up Laboratory 1 Sheet (Rev ).docx 6
7 On completion The snap shot of content SP with PC (highlighted in red identified as the subject) that changed: PC and SP after Process #1 complete Evidence Example 2 : Process 8 Before Entry The snap shot of content memory at address $0080 thru $0084 and PC (highlighted in red identified as the subject that will change) On completion: The snap shot of content memory at address $0080 thru $0084 with PC (highlighted in red identified as the subject has changed). SKEE3732 up Laboratory 1 Sheet (Rev ).docx 7
8 B. For Procedure 2: Fill Table 1 (column 3) as you debug through the each process. Provide evidence as shown in example below (affected location/register) identified by red square in the Processor or Watch View whichever window is deemed necessary. (Process #1, Process #2 and Process 8 is prefilled for your guidance) In Watch View, you will need to expand the list of members if the identifier is pointing to an array of data. If the source of data is from memory (i.e. either its content or address, you will need to highlight the origin of the source. Evidence Example 1 : Process #1: Stack Pointer contain 0x085D Example 2) : Evidence Example 2) : Process #2: Address 0x007e for location of num1 and contains 0x2A on completion of this process. Evidence Example 3) : Process #8: SKEE3732 up Laboratory 1 Sheet (Rev ).docx 8
9 Address 0x0077 thru 0x0077 (which is the location of 6 byte array numbers3 is loaded with 0x10, 0x11, 0x12, 0x12, 0x14 and 0x15. C. For Procedure 3: Fill Table 2. 6 Discussion: Describe/discuss from result taken the following: a. Any similarities or differences on usage of labels in Assembly language (or identifier in C language) that represent memory location or constant if applicable between assembly Language and C program based on the following criteria. i. In assembly language and C language, is the address of label for data location are significant to the programmer why is the address significant ii. In assembly language and C language, is the value of constant the label represent are significant to the programmer when is the value significant. b. The differences between the codes written in assembly language and the codes written in C language and the use of GPRs in the codes. c. The similarities or differences between assembly language codes written by programmer and C compiler generated assembly language code. d. The outcome of each process between the codes written in assembly language and the codes written in C language SKEE3732 up Laboratory 1 Sheet (Rev ).docx 9
10 7 Conclusion Conclude you report by citing facts given in result and discussion. You do not conclude by just by writing Objective achieve. Referring/citing any evidence that is in Result or Discussion: a. Conclude any similarity or difference the use of General Purpose Register as intermediate storage, or as pointer to locations between assembly Language and C language program. b. Conclude advantage and disadvantages that you observe between assembly Language and C Language program. 8 Report Writing: For Short Report: Date of Laboratory Experiment Make/Model/Serial No. of Machine or Platform/OS version of computer/software used must be given. Theory: Just give titles relevant theory material used in the laboratory experiment. Procedure: Report step taken to fulfill requirement in objectives including design of program to fulfill objective. Use flowchart if necessary. Procedure may be summarized. Result: Report all result with evidences specified this laboratory sheet by taking snapshots of relevant Codes, Register, or Memory windows. Discussion: Discuss technically on the procedures taken and result observed based on Objectives, Theories and Results. Conclusion: Give Conclusion based on Objectives, Theories, Procedures, Results and Discussions. For Long Report: Date of Laboratory Experiment Make/Model/Serial No. of Machine or Platform/OS version of computer/software used must be given. Theory: A summary of the relevant theory material used in the laboratory experiment. Irrelevant and massive material that is a cut and paste from the internet will leads to deductions of mark. Procedure: Give brief description of the steps taken by numbering steps. Result: Report all result (citing the step number in Procedure) with evidences specified this laboratory sheet by taking snapshots of relevant Codes, Register, or Memory windows based on objectives. Discussion: Discuss technically on the procedures taken and result observed based on Objectives, Theories and Results. Conclusion: Give Conclusion based on Objectives, Theories, Procedures, Results and Discussions. SKEE3732 up Laboratory 1 Sheet (Rev ).docx 10
11 Table 1: To be filled for Procedure 1 and Procedure 3. (Information prefilled is as guidance) Process No Final result in Memory Location or Register affected from Process (Value under Address column or Identifier name under Variable column must be filled if empty. From Lab1Pre.asm 1 Register Content SP 085F Address Content 2 0x0060 Address Content 3 Address Content 4 Register Content 5 Address Content 6 0x0080 Address Content 7 8 Address Content 0x0080 0x0081 0x0082 0x0083 0x Address Content 10 Address Content 11 Register Content PC From Lab1PreCversion.c Identify affected variables. Address variables is not significant (Use the declared variable name in Watch View to get values of data in memory locations/registers Refer to Processor view before Process #2 is executed SP Variable 085D Content num1 temp1 sum ptrnumbers3 numbers3 numbers3[3] numbers3[0] numbers3[1] numbers3[2] numbers3[3] numbers3[4] numbers2[0] numbers2[1] numbers2[2] numbers2[3] numbers4[0] numbers4[1] numbers4[2] numbers4[3] Cannot be traced (Step Over) under Debug Hint: You can find the value of address here from the Disassembly View SKEE3732 up Laboratory 1 Sheet (Rev ).docx 11
12 Table 2: Process No To be filled for Procedure 1 and Procedure 3. (Information prefilled is as guidance) Final Result of each Process Assembly language generated from rom Lab1PreCversion from author s computer may be different from your computer) From Lab1Pre.asm Assembly language generated from rom Lab1PreCversion (from author s computer) Assembly language generated from rom Lab1PreCversion (from your computer) ldi out ldi out R16,low(RAMEND) SPL,R16 r16,high(ramend) SPH,R16 LDI R28,0x5F LDI R29,0x08 OUT 0x3E,R29 OUT 0x3D,R28 2 ldi sts r17,$2a num1,r17 LDI R24,0x2A STS 0x007D,R24 3 lds sts r17,num1 temp1,r17 LDS R24,0x007D STS 0x007C,R24 4 lds r0,num1 lds r1,temp1 add r0,r1 ldi r16,5 add r0,r16 sts sum,r0 LDS R25,0x007D LDS R24,0x007C ADD R24,R25 SUBI R24,0xFB STS 0x007B,R24 5 ldi YL,low(numbers3) ldi YH,high(numbers3) LDI R30,0x74 LDI R31,0x00 STS 0x007A,R31 STS 0x0079,R30 6 ldi st r16,$53 Y,r16 LDI R24,0x53 STD Z+0,R24 7 ldi r16,$35 std Y+3,r16 LDI R24,0x35 STD Z+3,R24 8 ldi XL,low(numbers3) LDI R24,0x00 SKEE3732 up Laboratory 1 Sheet (Rev ).docx 12
13 ldi XH,high(numbers3) ldi r20,ten st X+,r20 inc r20 st X+,r20 inc r20 st X+,r20 inc r20 st X+,r20 inc r20 st X+,r20 LDI R25,0x00 LDS R18,0x0060 MOVW R30,R24 SUBI R30,0x8C SBCI R31,0xFF STD Z+0,R18 LDS R18,0x0060 SUBI R18,0xFF STS 0x0060,R18 ADIW R24,0x01 CPI R24,0x05 CPC R25,R1 BRNE PC0x0E 9 ldi XL,low(numbers2+4) ldi XH,high(numbers2+4) ld r16,y+ st X,r16 ld r16,y+ st X,r16 ld r16,y+ st X,r16 ld r16,y+ st X,r16 LDS R24,0x0074 STS 0x0070,R24 LDS R24,0x0075 STS 0x006F,R24 LDS R24,0x0076 STS 0x006E,R24 LDS R24,0x0077 STS 0x006D,R24 10 ldi ZH,high(numbers1<<1) ldi ZL,low(numbers1<<1) ldi YH,high(numbers4) ldi YL,low(numbers4) ldi r17,4 repeat: lpm r18,z+ st Y+,r18 dec r17 brne repeat LDI R24,0x00 LDI R25,0x00 MOVW R30,R24 SUBI R30,0xAC SBCI R31,0xFF LPM R30,Z STS 0x006C,R30 LDS R18,0x006C MOVW R30,R24 SUBI R30,0x9E SBCI R31,0xFF STD Z+0,R18 ADIW R24,0x01 CPI R24,0x04 CPC R25,R1 BRNE PC0x0F 11 here: rjmp here RJMP PC0x0000 SKEE3732 up Laboratory 1 Sheet (Rev ).docx 13
DESIGN NOTE #032. AVR Boot Loader. Introduction. Overview AUTHOR: MARIANO BARRÓN RUIZ KEYWORDS: BOOT LOADER, SPM, SELF-PROGRAMMING
DESIGN NOTE AUTHOR: #032 MARIANO BARRÓN RUIZ ISPBARUM@SB.EHU.ES KEYWORDS: BOOT LOADER, SPM, SELF-PROGRAMMING This document is originally distributed by AVRfreaks.net, and may be distributed, reproduced,
More informationAssembly AVR Boot loader
Assembly AVR Boot loader Mariano Barrón Ruiz ispbarum@sb.ehu.es Introduction This document presents a software written in assembly for self-programming all AVR microcontrollers with Boot Loader Flash Section.
More informationModule 8: Atmega32 Stack & Subroutine. Stack Pointer Subroutine Call function
Module 8: Atmega32 Stack & Subroutine Stack Pointer Subroutine Call function Stack Stack o Stack is a section of RAM used by the CPU to store information temporarily (i.e. data or address). o The CPU needs
More informationAPPENDIX A FOR SKEE3732 LABORATORY 1 SHEET
APPENDIX A FOR SKEE3732 LABORATORY 1 SHEET Other documents that are referred within this document are located at the link https://www.dropbox.com/sh/s16jri4eol3agl5/aaazn_w3p7fodjs-wi-xcenqa?dl=0 The ATmega32/ATmega2A
More informationFACULTY OF BIOSCIENCES AND MEDICAL ENGINEERING
Fakulti: FACULTY OF BIOSCIENCES AND MEDICAL ENGINEERING Nama Matapelajaran: Laboratory 1 Kod Matapelajaran : SKBB 2712 Semakan Tarikh Keluaran Pindaan Terakhir No. Prosedur : : 2013 : 2013 : FACULTY OF
More informationLab Objectives. 2. Preparations. 3. Signing in. 4. Examining the Host Environment. 5. Part A: Introduction to AVR Studio. 5.
Lab 0 1. Objectives Learn how to use AVR studio, an Integrated Development Environment (IDE) for developing AVR applications in Windows environments, to debug and run an AVR assembly program. Understand
More informationAPPENDIX D FLOWCHARTS AND PSEUDOCODE OVERVIEW
APPENDIX D FLOWCHARTS AND PSEUDOCODE OVERVIEW This appendix provides an introduction to writing flowcharts and pseudocode. 689 Flowcharts If you have taken any previous programming courses, you are probably
More informationCOMP2121 Introductory Experiment
COMP2121 Introductory Experiment Objectives: In this introductory experiment, you will: Learn how to use AVR studio, an Integrated Development Environment (IDE) for developing AVR applications in Windows
More informationLab 2: Basic Assembly Programming and Debugging using AVR Studio. Due: December 13, 2011
Lab 2: Basic Assembly Programming and Debugging using AVR Studio 1 Outcomes Due: December 13, 2011 Familiarize yourself with the capabilities of the ATMEGA32 embedded microcontroller and AVR Studio Develop
More informationAssembly Programming in Atmel Studio 7 Step by Step Tutorial
Assembly Programming in Atmel Studio 7 Step by Step Tutorial Sepehr Naimi BIHE University 12/1/2017 Contents Introduction... 2 Downloading and Installing Atmel Studio... 3 Opening Atmel Studio... 3 Creating
More information[TUT] Newbie's Guide to AVR Interrupts
This tutorial is about interrupt driven USART receive and transmit routines written in AVR assembly. The hardware is: Arduino Mega2560 Adafruit Ultimate GPS IBM PC Atmel JTAGICE3 Software: Atmel AS6.1
More informationCOMP2121: Microprocessors and Interfacing. Instruction Set Architecture (ISA)
COMP2121: Microprocessors and Interfacing Instruction Set Architecture (ISA) http://www.cse.unsw.edu.au/~cs2121 Lecturer: Hui Wu Session 2, 2017 1 Contents Memory models Registers Data types Instructions
More informationLecture 20: AVR Programming, Continued. AVR Program Visible State (ones we care about for now)
18 100 Lecture 20: AVR Programming, Continued S 15 L20 1 James C. Hoe Dept of ECE, CMU April 2, 2015 Today s Goal: You will all be ace AVR hackers! Announcements: Midterm 2 can be picked up in lab and
More informationIntroduction to AVR-STUDIO
DEPARTAMENTO DE TECNOLOGÍA ELECTRÓNICA ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA Introduction to AVR-STUDIO Computer Structure 1.Introduction and goals The goals of this session are the following:
More informationAVR ISA & AVR Programming (I) Lecturer: Sri Parameswaran Notes by: Annie Guo
AVR ISA & AVR Programming (I) Lecturer: Sri Parameswaran Notes by: Annie Guo 1 Lecture Overview AVR ISA AVR Instructions & Programming (I) Basic construct implementation 2 Atmel AVR 8-bit RISC architecture
More informationMicroprocessor Fundamentals. Topic 7 Timing: the Timer/Counter
Microprocessor Fundamentals Topic 7 Timing: the Timer/Counter Objectives Examine the Timer/Counter Register: TCNT0 Examine the Timer/Counter Control Register: TCCR0 Write a time delay for the previous
More informationRegister-Level Programming
Introduction Register-Level Programming Programming can be considered a set a instructions that are executed in a precise order. A programming simulator can evaluate how instructions store, move and calculate
More informationAVR ISA & AVR Programming (I) Lecturer: Sri Parameswaran Notes by: Annie Guo
AVR ISA & AVR Programming (I) Lecturer: Sri Parameswaran Notes by: Annie Guo 1 Lecture Overview AVR ISA AVR Instructions & Programming (I) Basic construct implementation 2 Atmel AVR 8-bit RISC architecture
More informationAVR ISA & AVR Programming (I)
AVR ISA & AVR Programming (I) Lecturer: Sri Parameswaran Notes by: Annie Guo Week 1 1 Lecture Overview AVR ISA AVR Instructions & Programming (I) Basic construct implementation Week 1 2 1 Atmel AVR 8-bit
More informationIntroduction to Assembly language
Introduction to Assembly language 1 USING THE AVR MICROPROCESSOR Outline Introduction to Assembly Code The AVR Microprocessor Binary/Hex Numbers Breaking down an example microprocessor program AVR instructions
More informationAVR Subroutine Basics
1 P a g e AVR Subroutine Basics READING The AVR Microcontroller and Embedded Systems using Assembly and C) by Muhammad Ali Mazidi, Sarmad Naimi, and Sepehr Naimi Chapter 3: Branch, Call, and Time Delay
More informationAssembly Programming (III) Lecturer: Sri Parameswaran Notes by: Annie Guo Dr. Hui Wu
Assembly Programming (III) Lecturer: Sri Parameswaran Notes by: Annie Guo Dr. Hui Wu 1 Lecture overview Stack and stack operations Functions and function calls Calling conventions 2 Stack What is stack?
More informationEmbedded Systems and Software
Embedded Systems and Software Lab 4 Considerations Formatting for LCD Slide 1 Lab 4 Issues Displaying the Frequency and Duty Cycle on the LCD Formatting for LCD Slide 2 F = 2 5 H z D C = 7 5. 6 % Formatting
More informationAssembly Programming (III)
Assembly Programming (III) Lecturer: Annie Guo S2, 2006 COMP9032 Week6 1 Lecture Overview Stack and stack operations Functions and function calls Calling conventions S2, 2006 COMP9032 Week6 2 What is stack?
More information;Compiler Options.NOLIST.INCLUDE "C:\Program Files (x86)\atmel\avr Tools\AvrAssembler2\Appnotes\m8515def.inc"
;* CharTest.asm ;* ;* Created: 28/06/2017 9:37 p.m. ;* Author: ob1 ;ST7820 128 x 64 graphics mode character display 8 lines x 21 characters ;Modification and redistribution under provisions of GNU general
More informationECED 3204 Microprocessor Midterm Reference Solution
ECED 3204 Microprocessor Midterm Reference Solution Date: October 26 2017 Time: 7:00pm-9:00pm Room: B225, B227, B229 Student name ID 1) Problem one has following two sub problems: a. Write an instruction
More informationUniversity of Florida EEL 4744 Dr. Eric M. Schwartz. Page 1/11 Revision 0 20-Feb-14 Mixed C and Assembly (for Atmel XMEGA)
Page 1/11 Revision 0 20-Feb-14 KEY WORDS Compiler, Inline Assembly, GNU Assembler, GCC, AVR-GCC RESOURCES GNU Assembler Resource - http://sourceware.org/binutils/docs-2.23.1/as/index.html AVR-LibC Inline
More informationMicroprocessor Fundamentals. Topic 8 Binary Addition
Microprocessor Fundamentals Topic 8 Binary Addition Objectives Examine several assembler directives:.dseg /.eseg /.cseg.db.byte Use indirect addressing X register (r26 and r27) Post-increment Store results
More informationCOMP2121 Experiment 4
COMP2121 Experiment 4 1. Objectives In this lab, you will learn AVR programming on Parallel input/output; Some typical input/output devices; and Interrupts 2. Preparation Before coming to the laboratory,
More informationECE 206, Fall 2001: Lab 3
ECE 206, : Lab 3 Data Movement Instructions Learning Objectives This lab will give you practice with a number of LC-2 programming constructs. In particular you will cover the following topics: - Load/store
More informationSection 1 AVR Studio User Guide
Section 1 AVR Studio User Guide 1.1 Introduction Welcome to AVR Studio from Atmel Corporation. AVR Studio is a Development Tool for the AVR family of microcontrollers. This manual describes the how to
More informationCOMP2121: Microprocessors and Interfacing
nterfacing Overview Arithmetic and Logic nstructions in AR ample AR Assembly Programs Using AL instructions Lecture 8: Arithmetic and logic nstructions http://www.cse.unsw.edu.au/~cs2121 Lecturer: ui Wu
More informationBy: Dr. Hamed Saghaei
By: Dr. Hamed Saghaei The AVR RISC Microcontroller supports powerful and efficient addressing modes for access to the program memory (Flash) and data memory (SRAM). This section describes the different
More informationAn Introduction to Komodo
An Introduction to Komodo The Komodo debugger and simulator is the low-level debugger used in the Digital Systems Laboratory. Like all debuggers, Komodo allows you to run your programs under controlled
More informationCOMP3221: Microprocessors and Embedded Systems
Embedded ystems Overview Arithmetic and Logic nstructions in AR ample AR Assembly Programs Using AL instructions Lecture 7: Arithmetic and logic nstructions http://www.cse.unsw.edu.au/~cs3221 Lecturer:
More informationCOMP2121: Microprocessors and Interfacing
Lecture 19: Interrupts II http://www.cse.unsw.edu.au/~cs2121 Lecturer: Hui Wu Session 1, 2006 Overview AVR Interrupts Interrupt Vector Table System Reset Watchdog Timer Timer/Counter0 Interrupt Service
More informationECED3204: Microprocessor Part I--Introduction
ECED3204: Microprocessor Part I--Introduction Jason J. Gu Department of 1 Outline i. Computer ii. Processor iii. Embedded System iv. Memory v. Program Execution VI. VII. VIII. IX. AVR AVR Memory AVR CPU
More informationChapter 4: Atmel s AVR 8-bit Microcontroller Part 1 Assembly Programming
Chapter 4: Atmel s AVR 8-bit Microcontroller Part 1 Assembly Programming Prof. Ben Lee Oregon State University School of Electrical Engineering and Computer Science Chapter Goals Understand how to program
More informationCOMP3221: Microprocessors and. and Embedded Systems. Instruction Set Architecture (ISA) What makes an ISA? #1: Memory Models. What makes an ISA?
COMP3221: Microprocessors and Embedded Systems Lecture 2: Instruction Set Architecture (ISA) http://www.cse.unsw.edu.au/~cs3221 Lecturer: Hui Wu Session 2, 2005 Instruction Set Architecture (ISA) ISA is
More informationECE 375: Computer Organization and Assembly Language Programming
ECE 375: Computer Organization and Assembly Language Programming SECTION OVERVIEW Lab 4 Data Manipulation & the LCD Complete the following objectives: ˆ Understand the basics of data manipulation in AVR
More informationCOMP2121: Microprocessors and Interfacing
Interfacing Lecture 9: Program Control Instructions http://www.cse.unsw.edu.au/~cs2121 Lecturer: Hui Wu Session 1, 2006 Program control instructions in AVR Stacks Overview Sample AVR assembly programs
More informationEmbedded Systems and Software
Embedded Systems and Software Timers and Counters F-35 Lightning II Electro-optical Targeting System (EOTS Lecture 1, Slide-1 Timers and Counters Very important peripherals on microcontrollers ATtiny45
More informationEE 308: Microcontrollers
EE 308: Microcontrollers Review Part I Aly El-Osery Electrical Engineering Department New Mexico Institute of Mining and Technology Socorro, New Mexico, USA February 15, 2018 Aly El-Osery (NMT) EE 308:
More informationET-BASE AVR ATmega64/128
ET-BASE AVR ATmega64/128 ET-BASE AVR ATmega64/128 which is a Board Microcontroller AVR family from ATMEL uses MCU No.ATmega64 and ATmega128 64PIN. Board ET-BASE AVR ATmega64/128 uses MCU s resources on
More informationMicroprocessors & Interfacing
Lecture Overview Microprocessors & Interfacing Interrupts (II) Interrupts in AVR External interrupts Internal interrupts Timers/Counters Lecturer : Dr. Annie Guo S2, 2008 COMP9032 Week7 1 S2, 2008 COMP9032
More informationChanging the Embedded World TM. Module 3: Getting Started Debugging
Changing the Embedded World TM Module 3: Getting Started Debugging Module Objectives: Section 1: Introduce Debugging Techniques Section 2: PSoC In-Circuit Emulator (ICE) Section 3: Hands on Debugging a
More informationATmega128 Assembly Language Programming
마이크로프로세서응용 7 ATmega128 Assembly Language Programming Assembly Language g Field Delimiter Field structure a space or colon after a label a space after the operation code a comma between operands in the
More informationCHW 469 : Embedded Systems
CHW 469 : Embedded Systems Instructor: Dr. Ahmed Shalaby http://bu.edu.eg/staff/ahmedshalaby4# I/O Ports in AVR The AVR microcontroller and embedded systems using assembly and c Topics AVR pin out The
More informationGates and flip-flops: glue logic, simple FSMs, registers Two-level PLDs: FSMs, muxes, decoders. Programmable logic devices (CSE370, CSE467)
Computational hardware Digital logic (CSE370) Gates and flip-flops: glue logic, simple FSMs, registers Two-level PLDs: FSMs, muxes, decoders Programmable logic devices (CSE370, CSE467) Field-programmable
More informationCOMP2121: Microprocessors and Interfacing. Instruction Formats and Addressing Modes
COMP2121: Microprocessors and Interfacing Instruction Formats and Addressing Modes http://www.cse.unsw.edu.au/~cs2121 Lecturer: Hui Wu Session 2, 2017 1 1 Overview Instruction format AVR instruction format
More informationNumber Systems & Encoding
Number Systems & Encoding Lecturer: Sri Parameswaran Author: Hui Annie Guo Modified: Sri Parameswaran Week2 1 Lecture overview Basics of computing with digital systems Binary numbers Floating point numbers
More informationAVR MICROCONTROLLER ARCHITECTURTE
AVR MICROCONTROLLER ARCHITECTURTE AVR MICROCONTROLLER AVR- Advanced Virtual RISC. The founders are Alf Egil Bogen Vegard Wollan RISC AVR architecture was conceived by two students at Norwegian Institute
More informationMenu. The Cost of Debugging
12-Sep-18 330 PM ging >Why do we need to debug? >When do we need to debug? >How do we debug? Before/as we code After we code >Common bugs Menu Look into my... 1 The Cost of ging Increases exponentially
More informationNEW CEIBO DEBUGGER. Menus and Commands
NEW CEIBO DEBUGGER Menus and Commands Ceibo Debugger Menus and Commands D.1. Introduction CEIBO DEBUGGER is the latest software available from Ceibo and can be used with most of Ceibo emulators. You will
More informationCN310 Microprocessor Systems Design
CN310 Microprocessor Systems Design Instruction Set (AVR) Nawin Somyat Department of Electrical and Computer Engineering Thammasat University Outline Course Contents 1 Introduction 2 Simple Computer 3
More informationECE 331: PC Lab 3 Stack and Subroutines
ECE 331: PC Lab 3 Stack and Subroutines Professor Andrew Mason Michigan State University Rev: S11 p.1 Announcements Objectives Topics Outline Review starting and using ASM development environment Pushing
More informationInterrupts (II) Lecturer: Sri Parameswaran Notes by: Annie Guo
Interrupts (II) Lecturer: Sri Parameswaran Notes by: Annie Guo 1 External Interrupts The external interrupts are triggered by the INT7:0 pins. If enabled, the interrupts will trigger even if the INT7:0
More informationModule 10: System Integration & Planning. Introduction to I/O Elementary I/O in AVR MSI devices
Module 10: System Integration & Planning Introduction to I/O Elementary I/O in AVR MSI devices Introduction Introduction o There are five types of project complexity possibilities: o Purely software o
More information8-Bit MCU with Downloadable Flash. Application Note AVR100. AVR100: Accessing the EEPROM. Features. Introduction. Random Write - Subroutine EEWrite
AVR100: Accessing the EEPROM Features Random Read/Write Sequential Read/Write Runable Test/Example Program Introduction This application note contains routines for access of the EEPROM memory in the AVR
More informationCOMP3221: Microprocessors and Embedded Systems. Lecture 11: Assembly Lecturer: Hui Wu Session 2, 2005
COMP3221: Microprocessors and Embedded Systems Lecture 11: Assembly http://www.cse.unsw.edu.au/~cs3221 Lecturer: Hui Wu Session 2, 2005 Overview Pseudo Instructions Macro Assembly Process 2 Assembly Language
More informationEmbedded Systems and Software. LCD Displays
Embedded Systems and Software LCD Displays Slide 1 Some Hardware Considerations Assume we want to drive an LED from a port. The AVRs can either source or sink current. Below is a configuration for sourcing.
More informationIAS0430 MICROPROCESSOR SYSTEMS
IAS0430 MICROPROCESSOR SYSTEMS Fall 2018 Arduino and assembly language Martin Jaanus U02-308 martin.jaanus@ttu.ee 620 2110, 56 91 31 93 Learning environment : http://isc.ttu.ee Materials : http://isc.ttu.ee/martin
More informationMadhya Pradesh Bhoj (Open) University, Bhopal
Subject- I-Computer Fundamental Maximum Marks: 30 Q.1 What is application Software and Hardware and how many types of application software. Explain in detail Q.2 What is input devices and output devices.
More informationEE 308: Microcontrollers
EE 308: Microcontrollers Assmbly Language Part I Aly El-Osery Electrical Engineering Department New Mexico Institute of Mining and Technology Socorro, New Mexico, USA January 30, 2018 Aly El-Osery (NMT)
More informationDevelopment Tools. 8-Bit Development Tools. Development Tools. AVR Development Tools
Development Tools AVR Development Tools This section describes some of the development tools that are available for the 8-bit AVR family. Atmel AVR Assembler Atmel AVR Simulator IAR ANSI C-Compiler, Assembler,
More informationCPE 323: Laboratory Assignment #1 Getting Started with the MSP430 IAR Embedded Workbench
CPE 323: Laboratory Assignment #1 Getting Started with the MSP430 IAR Embedded Workbench by Alex Milenkovich, milenkovic@computer.org Objectives: This tutorial will help you get started with the MSP30
More informationSpeed and Size-Optimized Implementations of the PRESENT Cipher for Tiny AVR Devices
Speed and Size-Optimized Implementations of the PRESENT Cipher for Tiny AVR Devices Kostas Papagiannopoulos Aram Verstegen July 11, 2013 Papagiannopoulos and Verstegen July 11, 2013 Speed and Size-Optimized
More informationAVR Instruction Set Encoding
1 P age AVR Instruction Set Encoding READING 1. "AVR Instruction Set" document doc856 "The Program and Data Addressing Modes." 2. In this lecture I will teach you how to translate your assembly code into
More informationProgramming. A. Assembly Language Programming. A.1 Machine Code. Machine Code Example: Motorola ADD
A. Assembly Language Programming Programming of a computer system: Machine code direct execution Assembly language tool: assembler High level programming language tool: interpreter tool: compiler Programming
More informationECE251: Thursday September 13
ECE251: Thursday September 13 Lab 9: Some Details Stack and Subroutines, continued--chapter 8 Stack Example SUBROUTINES More Details Initializing the Stack/Pointer Passing Parameters to Subroutines via
More informationAVR. (AVR Assembly Language) Assembler . ก ก
AVR (AVR Assembly Language). ก ก Assembler 2 1 ก /* * AVRAssembler1.asm * * Created: 9/7/2554 9:40:18 * Author: xp */.org 0 rjmp RESET ;Reset Handle rjmp RESET rjmp RESET RESET: ldi r16, 0b11111111 ;load
More informationIAR EWARM Quick Start for. Holtek s HT32 Series Microcontrollers
IAR EWARM Quick Start for Holtek s Microcontrollers Revision: V1.10 Date: August 25, 2011 Table of Contents 1 Introduction... 5 About the Quick Start Guide... 5 About the IAR EWARM... 6 2 System Requirements...
More informationC1098 JPEG Module User Manual
C1098 JPEG Module User Manual General Description C1098 is VGA camera module performs as a JPEG compressed still camera that can be attached to a wireless or PDA host. Users can send out a snapshot command
More informationCOMP3221: Microprocessors and. and Embedded Systems. Overview. Variable Types and Memory Sections. Types of Variables in C
COMP3221: Microprocessors and Embedded Systems Lecture 12: Functions I http://www.cse.unsw.edu.au/~cs3221 Lecturer: Hui Wu Session 2, 2005 Overview Variable types Memory sections in C Parameter passing
More informationThis chapter introduces how to use the emulator of TOPICE quickly.
Quick Starting Summarization This chapter introduces how to use the emulator of TOPICE quickly. Compiling Source and Debugging Creating a New Project Select main menu Project, then choose the submenu New
More informationResource 2 Embedded computer and development environment
Resource 2 Embedded computer and development environment subsystem The development system is a powerful and convenient tool for embedded computing applications. As shown below, the development system consists
More informationESE 150 Lab 08: Machine Level Language
LAB 08 In this lab we will gain an understanding of the instruction- level implementation of computation on a microprocessor by: 1. Using Arduino to perform the Fourier Transform on sampled data in the
More informationChapter 6 Programming the LC-3
Chapter 6 Programming the LC-3 Based on slides McGraw-Hill Additional material 4/5 Lewis/Martin Aside: Booting the Computer How does it all begin? We have LC-3 hardware and a program, but what next? Initial
More informationECE 375: Computer Organization and Assembly Language Programming
ECE 375: Computer Organization and Assembly Language Programming SECTION OVERVIEW Lab 5 Large Number Arithmetic Complete the following objectives: ˆ Understand and use arithmetic/alu instructions. ˆ Manipulate
More informationAVR. 2. (Assembler directives ) 3. ( Instruction field) 5. (Comment field) 1. (Label field) Assembler. 4. ก (Operands field) (AVR Assembly Language)
3 AVR (AVR Assembly Language). ก ก ก /* * AVRAssembler1.asm * * Created: 9/7/2554 9:40:18 * Author: xp */.org 0 rjmp RESET ;Reset Handle rjmp RESET rjmp RESET RESET: ldi r16, 0b11111111 ;load register
More informationAPPENDIX B AVR INSTRUCTIONS EXPLAINED OVERVIEW
APPENDIX B AVR INSTRUCTIONS EXPLAINED OVERVIEW In this appendix, we describe each intruction of the ATmega328. In many cases, a simple code example is given to clarify the instruction. Instructions are
More informationProgramming Studio #4 ECE 190
Programming Studio #4 ECE 190 Programming Studio #4 Topics this week: Systematic Decomposition Memory Addressing Modes In Studio Assignment LC-3 Programming Assignment Announcements MP1 Due Wednesday,
More informationECE 3210 Laboratory 1: Develop an Assembly Program
ECE 3210 Laboratory 1: Develop an Assembly Program Spring 2018 1 Objective To become familiar with the development system s software: screen editor, assembler, linker, and debugger. After finishing this
More informationEE 308: Microcontrollers
EE 308: Microcontrollers Introduction Aly El-Osery Electrical Engineering Department New Mexico Institute of Mining and Technology Socorro, New Mexico, USA January 6, 2018 Aly El-Osery (NMT) EE 308: Microcontrollers
More informationModule 2: Introduction to AVR ATmega 32 Architecture
Module 2: Introduction to AVR ATmega 32 Architecture Definition of computer architecture processor operation CISC vs RISC von Neumann vs Harvard architecture AVR introduction AVR architecture Architecture
More informationMenu. >Debugging/Simulating in Atmel Studio >Downloading and Debugging/Emulating with the UF-board. Machine Codes 6811: $86 $0A GCPU: $02 $0A
Big Picture Assembler Directives Examples using: Menu >Debugging/Simulating in Atmel Studio >Downloading and Debugging/Emulating with the UF-board Look into my... See on web-site: GCPU_to_XMEGA.pdf, Examples:
More informationLecture 1. Course Overview and The 8051 Architecture
Lecture 1 Course Overview and The 8051 Architecture MCUniversity Program Lectures 8051 architecture t System overview of C8051F020 8051 instruction set System clock, crossbar and GPIO Assembler directives
More informationEE 308: Microcontrollers
EE 308: Microcontrollers Introduction to the Assmbly Language Aly El-Osery Electrical Engineering Department New Mexico Institute of Mining and Technology Socorro, New Mexico, USA January 25, 2018 Aly
More informationMicrocontroller VU
182.694 Microcontroller VU Martin Perner SS 2017 Featuring Today: A Deep Look into the Processor Core Getting Code onto the Microcontroller Chip Weekly Training Objective This week 1.2 Board test 2.1.1
More informationC5500 Compiler Build Options One Use Case
C5500 Compiler Build Options One Use Case May 2008 Page 1 Page 1 TI Internal Use Only Overview These slides are the collective wisdom on C5500 Compiler Build options from a highly experienced development
More informationCOMP3221: Microprocessors and Embedded Systems
Embedded Systems Lecture 6: Addressing Modes http://www.cse.unsw.edu.au/~cs3221 Lecturer: Hui Wu Session 2, 2005 Addressing Modes Overview Instruction Examples 1 2 Operands Immediate Addressing Instructions
More informationLab 8 The Stack (LIFO) Structure
Lab 8 The Stack (LIFO) Structure Objective: The stack segment in memory is where the 80x86 maintains the stack. The stack stores important information about program including local variables, subroutine
More informationSupplement: Visual C++ Debugging
Supplement: Visual C++ Debugging For Introduction to C++ Programming By Y. Daniel Liang Note: The screen shots are taken from VC++ 2010. It is the same for the later version. 1 Introduction The debugger
More informationProgramming Microcontroller Assembly and C
Programming Microcontroller Assembly and C Course Number CLO : 2 Week : 5-7 : TTH2D3 CLO#2 Student have the knowledge to create basic programming for microcontroller [C3] Understand how to program in Assembly
More informationEXPERIMENT NUMBER 5 Creating a Single Chip Memory Space for the 8051
5-1 EXPERIMENT NUMBER 5 Creating a Single Chip Memory Space for the 8051 INTRODUCTION: The 8031 microcontroller on the XS40 board is an 8051-type microcontroller, but unlike the 8051 it contains no on-chip
More informationFigure 1. Simplicity Studio
SIMPLICITY STUDIO USER S GUIDE 1. Introduction Simplicity Studio greatly reduces development time and complexity with Silicon Labs EFM32 and 8051 MCU products by providing a high-powered IDE, tools for
More informationC Programming in Atmel Studio 7 Step by Step Tutorial
C Programming in Atmel Studio 7 Step by Step Tutorial Sepehr Naimi NicerLand.com 1/1/017 Contents Introduction... Downloading and Installing Atmel Studio... 3 Opening Atmel Studio... 3 Creating the first
More informationUsing the KD30 Debugger
ELEC3730 Embedded Systems Tutorial 3 Using the KD30 Debugger 1 Introduction Overview The KD30 debugger is a powerful software tool that can greatly reduce the time it takes to develop complex programs
More informationLab 9 Loops, Debugging
Lab 9 Loops, Debugging The following exercises are to be completed during lab class. If you do not have time to finish during lab, they must be completed before the beginning of the following lab session.
More informationSRI VENKATESWARA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF ECE EC6504 MICROPROCESSOR AND MICROCONTROLLER (REGULATION 2013)
SRI VENKATESWARA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF ECE EC6504 MICROPROCESSOR AND MICROCONTROLLER (REGULATION 2013) UNIT I THE 8086 MICROPROCESSOR PART A (2 MARKS) 1. What are the functional
More information