Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

For the purposes of this homework, you will be examining the AVR family of microcontrollers architecture. Specifically, we will be looking at the megaAVR and

image text in transcribed

For the purposes of this homework, you will be examining the AVR family of microcontrollers architecture. Specifically, we will be looking at the megaAVR and tinyAVR architectures. Development of AVR started in 1996, and currently serves as the heart of the popular Arduino platform. We briefly mentioned AVR during class. Recall that AVR is a modified Harvard architecture, that is it provides program and data spaces in separate address busses while also providing a mechanism to transfer data between the two In this homework, you will be investigating the basis of the architecture and writing a few assembly programs for it. We recommend looking for the AVR Instruction Set Manual as well as other documentation you may find in Atmel's website. Describe the register file of AVR microcontrollers: How many registers are in the register file? How wide are they? Are there any special purpose registers like in MSP430? Where are the stack pointer and status register located? Describe the calling convention utilized by Atmel in their compiler. Utilize your findings from Q.1 and d Q.2 to answer the following question. We desire to add two 16bit numbers, 1455 and 3437. Write a small AVR assembly language program to add these two numbers. What are the X, Y, and Z registers? Write a small assembly program that loads constants into these registers Recall from the lectures that for convenience we store variables with permanent store (local variables declared as static and global variables) in the .data or .bss sections of memory The .data section contains variables with permanent store that have been explicitly initialized, whereas the .bss section contains variables with permanent store that have not been explicitly initialized (these are implicitly initialized to 0). Recall that because we do not have a program loader, our program is responsible for performing this initialization. Fortunately, when the final binary is being linked, the linker script exports the symbols shown in Table 1. Utilize these symbol names to write two assembly routines, _initialize data and Symbols exported by the linker script in AVR. _initialize _bss that initializes the data and bss sections of data memory, respectively on the AVR architecture

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Advances In Databases And Information Systems 25th European Conference Adbis 2021 Tartu Estonia August 24 26 2021 Proceedings Lncs 12843

Authors: Ladjel Bellatreche ,Marlon Dumas ,Panagiotis Karras ,Raimundas Matulevicius

1st Edition

3030824713, 978-3030824716

More Books

Students also viewed these Databases questions

Question

Discuss the different types of leadership

Answered: 1 week ago

Question

Write a note on Organisation manuals

Answered: 1 week ago

Question

Define Scientific Management

Answered: 1 week ago

Question

Explain budgetary Control

Answered: 1 week ago