Familiarity with data types, data structures, as well as standard program design, development, and debugging techniques.

Size: px
Start display at page:

Download "Familiarity with data types, data structures, as well as standard program design, development, and debugging techniques."

Transcription

1 EE 472 Lab 1 (Individual) Introduction to C and the Lab Environment University of Washington - Department of Electrical Engineering Introduction: This lab has two main purposes. The first is to introduce the C language, explore some of the important aspects of the language including pointers. The second is to introduce the Atmel AT91SAM7SExxx implementation of the ARM7 microcomputer (Make Controller), the Eclipse integrated C / Assembler development environment, and the world of embedded applications. Like a typical embedded system, we have a hardware piece and a software piece. This quarter, our major focus will be on the software piece. The best way to become familiar with any new piece of hardware is to take a tour of its features; the same holds true for learning a new programming language. This is the approach that we will take. We will take the same approach as we move to the microprocessor and associated development environment. For the processor, we ll begin with the data sheet and discover some of the key features of this device. This is exactly how we will do it in future when we start to work with a new microprocessor for our company or in our graduate research. Then, once again, we will begin with a working application, learn how to build a project, compile it, download it, and run it on the target platform. We will then make some simple modifications to the program and verify that the modified programs work as expected. Prerequisites: Familiarity with data types, data structures, as well as standard program design, development, and debugging techniques. Background We will be continuing our work and learning process with a new microprocessor and development environment this quarter. Sometimes it can be frustrating when the software or the microprocessor doesn t behave the way we want it to, or when, unfortunately, it behaves the way that we have told it to, or when we can t immediately find the answer to our questions and problems. Sometimes your instructor or TA will have the answers and sometimes they won t. As we said in the opening, bear in mind that we re learning the environment and tools too this platform and development environment are complex and are new to all of us. If we all work together to identify and solve problems as they occur, everyone benefits and we help to build for the next classes. The answers are there somewhere. Let s all work to find them. Regardless of the specific platform/environment used, embedded systems development requires at least the following: 1. A target platform on which to develop the application. 2. A mechanism for programming the target platform.

2 Target platform is a term used loosely in industry to mean the actual piece of hardware that performs the computation and/or control the place where our application will ultimately run. A target platform can be a simple a single chip (i.e. a PIC), or as complicated as a feature-rich single board computer (build around a multicore high performance processor and possibly several programmable logic devices). Despite the differences in physical characteristics, the target platform s purpose is the same: to execute the software written by the developer. Here, and for the typical microprocessor based application, the software will be the C language. On a programmable logic device, it may be a mixture of C and Verilog, for example. The term to program here has two meanings. The first is the more traditional sense and simply means writing software to control a given piece of hardware (in this case the target platform see above). In the embedded world, programming the target also means storing the executable into memory on the target. As the characteristics of the target platform can vary greatly, so too can the mechanism used to program the target platform. Some development environments allow one to develop directly on the target platform (much like developing code on a PC), while others require that code be developed on another host computer and then transferred to the target platform. We call this transfer downloading to the target platform. Apart from the actual technique(s) used, every embedded system has to provide a mechanism for programming it. One of the more difficult concepts to learn in C is the notion of pointers. Once you begin to see what they are, you ll find that they re actually rather straightforward. In reality, pointers are nothing more complicated than a variable type whose value is interpreted as the address of something in memory. This is exactly the same as interpreting a collection of bits (they re just bits) as an integer, a character, a floating point number, some interesting picture that you downloaded from one of those special websites on the internet, or all the data on your hard drive as a really big integer. There is a very good explanation of pointers with accompanying drawings in your text. Take the time to read through this material. Laboratory Environment This laboratory environment is equipped with Make Controller and Application Board (see class material link on class webpage for more information on Make). As its name implies, the Make system is a feature-rich single board computer equipped with an ARM 7 microprocessor. The ARM 7 is a RISC processor that runs at up to 55 MHz. As a point of interest, we note that all CPU hertzes are not created equal. Based upon its architecture and the way that the machine operated, an ARM 7 running at 55 MHz has the potential of being more powerful than a Pentium running at the same speed. The ARM 7 architecture supports two instruction sets: a 32-bit implementation (called ARM) in support of high performance embedded designs and a 16-bit implementation (called Thumb) that supports a reduced memory footprint for smaller embedded applications. The ARM 7 utilizes a three-stage pipeline architecture: instruction fetch, decode, and execute. We ll talk about what all these mean in class.

3 Interestingly, the ARM family of microprocessors are actually a design (piece of intellectual property) licensed by ARM to a variety of different companies to build. This company grew out of a small company, Acorn Computers, in the UK From Wikipedia Acorn Computers was a British computer company established in Cambridge, England, in The company produced a number of computers which were especially popular in the UK. These included the Acorn Electron, the BBC Micro and the Acorn Archimedes. Acorn's BBC MicroComputer dominated the UK educational computer market during the 1980s and early 1990s, drawing many comparisons with Apple in the U.S. Though the company was broken up into several independent operations in 1998, its legacy includes the development of RISC personal computers. A number of Acorn's former subsidiaries live on today notably ARM Holdings who are globally dominant in the mobile phone and PDA microprocessor market. Acorn is sometimes known as "the British Apple". The version of the processor on the Make Controller is the Atmel AT91SAM7X256. Some other features include: Memory o 32 KB SRAM o 256 KB Flash memory Memory Controller s o SDRAM o SRAM o Error Corrected Code Controller Interrupt Controller and programmable number of external interrupt inputs I/O Communication o Three Parallel Input / Output (PIO) Controllers o 2 USART serial ports o SPI and CAN interfaces o USB port o Ethernet interface JTAG Boundary Scan interface Debug Support Internal Peripherals o 3 16-bit timers o 4 Channel PWM Controller o 8 Channels 10-bit A/D o Real-time Timer o 8 Digital outputs 4 with high current drive

4 o 8 Digital inputs Figure 1: Make Controller Figure 2: Pinouts In this class, we will use many of these hardware features as we design and develop the various laboratory projects; the details regarding each of the components will be given as needed. To program the Make Controller target platform, a host PC is required. Using the Eclipse C Development Environment, code can be developed on a standard PC and then downloaded into the target platform over a USB serial connection.

5 Figure 3: Schematic of the EE 472 Accessory Board. Objectives Introduce the C language, C programs, and the PC development environment: the basic C/C++ preprocessor, program structure, multiple file programs, pointers, passing and returning variables by value and by reference to and from subroutines, designing, compiling, and debugging on a host PC. Introduce the laboratory environment: the embedded development environment, the target platform, host PC, equipment, etc. Learn a bit about the Atmel version of the ARM 7 Processor. Learning the C Language & Working with the Development Environment and Target Platform We ll be working with the Eclipse IDE and the Make (ARM 7) Application Board. First Steps Our first step is to install the tools that we ll need and some sample software onto the machine on which we are working. You can go directly to the Make website then Firmware source code. Once you have the package downloaded, unzip it and extract all of the files to your machine. The following discussion assumes that we are working in the directory.\ firmware-v1.6.2\projects. The prefix of the path is wherever you put the files on your machine. Note, also, I am working on a PC rather than under Linux. You can place this directory on your H: drive if you wish. You are strongly encouraged to work in this directory (.\ firmware-v1.6.2\projects ).

6 Configuring the Project We now begin by opening Eclipse and setting our current workspace. You can open the Workspace Launcher window from File Switch Workspace Other if it didn t popup automatically. Using the H: drive is highly recommended. Note: The directory names along the workspacepathname cannot contain any spaces. Also, Figure 4 shows an older version, but you should be using the newer version discussed above. OK The first splash screen appears. Figure 4 Workbench Figure 5

7 File New C Project Figure 6 Makefile project WinARM Yagarto Give your project a name We ll use: LEDDriverTinyLab1 Note: The project name cannot contain any spaces this is why there are no spaces in the name that we have chosen. See we learned earlier when we had a directory and file name with spaces in them. It didn t work. The compiler couldn t find anything. This is where the frustration in software development comes in.

8 Figure 7 Finish

9 Your environment should now appear as in figure 8. Figure 8 Next, the application needs the source code and tools to build our application. Normally, we would write these ourselves. However, for this application, we are working with existing code. Thus, we must import them into our project. Download LedDriverTiny.zip from the lab1 page on the class website. Feel free to download it and unzip it onto your desktop or any other place. We won t be building this downloaded copy, so it doesn t have to be on the H:\ drive. Next, we need to import the downloaded project into the new project we just created.

10 the following in the Project Explorer pane in the Eclipse IDE: LedDriverTinyLab1 Using the right mouse button to open the selector menu Figure 9 Import On the menu that pops up General File System 10

11 Figure 10 Next In the window that pops up, browse to the directory where you stored the folder LedDriverTiny. the folder LedDriverTiny and select Open the checkbox next to LedDriverTiny. This will, in turn, select all of the files in the right hand window. 11

12 Figure 11 Finish to copy over all files Open the directory structure under the heading LEDDriverTinyLab1 and your display should look something like that in figure

13 Figure 12 main.c and double click to open the file in the display window. Go to the Project menu and select Build All or simply type ctrl + B. This will compile your program. There should be no errors and your display should look like this Figure 13 13

14 You have just built your first ARM 7 application Wahoo that should go on your resume. Downloading to the Target Before we can download our application, we need more tools. Thus, it s back to the Make download website. This time, get select and download the file: mchelper ( By now, you know the routine.download the file, unzip it, extract, and install everything. Make certain that your Make board is connected to your PC through one of the USB ports. Turn power ON to the board Reset the board that s the red button on the system. Cycle power on the board don t even think it. I didn t make up these rules. I m just following them. The McHelper display should now appear something like: Figure 15 Browse to /LEDDriverTinyLab1/output directory. tiny.bin Highlight Samba Board upload 14

15 Your display on McHelper should look like Figure 16 as the file tiny.bin is being downloaded to your ARM 7. It should start executing automatically. You should now see LED0 on the Make Application board and the LED on the Make Controller board flashing. Your just successfully completed your first ARM 7 project. Building Your Own Applications Now that you have successfully run an existing application on the target platform, this next exercise we will make a series of changes to the program to gain practice in some of the techniques that we will have to use in our more complex applications. Application 1 Modify the program LEDDriverTinyLab1.c to flash leds LED-0..LED-3 at approximately a one-second rate. Application 2 Modify the program LEDDriverTinyLab1.c to turn each of the leds: LED-0..LED-3 ON then each of the leds OFF in sequential order (and then circle back) at approximately a one-second rate. 15

16 Application 3 Modify the program LEDDriverTinyLab1.c to flash LED-0 and LED-2 at a one-second rate and LED1 and LED-3 at approximately a two second rate. Implement the delay as a function with the following prototype: void delay(int adelay); Application 4 Write an application that uses the LCD (call it LCDDriverLab1.c). This new application should implement the following display function: void display(char* text, int length, int* delayinseconds); This function takes in a pointer to the first element of a character array, which represents the text, the length of the text (i.e., number of chars), and a pointer to a delay value. Your function should display and flash the text on the LCD using the referenced delay amount. You may use lcd_test (from the example code in the lab1 directory) as a basis for your application. You should also take a look at the lcd display s datasheet. Deliverables A lab report containing (Lab1 should be done individually) 1. The annotated source code for all four applications (in the appendix). 2. Because there are so few features to this lab, we don t expect a full lab report that goes into detail about the test cases, results, etc. We just want to know how you implemented the applications, problems you ran into, and any interesting insights and tricks you discovered. Create a single zip file and submit Lab1 using the turn in link provided on the webpage. Make sure to include your name in the report. Setup a time to demo your applications to the TA or instructor. 16

EE 474 Project 1. Spring Introducing the Lab Environment. University of Washington - Department of Electrical Engineering

EE 474 Project 1. Spring Introducing the Lab Environment. University of Washington - Department of Electrical Engineering EE 474 Project 1 Spring 2019 Introducing the Lab Environment University of Washington - Department of Electrical Engineering Blake Hannaford, Shwetak Patel, Allan Ecker, Brad Emerson, Anh Nguyen, Greg

More information

NIOS CPU Based Embedded Computer System on Programmable Chip

NIOS CPU Based Embedded Computer System on Programmable Chip 1 Objectives NIOS CPU Based Embedded Computer System on Programmable Chip EE8205: Embedded Computer Systems This lab has been constructed to introduce the development of dedicated embedded system based

More information

Resource 2 Embedded computer and development environment

Resource 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 information

Lab 0 Introduction to the MSP430F5529 Launchpad-based Lab Board and Code Composer Studio

Lab 0 Introduction to the MSP430F5529 Launchpad-based Lab Board and Code Composer Studio ECE2049 Embedded Computing in Engineering Design Lab 0 Introduction to the MSP430F5529 Launchpad-based Lab Board and Code Composer Studio In this lab, you will be introduced to the Code Composer Studio

More information

ECGR 4101/5101, Fall 2016: Lab 1 First Embedded Systems Project Learning Objectives:

ECGR 4101/5101, Fall 2016: Lab 1 First Embedded Systems Project Learning Objectives: ECGR 4101/5101, Fall 2016: Lab 1 First Embedded Systems Project Learning Objectives: This lab will introduce basic embedded systems programming concepts by familiarizing the user with an embedded programming

More information

Module 003: Introduction to the Arduino/RedBoard

Module 003: Introduction to the Arduino/RedBoard Name/NetID: Points: /5 Module 003: Introduction to the Arduino/RedBoard Module Outline In this module you will be introduced to the microcontroller board included in your kit. You bought either An Arduino

More information

esi-risc Development Suite Getting Started Guide

esi-risc Development Suite Getting Started Guide 1 Contents 1 Contents 2 2 Overview 3 3 Starting the Integrated Development Environment 4 4 Hello World Tutorial 5 5 Next Steps 8 6 Support 10 Version 2.5 2 of 10 2011 EnSilica Ltd, All Rights Reserved

More information

NIOS CPU Based Embedded Computer System on Programmable Chip

NIOS CPU Based Embedded Computer System on Programmable Chip NIOS CPU Based Embedded Computer System on Programmable Chip EE8205: Embedded Computer Systems NIOS-II SoPC: PART-II 1 Introduction This lab has been constructed to introduce the development of dedicated

More information

Laboratory 1: Eclipse and Karel the Robot

Laboratory 1: Eclipse and Karel the Robot Math 121: Introduction to Computing Handout #2 Laboratory 1: Eclipse and Karel the Robot Your first laboratory task is to use the Eclipse IDE framework ( integrated development environment, and the d also

More information

the NXT-G programming environment

the NXT-G programming environment 2 the NXT-G programming environment This chapter takes a close look at the NXT-G programming environment and presents a few simple programs. The NXT-G programming environment is fairly complex, with lots

More information

Adesto Serial Flash Demo Kit: Quick Start Guide

Adesto Serial Flash Demo Kit: Quick Start Guide Adesto Serial Flash Demo Kit: Quick Start Guide Introduction: This document will provide a simple step-by-step description of how to make use of the Adesto Serial Flash Demo Kit which is comprised of an

More information

Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication

Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication Introduction All processors offer some form of instructions to add, subtract, and manipulate data.

More information

CSCI 1100L: Topics in Computing Lab Lab 1: Introduction to the Lab! Part I

CSCI 1100L: Topics in Computing Lab Lab 1: Introduction to the Lab! Part I CSCI 1100L: Topics in Computing Lab Lab 1: Introduction to the Lab! Part I Welcome to your CSCI-1100 Lab! In the fine tradition of the CSCI-1100 course, we ll start off the lab with the classic bad joke

More information

EE 354 Fall 2015 Lecture 1 Architecture and Introduction

EE 354 Fall 2015 Lecture 1 Architecture and Introduction EE 354 Fall 2015 Lecture 1 Architecture and Introduction Note: Much of these notes are taken from the book: The definitive Guide to ARM Cortex M3 and Cortex M4 Processors by Joseph Yiu, third edition,

More information

CHIPS Newsletter Vol 5 - Yahoo! Mail. Official Newsletter of

CHIPS Newsletter Vol 5 - Yahoo! Mail. Official Newsletter of CHIPS Newsletter Vol 5 From: "chips@elproducts.net" To: "Chuck Hellebuyck" Thursday, April 29, 2010 12:07 AM CHIPs Vol 5 / April 28, 2010 Official Newsletter

More information

Blackfin Online Learning & Development

Blackfin Online Learning & Development Presentation Title: Multimedia Starter Kit Presenter Name: George Stephan Chapter 1: Introduction Sub-chapter 1a: Overview Chapter 2: Blackfin Starter Kits Sub-chapter 2a: What is a Starter Kit? Sub-chapter

More information

Tools Basics. Getting Started with Renesas Development Tools R8C/3LX Family

Tools Basics. Getting Started with Renesas Development Tools R8C/3LX Family Getting Started with Renesas Development Tools R8C/3LX Family Description: The purpose of this lab is to allow a user new to the Renesas development environment to quickly come up to speed on the basic

More information

Software Setup and Introductory Assembly programs for the MSP430 *

Software Setup and Introductory Assembly programs for the MSP430 * OpenStax-CNX module: m15976 1 Software Setup and Introductory Assembly programs for the MSP430 * Texas Instruments This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution

More information

IME-100 Interdisciplinary Design and Manufacturing

IME-100 Interdisciplinary Design and Manufacturing IME-100 Interdisciplinary Design and Manufacturing Introduction Arduino and Programming Topics: 1. Introduction to Microprocessors/Microcontrollers 2. Introduction to Arduino 3. Arduino Programming Basics

More information

µtasker Document CodeWarrior 10

µtasker Document CodeWarrior 10 Embedding it better... µtasker Document CodeWarrior 10 utasker_codewarrior10.doc/0.0 Copyright 2012 M.J.Butcher Consulting Table of Contents 1. Introduction...3 2. Importing the Project into a Workspace...4

More information

Introduction to Arduino. Wilson Wingston Sharon

Introduction to Arduino. Wilson Wingston Sharon Introduction to Arduino Wilson Wingston Sharon cto@workshopindia.com Physical computing Developing solutions that implement a software to interact with elements in the physical universe. 1. Sensors convert

More information

Module Introduction! PURPOSE: The intent of this module, 68K to ColdFire Transition, is to explain the changes to the programming model and architectu

Module Introduction! PURPOSE: The intent of this module, 68K to ColdFire Transition, is to explain the changes to the programming model and architectu Module Introduction! PURPOSE: The intent of this module, 68K to ColdFire Transition, is to explain the changes to the programming model and architecture of ColdFire. This module also provides a description

More information

Time now to look at how main causes the three LaunchPad LEDs to flash in sequence.

Time now to look at how main causes the three LaunchPad LEDs to flash in sequence. Time now to look at how main causes the three LaunchPad LEDs to flash in sequence. Here is main again (Figure 1). Figure 1 main listing from Lab2 I ve already covered the #include statements and the basic

More information

CPE 200L LABORATORY 4: INTRODUCTION TO DE2 BOARD UNIVERSITY OF NEVADA, LAS VEGAS GOALS: BACKGROUND:

CPE 200L LABORATORY 4: INTRODUCTION TO DE2 BOARD UNIVERSITY OF NEVADA, LAS VEGAS GOALS: BACKGROUND: CPE 200L LABORATORY 4: INTRODUCTION TO DE2 BOARD DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING UNIVERSITY OF NEVADA, LAS VEGAS GOALS: Getting familiar with DE2 board installation, properties, usage.

More information

ECE-6170 Embedded Systems Laboratory Exercise 3

ECE-6170 Embedded Systems Laboratory Exercise 3 ECE-6170 Embedded Systems Laboratory Exercise 3 The purpose of this exercise is to learn how to connect simple input and output devices to an FPGA chip and use the Nios II processor to interface with parallel

More information

EE 469 Project 3 Designing an ALU

EE 469 Project 3 Designing an ALU EE 469 Project 3 Designing an ALU Working with an SRAM, Reg File, I/O, and C Stuff Cont. University of Washington - Department of Electrical Engineering Matt Staniszewski - Hoon Kwon Andrew Lawrence -

More information

Authoring World Wide Web Pages with Dreamweaver

Authoring World Wide Web Pages with Dreamweaver Authoring World Wide Web Pages with Dreamweaver Overview: Now that you have read a little bit about HTML in the textbook, we turn our attention to creating basic web pages using HTML and a WYSIWYG Web

More information

Pointers, Arrays and Parameters

Pointers, Arrays and Parameters Pointers, Arrays and Parameters This exercise is different from our usual exercises. You don t have so much a problem to solve by creating a program but rather some things to understand about the programming

More information

ECE372 CodeWarrior Simulator Andreou/Michaelides

ECE372 CodeWarrior Simulator Andreou/Michaelides CodeWarrior simulator demo The code can be written in C language (higher level) as well as in Assembly language (lower level). General C commands are applied across microcontroller families as opposed

More information

NCMail: Microsoft Outlook User s Guide

NCMail: Microsoft Outlook User s Guide NCMail: Microsoft Outlook 2003 Email User s Guide Revision 1.0 11/10/2007 This document covers how to use Microsoft Outlook 2003 for accessing your email with the NCMail Exchange email system. The syntax

More information

Writing Code and Programming Microcontrollers

Writing Code and Programming Microcontrollers Writing Code and Programming Microcontrollers This document shows how to develop and program software into microcontrollers. It uses the example of an Atmel ATmega32U2 device and free software. The ATmega32U2

More information

Coding Workshop. Learning to Program with an Arduino. Lecture Notes. Programming Introduction Values Assignment Arithmetic.

Coding Workshop. Learning to Program with an Arduino. Lecture Notes. Programming Introduction Values Assignment Arithmetic. Coding Workshop Learning to Program with an Arduino Lecture Notes Table of Contents Programming ntroduction Values Assignment Arithmetic Control Tests f Blocks For Blocks Functions Arduino Main Functions

More information

Physics 335 Intro to MicroControllers and the PIC Microcontroller

Physics 335 Intro to MicroControllers and the PIC Microcontroller Physics 335 Intro to MicroControllers and the PIC Microcontroller May 4, 2009 1 The Pic Microcontroller Family Here s a diagram of the Pic 16F84A, taken from Microchip s data sheet. Note that things are

More information

QUIZ. What are 3 differences between C and C++ const variables?

QUIZ. What are 3 differences between C and C++ const variables? QUIZ What are 3 differences between C and C++ const variables? Solution QUIZ Source: http://stackoverflow.com/questions/17349387/scope-of-macros-in-c Solution The C/C++ preprocessor substitutes mechanically,

More information

APPLICATION NOTE. Product Family: Hx-CTRIO Number: AN-MISC-022. Date Issued:

APPLICATION NOTE. Product Family: Hx-CTRIO Number: AN-MISC-022. Date Issued: APPLICATION NOTE THIS INFORMATION PROVIDED BY AUTOMATIONDIRECT.COM TECHNICAL SUPPORT These documents are provided by our technical support department to assist others. We do not guarantee that the data

More information

ECE 471 Embedded Systems Lecture 2

ECE 471 Embedded Systems Lecture 2 ECE 471 Embedded Systems Lecture 2 Vince Weaver http://www.eece.maine.edu/~vweaver vincent.weaver@maine.edu 3 September 2015 Announcements HW#1 will be posted today, due next Thursday. I will send out

More information

LUFA & Studio5 Beginner s Guide Part 3: Create New Project with USB CDC Connectivity

LUFA & Studio5 Beginner s Guide Part 3: Create New Project with USB CDC Connectivity Introduction LUFA & Studio5 Beginner s Guide Part 3: Create New Project with USB CDC Connectivity In Part 2 of this guide, the VirtualSerial Demo in the Studio5 project was modified so that it would run

More information

EE 469 Project 5 Designing a Pipelined CPU. Bring it Together Phase 2. University of Washington - Department of Electrical Engineering

EE 469 Project 5 Designing a Pipelined CPU. Bring it Together Phase 2. University of Washington - Department of Electrical Engineering EE 469 Project 5 Designing a Pipelined CPU Bring it Together Phase 2. University of Washington - Department of Electrical Engineering Matt Staniszewski, Hoon Kwon, Andrew Lawrence, and James K. Peckol

More information

ICOM 4015 Advanced Programming Laboratory. Chapter 1 Introduction to Eclipse, Java and JUnit

ICOM 4015 Advanced Programming Laboratory. Chapter 1 Introduction to Eclipse, Java and JUnit ICOM 4015 Advanced Programming Laboratory Chapter 1 Introduction to Eclipse, Java and JUnit University of Puerto Rico Electrical and Computer Engineering Department by Juan E. Surís 1 Introduction This

More information

Fujitsu 2010 FAE Training Lab Sunnyvale, CA

Fujitsu 2010 FAE Training Lab Sunnyvale, CA Sunnyvale, CA Introduction This lab will familiarize you with the IAR Embedded Workbench for ARM and will utilize the Fujitsu KSK MB9BF506 evaluation board. EWARM has the ability to simulate a generic

More information

Codewarrior for ColdFire (Eclipse) 10.0 Setup

Codewarrior for ColdFire (Eclipse) 10.0 Setup Codewarrior for ColdFire (Eclipse) 10.0 Setup 1. Goal This document is designed to ensure that your Codewarrior for Coldfire v10.0 environment is correctly setup and to orient you to it basic functionality

More information

CS Programming Exercise:

CS Programming Exercise: CS Programming Exercise: An Introduction to Java and the ObjectDraw Library Objective: To demonstrate the use of objectdraw graphics primitives and Java programming tools This lab will introduce you to

More information

Note. The above image and many others are courtesy of - this is a wonderful resource for designing circuits.

Note. The above image and many others are courtesy of   - this is a wonderful resource for designing circuits. Robotics and Electronics Unit 2. Arduino Objectives. Students will understand the basic characteristics of an Arduino Uno microcontroller. understand the basic structure of an Arduino program. know how

More information

Lab 1 Introduction to Microcontroller

Lab 1 Introduction to Microcontroller Lab 1 Introduction to Microcontroller Feb. 2016 1 Objective 1. To be familiar with microcontrollers. 2. Introducing LPC2138 microcontroller. 3. To be familiar with Keil and Proteus software tools. Introduction

More information

CSC 101: Lab #1 Introduction and Setup Due Date: 5:00pm, day after your lab session

CSC 101: Lab #1 Introduction and Setup Due Date: 5:00pm, day after your lab session Name: WFU Email: Lab Section: Tuesday, 9:30 Tuesday, 12:00 Tuesday, 1:30 Tuesday, 3:00 Thursday, 3:00 CSC 101: Lab #1 Introduction and Setup Due Date: 5:00pm, day after your lab session Purpose: The purpose

More information

CMPSCI 187 / Spring 2015 Sorting Kata

CMPSCI 187 / Spring 2015 Sorting Kata Due on Thursday, April 30, 8:30 a.m Marc Liberatore and John Ridgway Morrill I N375 Section 01 @ 10:00 Section 02 @ 08:30 1 Contents Overview 3 Learning Goals.................................................

More information

QUIZ. Source:

QUIZ. Source: QUIZ Source: http://stackoverflow.com/questions/17349387/scope-of-macros-in-c Ch. 4: Data Abstraction The only way to get massive increases in productivity is to leverage off other people s code. That

More information

Intro to Multisim & Ultiboard

Intro to Multisim & Ultiboard Intro to Multisim & Ultiboard (Lab by Wayne Stanton) Note: This document was written for version 13.0 of Multisim and Ultiboard. Note: A grade for this lab will be applied upon receipt of the project file.

More information

DKAN0011A Setting Up a Nios II System with SDRAM on the DE2

DKAN0011A Setting Up a Nios II System with SDRAM on the DE2 DKAN0011A Setting Up a Nios II System with SDRAM on the DE2 04 November 2009 Introduction This tutorial details how to set up and instantiate a Nios II system on Terasic Technologies, Inc. s DE2 Altera

More information

ELC4438: Embedded System Design Embedded Processor

ELC4438: Embedded System Design Embedded Processor ELC4438: Embedded System Design Embedded Processor Liang Dong Electrical and Computer Engineering Baylor University 1. Processor Architecture General PC Von Neumann Architecture a.k.a. Princeton Architecture

More information

Adding content to your Blackboard 9.1 class

Adding content to your Blackboard 9.1 class Adding content to your Blackboard 9.1 class There are quite a few options listed when you click the Build Content button in your class, but you ll probably only use a couple of them most of the time. Note

More information

How To Upload Your Newsletter

How To Upload Your Newsletter How To Upload Your Newsletter Using The WS_FTP Client Copyright 2005, DPW Enterprises All Rights Reserved Welcome, Hi, my name is Donna Warren. I m a certified Webmaster and have been teaching web design

More information

RTMS - Software Setup

RTMS - Software Setup RTMS - Software Setup These instructions are for setting up the RTMS (Robot Tracking & Management System) software. This software will run on your PC/MAC and will be used for various labs in order to allow

More information

Laboratory Assignment #3 Eclipse CDT

Laboratory Assignment #3 Eclipse CDT Lab 3 September 12, 2010 CS-2303, System Programming Concepts, A-term 2012 Objective Laboratory Assignment #3 Eclipse CDT Due: at 11:59 pm on the day of your lab session To learn to learn to use the Eclipse

More information

Your . A setup guide. Last updated March 7, Kingsford Avenue, Glasgow G44 3EU

Your  . A setup guide. Last updated March 7, Kingsford Avenue, Glasgow G44 3EU fuzzylime WE KNOW DESIGN WEB DESIGN AND CONTENT MANAGEMENT 19 Kingsford Avenue, Glasgow G44 3EU 0141 416 1040 hello@fuzzylime.co.uk www.fuzzylime.co.uk Your email A setup guide Last updated March 7, 2017

More information

University of Massachusetts Amherst Computer Systems Lab 1 (ECE 354) LAB 1 Reference Manual

University of Massachusetts Amherst Computer Systems Lab 1 (ECE 354) LAB 1 Reference Manual University of Massachusetts Amherst Computer Systems Lab 1 (ECE 354) LAB 1 Reference Manual Lab 1: Using NIOS II processor for code execution on FPGA Objectives: 1. Understand the typical design flow in

More information

Computer Basics: Step-by-Step Guide (Session 2)

Computer Basics: Step-by-Step Guide (Session 2) Table of Contents Computer Basics: Step-by-Step Guide (Session 2) ABOUT PROGRAMS AND OPERATING SYSTEMS... 2 THE WINDOWS 7 DESKTOP... 3 TWO WAYS TO OPEN A PROGRAM... 4 DESKTOP ICON... 4 START MENU... 5

More information

Getting Started with STK200 Dragon

Getting Started with STK200 Dragon Getting Started with STK200 Dragon Introduction This guide is designed to get you up and running with main software and hardware. As you work through it, there could be lots of details you do not understand,

More information

Section Objective: Acquaint with specifications of Launchpad Acquaint with location of switches, LEDs, power-on switch, powering the board.

Section Objective: Acquaint with specifications of Launchpad Acquaint with location of switches, LEDs, power-on switch, powering the board. Lab-0: Getting started with Tiva C Series Launchpad and Code Composer Studio IDE ERTS Lab, CSE Department IIT Bombay Lab Objective: 1. 2. 3. 4. Familiarization with Tiva C series Launchpad Install Code

More information

User Guide for Running a Project on the Embest Board

User Guide for Running a Project on the Embest Board 1. Overview User Guide for Running a Project on the Embest Board Li Yu, M. Serra, S. Lee-Cultura Department of Computer Science, University of Victoria The Embest University board is a development board

More information

Lab Course Microcontroller Programming

Lab Course Microcontroller Programming Technische Universität München Fakultät für Informatik Forschungs- und Lehreinheit Informatik VI Robotics and Embedded Systems Lab Course Microcontroller Programming Michael Geisinger geisinge@in.tum.de

More information

None. MICROCONTROLLERS III

None. MICROCONTROLLERS III MICROCONTROLLERS III PREREQUISITES: MODULE 10: MICROCONTROLLERS II. OUTLINE OF MODULE 11: What you will learn about in this Module: Use of a much more powerful microcontroller: the PIC16F877 In-circuit

More information

The NetBeans IDE is a big file --- a minimum of around 30 MB. After you have downloaded the file, simply execute the file to install the software.

The NetBeans IDE is a big file --- a minimum of around 30 MB. After you have downloaded the file, simply execute the file to install the software. Introduction to Netbeans This document is a brief introduction to writing and compiling a program using the NetBeans Integrated Development Environment (IDE). An IDE is a program that automates and makes

More information

ATmega128. Introduction

ATmega128. Introduction ATmega128 Introduction AVR Microcontroller 8-bit microcontroller released in 1997 by Atmel which was founded in 1984. The AVR architecture was conceived by two students (Alf-Egil Bogen, Vergard-Wollen)

More information

Welcome to Lab! Feel free to get started until we start talking! The lab document is located on the course website:

Welcome to Lab! Feel free to get started until we start talking! The lab document is located on the course website: Welcome to Lab! Feel free to get started until we start talking! The lab document is located on the course website: https://users.wpi.edu/~sjarvis/ece2049_smj/ We will come around checking your pre-labs

More information

LAB1. Get familiar with Tools and Environment

LAB1. Get familiar with Tools and Environment LAB1 Get familiar with Tools and Environment Outline Intro to ARMmite Pro development board Intro to LPC2103 microcontroller Cross development environment and tools Program the broad in C: light the LED

More information

Microcontrollers. Microcontroller

Microcontrollers. Microcontroller Microcontrollers Microcontroller A microprocessor on a single integrated circuit intended to operate as an embedded system. As well as a CPU, a microcontroller typically includes small amounts of RAM and

More information

PHY 351/651 LABORATORY 1 Introduction to LabVIEW

PHY 351/651 LABORATORY 1 Introduction to LabVIEW PHY 351/651 LABORATORY 1 Introduction to LabVIEW Introduction Generally speaking, modern data acquisition systems include four basic stages 1 : o o A sensor (or transducer) circuit that transforms a physical

More information

CSE P567 - Winter 2010 Lab 1 Introduction to FGPA CAD Tools

CSE P567 - Winter 2010 Lab 1 Introduction to FGPA CAD Tools CSE P567 - Winter 2010 Lab 1 Introduction to FGPA CAD Tools This is a tutorial introduction to the process of designing circuits using a set of modern design tools. While the tools we will be using (Altera

More information

Graduate Institute of Electronics Engineering, NTU Advanced VLSI SOPC design flow

Graduate Institute of Electronics Engineering, NTU Advanced VLSI SOPC design flow Advanced VLSI SOPC design flow Advisor: Speaker: ACCESS IC LAB What s SOC? IP classification IP reusable & benefit Outline SOPC solution on FPGA SOPC design flow pp. 2 What s SOC? Definition of SOC Advantage

More information

EE 367 Logic Design Lab #1 Introduction to Xilinx ISE and the ML40X Eval Board Date: 1/21/09 Due: 1/28/09

EE 367 Logic Design Lab #1 Introduction to Xilinx ISE and the ML40X Eval Board Date: 1/21/09 Due: 1/28/09 EE 367 Logic Design Lab #1 Introduction to Xilinx ISE and the ML40X Eval Board Date: 1/21/09 Due: 1/28/09 Lab Description Today s lab will introduce you to the Xilinx Integrated Software Environment (ISE)

More information

ECE2049 E17 Lecture 4 MSP430 Architecture & Intro to Digital I/O

ECE2049 E17 Lecture 4 MSP430 Architecture & Intro to Digital I/O ECE2049-E17 Lecture 4 1 ECE2049 E17 Lecture 4 MSP430 Architecture & Intro to Digital I/O Administrivia Homework 1: Due today by 7pm o Either place in box in ECE office or give to me o Office hours tonight!

More information

Micrium OS Kernel Labs

Micrium OS Kernel Labs Micrium OS Kernel Labs 2018.04.16 Micrium OS is a flexible, highly configurable collection of software components that provides a powerful embedded software framework for developers to build their application

More information

538 Lecture Notes Week 1

538 Lecture Notes Week 1 538 Clowes Lecture Notes Week 1 (Sept. 6, 2017) 1/10 538 Lecture Notes Week 1 Announcements No labs this week. Labs begin the week of September 11, 2017. My email: kclowes@ryerson.ca Counselling hours:

More information

Summer Assignment for AP Computer Science. Room 302

Summer Assignment for AP Computer Science. Room 302 Fall 2016 Summer Assignment for AP Computer Science email: hughes.daniel@north-haven.k12.ct.us website: nhhscomputerscience.com APCS is your subsite Mr. Hughes Room 302 Prerequisites: You should have successfully

More information

Arduino IDE Friday, 26 October 2018

Arduino IDE Friday, 26 October 2018 Arduino IDE Friday, 26 October 2018 12:38 PM Looking Under The Hood Of The Arduino IDE FIND THE ARDUINO IDE DOWNLOAD First, jump on the internet with your favorite browser, and navigate to www.arduino.cc.

More information

HyperBus Memory Controller (HBMC) Tutorial

HyperBus Memory Controller (HBMC) Tutorial Synaptic Labs' HyperBus Memory Controller (HBMC) Tutorial T005B: A Qsys based Nios II Reference design with a simple application running from HyperFlash and HyperRAM device using S/Labs' HBMC IP. The HyperRAM

More information

When Girls Design CPUs!

When Girls Design CPUs! When Girls Design CPUs! An overview on one of the world s most famous CPU cores: ARM 1 Once Upon a Time There was a company in UK Acorn This company was the competitor to IBM Apple They were creating personal

More information

Lab 1 Implementing a Simon Says Game

Lab 1 Implementing a Simon Says Game ECE2049 Embedded Computing in Engineering Design Lab 1 Implementing a Simon Says Game In the late 1970s and early 1980s, one of the first and most popular electronic games was Simon by Milton Bradley.

More information

Physics 306 Computing Lab 1: Hello, World!

Physics 306 Computing Lab 1: Hello, World! 1. Introduction Physics 306 Computing Lab 1: Hello, World! In today s lab, you will learn how to write simple programs, to compile them, and to run them. You will learn about input and output, variables,

More information

Micrium uc/probe XMC getting started. XMC TM microcontrollers July 2016

Micrium uc/probe XMC getting started. XMC TM microcontrollers July 2016 Micrium uc/probe XMC getting started XMC TM microcontrollers July 2016 Agenda 1 2 3 4 5 6 7 8 Objective of this tutorial What we need to follow this tutorial? Introduction to Micrium uc/probe TM XMC TM

More information

CPSC 150 Laboratory Manual. Lab 1 Introduction to Program Creation

CPSC 150 Laboratory Manual. Lab 1 Introduction to Program Creation CPSC 150 Laboratory Manual A Practical Approach to Java, jedit & WebCAT Department of Physics, Computer Science & Engineering Christopher Newport University Lab 1 Introduction to Program Creation Welcome

More information

NXP Cortex-M0 LPC1100L Design with a Cortex-M0 in a DIP package ASEE Tech Session. Sergio Scaglia (NXP Semiconductors) August 2012

NXP Cortex-M0 LPC1100L Design with a Cortex-M0 in a DIP package ASEE Tech Session. Sergio Scaglia (NXP Semiconductors) August 2012 NXP Cortex-M0 LPC1100L Design with a Cortex-M0 in a DIP package ASEE Tech Session Sergio Scaglia (NXP Semiconductors) August 2012 Agenda NXP Microcontroller Portfolio Cortex M0 LPC1100L Family Support/Resources

More information

Microcontroller: CPU and Memory

Microcontroller: CPU and Memory Microcontroller: CPU and Memory Amarjeet Singh January 15, 2013 Partly adopted from EE202A, UCLA Slides by Mani Srivastava Logistics Programming EVK1100 Guidelines for programming using AVR32 Studio on

More information

You have a PC with a USB interface, running Microsoft Windows XP (SP2 or greater) or Vista You have the Workshop Installation Software Flash Drive

You have a PC with a USB interface, running Microsoft Windows XP (SP2 or greater) or Vista You have the Workshop Installation Software Flash Drive 03- COMPOSER STUDIO Stellaris Development and Evaluation Kits for Code Composer Studio The Stellaris Development and Evaluation Kits provide a low-cost way to start designing with Stellaris microcontrollers

More information

Remodeling Your Office A New Look for the SAS Add-In for Microsoft Office

Remodeling Your Office A New Look for the SAS Add-In for Microsoft Office Paper SAS1864-2018 Remodeling Your Office A New Look for the SAS Add-In for Microsoft Office ABSTRACT Tim Beese, SAS Institute Inc., Cary, NC Millions of people spend their weekdays in an office. Occasionally

More information

CS 153 Design of Operating Systems

CS 153 Design of Operating Systems CS 153 Design of Operating Systems Winter 19 Lecture 2: Historical perspective Instructor: Nael Abu-Ghazaleh Last time What is an OS? What roles does it play? Today: Historic evolution of Operating Systems

More information

Rapid RX600 System Development Using the RPDL and PDG

Rapid RX600 System Development Using the RPDL and PDG ID 320L: Rapid RX600 System Development Using the RPDL and PDG Renesas Electronics America Inc. Brandon Hussey Applications Engineer 12 & 13 October 2010 Version: 1.0 Welcome to the Rapid Development for

More information

As CCS starts up, a splash screen similar to one shown below will appear.

As CCS starts up, a splash screen similar to one shown below will appear. APPENDIX A. CODE COMPOSER STUDIO (CCS) v6.1: A BRIEF TUTORIAL FOR THE DSK6713 A.1 Introduction Code Composer Studio (CCS) is Texas Instruments Eclipse-based integrated development environment (IDE) for

More information

Embedded Systems - FS 2018

Embedded Systems - FS 2018 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Embedded Systems - FS 2018 Lab 0 Date : 28.2.2018 Prelab Filling the gaps Goals of this Lab You are expected to be already familiar

More information

POOSL IDE Installation Manual

POOSL IDE Installation Manual Embedded Systems Innovation by TNO POOSL IDE Installation Manual Tool version 4.1.0 7 th November 2017 1 POOSL IDE Installation Manual 1 Installation... 4 1.1 Minimal system requirements... 4 1.2 Installing

More information

5. A small dialog window appears; enter a new password twice (this is different from Dori!) and hit Go.

5. A small dialog window appears; enter a new password twice (this is different from Dori!) and hit Go. Installing Wordpress from JMA Lab to JMA Server 1. Take note these instructions are streamlined for the JMA lab they can t be performed in this fashion from home! 2. Wordpress is a database driven web

More information

CSCE 312 Lab manual. Instructor: Dr. Ki HwanYum. Prepared by. Dr. Rabi Mahapatra. Suneil Mohan & Amitava Biswas. Fall 2016

CSCE 312 Lab manual. Instructor: Dr. Ki HwanYum. Prepared by. Dr. Rabi Mahapatra. Suneil Mohan & Amitava Biswas. Fall 2016 CSCE 312 Lab manual Lab-3 - Sequential logic design Instructor: Dr. Ki HwanYum Prepared by Dr. Rabi Mahapatra. Suneil Mohan & Amitava Biswas Fall 2016 Department of Computer Science & Engineering Texas

More information

TeamSpot 3. Introducing TeamSpot. TeamSpot 3 (rev. 25 October 2006)

TeamSpot 3. Introducing TeamSpot. TeamSpot 3 (rev. 25 October 2006) TeamSpot 3 Introducing TeamSpot TeamSpot 3 (rev. 25 October 2006) Table of Contents AN INTRODUCTION TO TEAMSPOT...3 INSTALLING AND CONNECTING (WINDOWS XP/2000)... 4 INSTALLING AND CONNECTING (MACINTOSH

More information

keyestudio Keyestudio MEGA 2560 R3 Board

keyestudio Keyestudio MEGA 2560 R3 Board Keyestudio MEGA 2560 R3 Board Introduction: Keyestudio Mega 2560 R3 is a microcontroller board based on the ATMEGA2560-16AU, fully compatible with ARDUINO MEGA 2560 REV3. It has 54 digital input/output

More information

Chapter 5:: Target Machine Architecture (cont.)

Chapter 5:: Target Machine Architecture (cont.) Chapter 5:: Target Machine Architecture (cont.) Programming Language Pragmatics Michael L. Scott Review Describe the heap for dynamic memory allocation? What is scope and with most languages how what happens

More information

Quick Start Guide TWR-S08PT60. 5-Volt S08P Family of 8-bit MCUs for Industrial and Appliance Applications TOWER SYSTEM

Quick Start Guide TWR-S08PT60. 5-Volt S08P Family of 8-bit MCUs for Industrial and Appliance Applications TOWER SYSTEM TWR-S08PT60 5-Volt S08P Family of 8-bit MCUs for Industrial and Appliance Applications TOWER SYSTEM Get to Know the TWR-S08PT60 Primary Connector Force BDM Infrared Port Reset Switch Motor Control Daughter

More information

TI ARM Lab 2 Bright Light

TI ARM Lab 2 Bright Light TI ARM Lab 2 Bright Light National Science Foundation Funded in part, by a grant from the National Science Foundation DUE 1068182 Acknowledgements Developed by Craig Kief, and Brian Zufelt, at the Configurable

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

ECE2049 Embedded Computing in Engineering Design. Lab #0 Introduction to the MSP430F5529 Launchpad-based Lab Board and Code Composer Studio

ECE2049 Embedded Computing in Engineering Design. Lab #0 Introduction to the MSP430F5529 Launchpad-based Lab Board and Code Composer Studio ECE2049 Embedded Computing in Engineering Design Lab #0 Introduction to the MSP430F5529 Launchpad-based Lab Board and Code Composer Studio In this lab you will be introduced to the Code Composer Studio

More information