Microcontroller VU
|
|
- Christian Ward
- 5 years ago
- Views:
Transcription
1 Microcontroller VU Kyrill Winkler SS 2014 Featuring Today: Structured C Programming
2 Weekly Training Objective Already done C demo program Floating point operations Interrupts Generating periodic signals This week Interrupt & callback demo Input capture UART receiver UART sender Keypad Next week PWM signals and glitches TWI (I 2 C) Button debouncing LCD 137
3 138 Follow-up from last time: My dear compiler int o = y + (z ^ 255); What does (z ^ 255) do?
4 138 Follow-up from last time: My dear compiler int o = y + (z ^ 255); What does (z ^ 255) do? It depends.
5 138 Follow-up from last time: My dear compiler int o = y + (z ^ 255); What does (z ^ 255) do? It depends. What data-type does z have? Lets assume it is int, then it has... bits!
6 138 Follow-up from last time: My dear compiler int o = y + (z ^ 255); What does (z ^ 255) do? It depends. What data-type does z have? Lets assume it is int, then it has 16 bits!
7 138 Follow-up from last time: My dear compiler int o = y + (z ^ 255); What does (z ^ 255) do? It depends. What data-type does z have? Lets assume it is int, then it has 16 bits! So the snipplet negates the lower 8 bits of z.
8 138 Follow-up from last time: My dear compiler int o = y + (z ^ 255); What does (z ^ 255) do? It depends. What data-type does z have? Lets assume it is int, then it has 16 bits! So the snipplet negates the lower 8 bits of z. The size of int is varies across toolchains/architectures! Therefore be explicit and use uint8 t or uint16 t etc.!
9 139 While on the topic of variable declarations... b o o l t i m e o u t = f a l s e ; ISR (MY TIMER INTERRUPT, ISR NOBLOCK){ t i m e o u t = t r u e ; i n t main ( void ) { i f ( t i m e o u t == t r u e ) { t u r n o n l e d s ( ) ;
10 139 While on the topic of variable declarations... b o o l t i m e o u t = f a l s e ; ISR (MY TIMER INTERRUPT, ISR NOBLOCK){ t i m e o u t = t r u e ; i n t main ( void ) { i f ( t i m e o u t == t r u e ) { t u r n o n l e d s ( ) ; On some versions of the toolchain the if-statement will be interpreted as always false!
11 140 The volatile keyword b o o l v o l a t i l e t i m e o u t = f a l s e ; ISR (MY TIMER INTERRUPT, ISR NOBLOCK){ t i m e o u t = t r u e ; i n t main ( void ) { i f ( t i m e o u t == t r u e ) { t u r n o n l e d s ( ) ; volatile prevents the compiler from optimizing timeout, in particular it won t assume that timeout is never changed.
12 141 The const keyword const is used to declare variables that are written to only once (more on that later)
13 141 The const keyword const is used to declare variables that are written to only once (more on that later) C allows using pointers as output parameters
14 141 The const keyword const is used to declare variables that are written to only once (more on that later) C allows using pointers as output parameters You should declare whether this is your intention or not: myfunc(uint8 t *str) myfunc(const uint8 t *str).
15 142 Side effects Avoid side effects! Never use printf("%i", i++) etc.
16 142 Side effects Avoid side effects! Never use printf("%i", i++) etc. Be aware of short-circuit evaluation: if (a!= 0 && myfunc(b)!= 0)
17 142 Side effects Avoid side effects! Never use printf("%i", i++) etc. Be aware of short-circuit evaluation: if (a!= 0 && myfunc(b)!= 0) Depending on value of a, myfunc(b) may or may not be called!
18 143 Structured C Programming 2 important pradigms: background (BG) tasks vs. interrupt service routines (ISRs) callback functions
19 143 Structured C Programming 2 important pradigms: background (BG) tasks vs. interrupt service routines (ISRs) callback functions Helpful extensions ( -std=c99 ) <util/atomic.h> <stdbool.h> useful macros for interrupts, eeprom, sleepmode, crc, baudrate, watchdog,... detailed documentation: avr-libc manual
20 144 Backgrounding Basic structure of a C-program: i n t main ( void ){ i n i t ( ) ; // c a l l s i n i t i a l i z t i o n s o f used modules f o r ( ; ; ) { background ( ) ; // c a l l s background t a s k s s l e e p ( ) ; Every interrupt executes the background code once.
21 145 Backgrounding Basic structure of a background task: void background ( void ){ i f ( mystate == i n i t ){ b g t a s k p l a y I n t r o M u s i c ( ) ; b g t a s k s h o w I n t r o A n i m a t i o n ( ) ; e l s e i f ( mystate == g o a l ){...
22 145 Backgrounding Basic structure of a background task: void background ( void ){ i f ( mystate == i n i t ){ b g t a s k p l a y I n t r o M u s i c ( ) ; b g t a s k s h o w I n t r o A n i m a t i o n ( ) ; e l s e i f ( mystate == g o a l ){... Beware of monopolizing background tasks! Animation will be played after bgtask playintromusic returned.
23 146 Backgrounding Implementing a basic scheduler: void background ( void ){ w h i l e ( t h e r e i s s o m e t h i n g t o d o ( ) ) { i f ( mystate==i n i t ){ i f (! done music ) done music=b g t a s k p l a y I n t r o M u s i c ( ) ; i f (! done anim ) done anim=b g t a s k s h o w I n t r o A n i m a t i o n ( ) ; e l s e i f ( mystate==g o a l ){...
24 Callback functions 147
25 147 Callback functions 1 v o i d ( m y C a l l b a c k F u n c t i o n ) ( u i n t 8 t ) ; // g l o b a l f u n c t i o n p o i n t e r v a r i a b l e 2 3 ISR (MY TIMER INTERRUPT, ISR NOBLOCK){ 4 / e x e c u t e t h e c a l l b a c k f u n c t i o n / 5 mycallbackfunction ( 1 ) ; 6 7 v o i d s e t c a l l b a c k ( v o i d ( c a l l b a c k ) ( u i n t 8 t )){ 8 m y C a l l b a c k F u n c t i o n = c a l l b a c k ; 9 10 v o i d myfunc ( u i n t 8 t i ){ i n t main ( v o i d ){ 15 s e t c a l l b a c k ( myfunc ) ; // r e g i s t e r myfunc as c a l l b a c k f u n c t i o n 16
26 148 ATMega1280 s memories 128 KB program memory (flash) Biggest memory in ATMega1280 Great for storing constants 8 KB internal RAM RAM size is quite restricted Beware of stack overflow 4 KB EEPROM Useful for storing values that rarely change Limited number of read/write cycles
27 149 Using ATMega1280 s memories in C Memory sections available:.text: program memory, flash.data: RAM and flash.bss: RAM.eeprom The.data memory section contains constants and variable initializations; it occupies both RAM and flash space. RAM is volatile and therfore not programmable (before run-time). Therefore: put constant values into flash alone! No need to occupy twice the required memory! How? See Section 5 of the avr-libc manual.
28 150 The.initN sections (section 4.6 avr-libc).init0 Weakly bound to init(). If user defines init(), it will be jumped into immediately after a reset..init1 Unused. User definable..init2 In C programs, weakly bound to initialize the stack, and to clear zero reg (r1)..init3 Unused. User definable..init4 For devices with > 64 KB of ROM,.init4 defines the code which takes care of copying the contents of.data from the flash to SRAM. For all other devices, this code as well as the code to zero out the.bss section is loaded from libgcc.a..init5 Unused. User definable..init6 Unused for C programs, but used for constructors in C++ programs..init7 Unused. User definable..init8 Unused. User definable..init9 Jumps into main().
29 151 Using.initN sections Applying attributes to functions v o i d m y i n i t p o r t b ( v o i d ) a t t r i b u t e ( ( naked, used, s e c t i o n (. i n i t 3 ) ) ) ; v o i d m y i n i t p o r t b ( v o i d ) { PORTB = 0 x f f ; DDRB = 0 x f f ;
30 152 Benchmarking memory usage After compilation, the static memory usage of your program can be analyzed via avr-size. Analyzing the dynamic memory usage can be done by (1) Code analysis (requires bounding recursion depth and heap usage). (2) Run-time analysis directly on the µc or via simulation (needs a software that monitors memory access).
31 153 Dynamic memory benchmark example v o i d m e m s t a t I n i t ( v o i d ) a t t r i b u t e ( ( naked, used, s e c t i o n (. i n i t 3 ) ) ) ; e x t e r n u i n t 8 t end ; // end o f b s s // n e v e r c a l l t h i s f u n c t i o n! v o i d memstatinit ( ) { r e g i s t e r u i n t 1 6 t i ; f o r ( i =( u i n t 1 6 t )& end ; i<ramend; i ++) { ( u i n t 8 t ) i = ( u i n t 8 t ) i ;
32 154 Dynamic memory benchmark example 1 m em s tat t memstatgetstat ( v o i d ) { 2 s t a t i c m e m s t a t t s t a t ; 3 u i n t 1 6 t i ; 4 u i n t 8 t u n i n i t ; 5 6 s t a t. maxstacksize = 0 x f f f f ; 7 s t a t. maxheapsize = 0 x f f f f ; 8 // search end of stack, s t a r t at SP and go down // search end of heap, s t a r t at bss end and go up 11 u n i n i t = 0 ; 12 f o r ( i =( u i n t 1 6 t )& end ; i<ramend; i ++) { 13 i f ( ( u i n t 8 t ) i == ( u i n t 8 t ) i ) { 14 u n i n i t ++; 15 i f ( u n i n i t == 10) { 16 s t a t. maxheapsize = i ( u i n t 1 6 t )& end 9 ; 17 break ; e l s e { u n i n i t = 0 ; r e t u r n &s t a t ; 22
33 155 Linker scripts (in the lab) located at /usr/avr/lib/ldscripts/ Mapping of virtual memory adresses for the ELF-file Very powerful!
34 156 Bit tricks Memory constraints demand efficient programming; in particular, using a byte to store a single bit (flag) is infeasible. Thus: pack eight bits in a byte using techniques that efficiently pack and upack bytes (union, struct). Other bitwise techniques also come in handy, e.g. swap contents of two registers without using a temp register.
35 157 Struct/union example RTC Config Register: typedef s t r u c t { u i n t 8 t r s : 2 ; u i n t 8 t : 2 ; u i n t 8 t sqwe : 1 ; u i n t 8 t : 2 ; u i n t 8 t out : 1 ; d s s q w c o n f i g t ; typedef union { d s s q w c o n f i g t r e g s ; u i n t 8 t raw ; ds1307 sqw mem t ;
36 158 Summary Put constants into the flash (program) memory. Analyze the static and dynamic memory usage of your programs. Apply bitwise techniques. Read avr-libc manual.
37 Weekly Training Objective Already done C demo program Floating point operations Interrupts Generating periodic signals This week Interrupt & callback demo Input capture UART receiver UART sender Keypad Next week PWM signals and glitches TWI (I 2 C) Button debouncing LCD 159
CprE 288 Introduction to Embedded Systems Exam 1 Review. 1
CprE 288 Introduction to Embedded Systems Exam 1 Review http://class.ece.iastate.edu/cpre288 1 Overview of Today s Lecture Announcements Exam 1 Review http://class.ece.iastate.edu/cpre288 2 Announcements
More information,$5$SSOLFDWLRQ1RWH$95 (IILFLHQWSURJUDPPLQJRI$WPHO V $95 PLFURFRQWUROOHUV
,$5$SSOLFDWLRQ1RWH$95 (IILFLHQWSURJUDPPLQJRI$WPHO V $95 PLFURFRQWUROOHUV 6XPPDU\ This application note provides some useful hints on how to program the Atmel AVR microcontrollers using the IAR Compiler.
More informationIntroduction to Embedded Systems
Stefan Kowalewski, 4. November 25 Introduction to Embedded Systems Part 2: Microcontrollers. Basics 2. Structure/elements 3. Digital I/O 4. Interrupts 5. Timers/Counters Introduction to Embedded Systems
More informationAutomation Engineers AB Pvt Ltd, NOIDA Job-Oriented Course on Embedded Microcontrollers & Related Software Stack
Automation Engineers AB Pvt Ltd, NOIDA Job-Oriented Course on Embedded Microcontrollers & Related Software Stack Course Syllabus: Chapter# Topic Covered Duration MODULE 1 INTRO TO EMBEDDED SYSTEMS 2-1
More informationEE 308: Microcontrollers
EE 308: Microcontrollers AVR Architecture Aly El-Osery Electrical Engineering Department New Mexico Institute of Mining and Technology Socorro, New Mexico, USA January 23, 2018 Aly El-Osery (NMT) EE 308:
More informationL2 - C language for Embedded MCUs
Formation C language for Embedded MCUs: Learning how to program a Microcontroller (especially the Cortex-M based ones) - Programmation: Langages L2 - C language for Embedded MCUs Learning how to program
More informationEL6483: Brief Overview of C Programming Language
EL6483: Brief Overview of C Programming Language EL6483 Spring 2016 EL6483 EL6483: Brief Overview of C Programming Language Spring 2016 1 / 30 Preprocessor macros, Syntax for comments Macro definitions
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
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 informationQUIZ How do we implement run-time constants and. compile-time constants inside classes?
QUIZ How do we implement run-time constants and compile-time constants inside classes? Compile-time constants in classes The static keyword inside a class means there s only one instance, regardless of
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More informationATmega128. 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 informationAdvanced Operating Systems Embedded from Scratch: System boot and hardware access. Federico Terraneo
Embedded from Scratch: System boot and hardware access federico.terraneo@polimi.it Outline 2/28 Bare metal programming HW architecture overview Linker script Boot process High level programming languages
More informationensures that the assembler generates instructions for the C167 (as opposed to XC167) Memory models The system startup file
System Startup Detailed -1 week lecture Topics 4 System Startup Detailed - ( TASKING) Macro definitions, configuration registers and stack frames - and memory maps - Memory type specifiers - Object classes
More informationP.G.TRB - COMPUTER SCIENCE. c) data processing language d) none of the above
P.G.TRB - COMPUTER SCIENCE Total Marks : 50 Time : 30 Minutes 1. C was primarily developed as a a)systems programming language b) general purpose language c) data processing language d) none of the above
More informationacret Ameya Centre for Robotics & Embedded Technology Syllabus for Diploma in Embedded Systems (Total Eight Modules-4 Months -320 Hrs.
acret Ameya Centre for Robotics & Embedded Technology Syllabus for Diploma in Embedded Systems (Total Eight Modules-4 Months -320 Hrs.) Module 0 Introduction Introduction to Embedded Systems, Real Time
More informationCprE 288 Translating C Control Statements and Function Calls, Loops, Interrupt Processing. Instructors: Dr. Phillip Jones Dr.
CprE 288 Translating C Control Statements and Function Calls, Loops, Interrupt Processing Instructors: Dr. Phillip Jones Dr. Zhao Zhang 1 Announcements Final Projects Projects: Mandatory Demos Deadweek
More informationC Programming. Course Outline. C Programming. Code: MBD101. Duration: 10 Hours. Prerequisites:
C Programming Code: MBD101 Duration: 10 Hours Prerequisites: You are a computer science Professional/ graduate student You can execute Linux/UNIX commands You know how to use a text-editing tool You should
More informationProgram SoC using C Language
Program SoC using C Language 1 Module Overview General understanding of C, program compilation, program image, data storage, data type, and how to access peripherals using C language; Program SoC using
More informationECE 477 Digital Systems Senior Design Project. Module 10 Embedded Software Development
2011 by D. G. Meyer ECE 477 Digital Systems Senior Design Project Module 10 Embedded Software Development Outline Memory Models Memory Sections Discussion Application Code Organization Memory Models -
More informationC Language Programming, Interrupts and Timer Hardware
C Language Programming, Interrupts and Timer Hardware In this sequence of three labs, you will learn how to write simple C language programs for the MC9S12 microcontroller, and how to use interrupts and
More informationMICROPROCESSOR BASED SYSTEM DESIGN
MICROPROCESSOR BASED SYSTEM DESIGN Lecture 5 Xmega 128 B1: Architecture MUHAMMAD AMIR YOUSAF VON NEUMAN ARCHITECTURE CPU Memory Execution unit ALU Registers Both data and instructions at the same system
More informationKeywords: maxq microcontrollers, data flash, in-application programming, in circuit programming, flash, microcontroller, MAXQ7663, MAXQ7664
Maxim > Design Support > Technical Documents > Application Notes > Microcontrollers > APP 3569 Keywords: maxq microcontrollers, data flash, in-application programming, in circuit programming, flash, microcontroller,
More informationRecap. ANSI C Reserved Words C++ Multimedia Programming Lecture 2. Erwin M. Bakker Joachim Rijsdam
Multimedia Programming 2004 Lecture 2 Erwin M. Bakker Joachim Rijsdam Recap Learning C++ by example No groups: everybody should experience developing and programming in C++! Assignments will determine
More informationMICROPROCESSORS A (17.383) Fall Lecture Outline
MICROPROCESSORS A (17.383) Fall 2010 Lecture Outline Class # 03 September 21, 2010 Dohn Bowden 1 Today s Lecture Syllabus review Microcontroller Hardware and/or Interface Programming/Software Lab Homework
More informationARM Architecture and Assembly Programming Intro
ARM Architecture and Assembly Programming Intro Instructors: Dr. Phillip Jones http://class.ece.iastate.edu/cpre288 1 Announcements HW9: Due Sunday 11/5 (midnight) Lab 9: object detection lab Give TAs
More informationPointers, Dynamic Data, and Reference Types
Pointers, Dynamic Data, and Reference Types Review on Pointers Reference Variables Dynamic Memory Allocation The new operator The delete operator Dynamic Memory Allocation for Arrays 1 C++ Data Types simple
More informationKeywords: MAXQ7665C, page erasable, flash, MAXQ, In-application, programming
Maxim > Design Support > Technical Documents > Application Notes > Automotive > APP 3579 Keywords: MAXQ7665C, page erasable, flash, MAXQ, In-application, programming APPLICATION NOTE 3579 In-Application
More informationLecture test next week
Lecture test next week Write a short program in Assembler doing. You will be given the print outs of all the assembler programs from the manual You can bring any notes you want Today: Announcements General
More informationC Refresher, Advance C, Coding Standard, Misra C Compliance & Real-time Programming
C Refresher, Advance C, Coding Standard, Misra C Compliance & Real-time Programming Course Overview This course transforms an IT-Professional or a Student into an expert C Programming Person with concepts
More information(Embedded) Systems Programming Overview
System Programming Issues EE 357 Unit 10a (Embedded) Systems Programming Overview Embedded systems programming g have different design requirements than general purpose computers like PC s I/O Electro-mechanical
More informationUNIVERSITY OF CONNECTICUT. ECE 3411 Microprocessor Application Lab: Fall Quiz II
Department of Electrical and Computing Engineering UNIVERSITY OF CONNECTICUT ECE 3411 Microprocessor Application Lab: Fall 2015 Quiz II There are 5 questions in this quiz. There are 9 pages in this quiz
More informationEmbedded programming, AVR intro
Applied mechatronics, Lab project Embedded programming, AVR intro Sven Gestegård Robertz Department of Computer Science, Lund University 2017 Outline 1 Low-level programming Bitwise operators Masking and
More informationDALI 2 Framework Design Document Introduction System Requirements Hardware Requirements Software Requirements...
DALI 2 Framework Design Document Version 1.0 1. Introduction This project provides a Synergy Platform compatible Framework for the Digital Addressable Lighting Interface (DALI; International standard IEC
More informationReal Time Embedded Systems. Lecture 10 January 31, 2012 Interrupts
Interrupts Real Time Embedded Systems www.atomicrhubarb.com/embedded Lecture 10 January 31, 2012 Interrupts Section Topic Where in the books Catsoulis chapter 1 (pg 10-12) Simon chapter4 Zilog UM197 (ZNEO
More informationInterrupts and timers
Applied mechatronics, Lab project Interrupts and timers Sven Gestegård Robertz Department of Computer Science, Lund University 2018 Outline 1 Interrupts Interrupt types Execution of an interrupt Maskable
More informationMPLAB C1X Quick Reference Card
MPLAB C1X Quick Reference Card 34 MPLAB C17 Quick Reference MPLAB C17 Command Switches Command Description /?, /h Display help screen /D[=] Define a macro /FO= Set object file name /FE=
More informationShort introduction to C for AVR
Short introduction to C for AVR (http://winavr.scienceprog.com/short-introduction-to-c), (www.smileymicros.com), (https://ccrma.stanford.edu/wiki/avr_programming#anatomy_of_a_c_program_for_avr) (AVR035:
More informationDiploma in Embedded Systems
Diploma in Embedded Systems Duration: 5 Months[5 days a week,3 hours a day, Total 300 hours] Module 1: 8051 Microcontroller in Assemble Language Characteristics of Embedded System Overview of 8051 Family
More informationA Fast Review of C Essentials Part I
A Fast Review of C Essentials Part I Structural Programming by Z. Cihan TAYSI Outline Program development C Essentials Functions Variables & constants Names Formatting Comments Preprocessor Data types
More informationCN310 Microprocessor Systems Design
CN310 Microprocessor Systems Design Microcontroller Nawin Somyat Department of Electrical and Computer Engineering Thammasat University Outline Course Contents 1 Introduction 2 Simple Computer 3 Microprocessor
More informationEmbedded Systems. Software Development & Education Center. (Design & Development with Various µc)
Software Development & Education Center Embedded Systems (Design & Development with Various µc) Module 1: Embedded C Programming INTRODUCTION TO EMBEDDED SYSTEM History & need of Embedded System Basic
More information8051 Microcontroller
8051 Microcontroller The 8051, Motorola and PIC families are the 3 leading sellers in the microcontroller market. The 8051 microcontroller was originally developed by Intel in the late 1970 s. Today many
More informationC Language Programming, Interrupts and Timer Hardware
C Language Programming, Interrupts and Timer Hardware In this sequence of three labs, you will learn how to write simple C language programs for the MC9S12 microcontroller, and how to use interrupts and
More informationBare Metal Application Design, Interrupts & Timers
Topics 1) How does hardware notify software of an event? Bare Metal Application Design, Interrupts & Timers 2) What architectural design is used for bare metal? 3) How can we get accurate timing? 4) How
More informationEE 308: Microcontrollers
EE 308: Microcontrollers Interrupts Aly El-Osery Electrical Engineering Department New Mexico Institute of Mining and Technology Socorro, New Mexico, USA March 1, 2018 Aly El-Osery (NMT) EE 308: Microcontrollers
More informationAgenda. CS 61C: Great Ideas in Computer Architecture. Lecture 2: Numbers & C Language 8/29/17. Recap: Binary Number Conversion
CS 61C: Great Ideas in Computer Architecture Lecture 2: Numbers & C Language Krste Asanović & Randy Katz http://inst.eecs.berkeley.edu/~cs61c Numbers wrap-up This is not on the exam! Break C Primer Administrivia,
More informationEmbedded Systems and Software
Embedded Systems and Software Lab 6 Considerations Lab 6 Considerations, Slide 1 Big Picture Connect to internal ADC + 0-5 V - Sensor To COM port on PC LCD RTC Optional: LCD display Lab 6 Considerations,
More informationCS 61C: Great Ideas in Computer Architecture. Lecture 2: Numbers & C Language. Krste Asanović & Randy Katz
CS 61C: Great Ideas in Computer Architecture Lecture 2: Numbers & C Language Krste Asanović & Randy Katz http://inst.eecs.berkeley.edu/~cs61c Numbers wrap-up This is not on the exam! Break C Primer Administrivia,
More informationECE 2036 Lab 4 Setup and Test mbed I/O Hardware Check-Off Deadline: Thursday, March 17, Name:
ECE 2036 Lab 4 Setup and Test mbed I/O Hardware Check-Off Deadline: Thursday, March 17, 2016 Name: Item Part 1. (40%) Color LCD Hello World Part 2. (10%) Timer display on Color LCD Part 3. (25%) Temperature
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 informationECE 353 Lab 4. General MIDI Explorer. Professor Daniel Holcomb Fall 2015
ECE 353 Lab 4 General MIDI Explorer Professor Daniel Holcomb Fall 2015 Where are we in Course Lab 0 Cache Simulator in C C programming, data structures Cache architecture and analysis Lab 1 Heat Flow Modeling
More information12.1. Unit 12. Exceptions & Interrupts
12.1 Unit 12 Exceptions & Interrupts 12.2 Disclaimer 1 This is just an introduction to the topic of interrupts. You are not meant to master these right now but just start to use them We will cover more
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 informationNewbie s Guide to AVR Interrupts
Newbie s Guide to AVR Interrupts Dean Camera March 15, 2015 ********** Text Dean Camera, 2013. All rights reserved. This document may be freely distributed without payment to the author, provided that
More informationFIFTH SEMESTER DIPLOMA EXAMINATION IN ENGINEERING/ TECHNOLOGY-MARCH 2014 EMBEDDED SYSTEMS (Common for CT,CM) [Time: 3 hours] (Maximum marks : 100)
(Revision-10) FIFTH SEMESTER DIPLOMA EXAMINATION IN ENGINEERING/ TECHNOLOGY-MARCH 2014 EMBEDDED SYSTEMS (Common for CT,CM) [Time: 3 hours] (Maximum marks : 100) PART-A (Maximum marks : 10) I. Answer all
More informationAVR XMEGA Product Line Introduction AVR XMEGA TM. Product Introduction.
AVR XMEGA TM Product Introduction 32-bit AVR UC3 AVR Flash Microcontrollers The highest performance AVR in the world 8/16-bit AVR XMEGA Peripheral Performance 8-bit megaavr The world s most successful
More informationIntroduction to Microcontroller Apps for Amateur Radio Projects Using the HamStack Platform.
Introduction to Microcontroller Apps for Amateur Radio Projects Using the HamStack Platform www.sierraradio.net www.hamstack.com Topics Introduction Hardware options Software development HamStack project
More informationDATA LOGGER APPLICATION DEVELOPMENT USING MICROCONTROLLER ATMEGA 128 FOR A WEB-BASED GPRS COMMUNICATION
DATA LOGGER APPLICATION DEVELOPMENT USING MICROCONTROLLER ATMEGA 128 FOR A WEB-BASED GPRS COMMUNICATION Devi Munandar 1, Oka Mahendra 1, Djohar Syamsi 1 1 Research Center for Informatics, Indonesian Institute
More informationUsing the EEPROM memory in AVR-GCC
Using the EEPROM memory in AVR-GCC Dean Camera March 9, 2014 ********** Text Dean Camera, 2013. All rights reserved. This document may be freely distributed without payment to the author, provided that
More informationMicrocontroller basics
FYS3240 PC-based instrumentation and microcontrollers Microcontroller basics Spring 2017 Lecture #4 Bekkeng, 30.01.2017 Lab: AVR Studio Microcontrollers can be programmed using Assembly or C language In
More informationPacemaker Challenge on AVR/Butterfly Boards
Pacemaker Challenge on AVR/Butterfly Boards CIS 541: Embedded and Cyber Physical Systems Spring 2010 Shaohui Wang shaohui@seas.upenn.edu Outline Project Overview Implementation Scheme Introduction to AVR/Butterfly
More informationECE 362 Lab Verification / Evaluation Form Experiment 5
ECE 362 Lab Verification / Evaluation Form Experiment 5 Evaluation: IMPORTANT! You must complete this experiment during your scheduled lab perior. All work for this experiment must be demonstrated and
More informationVariables Data types Variable I/O. C introduction. Variables. Variables 1 / 14
C introduction Variables Variables 1 / 14 Contents Variables Data types Variable I/O Variables 2 / 14 Usage Declaration: t y p e i d e n t i f i e r ; Assignment: i d e n t i f i e r = v a l u e ; Definition
More informationSignature: 1. (10 points) Basic Microcontroller Concepts
EE 109 Practice Final Exam Last name: First name: Signature: The practice final is one hour, ten minutes long, closed book, closed notes, calculators allowed. To receive full credit on a question show
More informationSome Basic Concepts EL6483. Spring EL6483 Some Basic Concepts Spring / 22
Some Basic Concepts EL6483 Spring 2016 EL6483 Some Basic Concepts Spring 2016 1 / 22 Embedded systems Embedded systems are rather ubiquitous these days (and increasing rapidly). By some estimates, there
More informationComparison of C and Assembly How to compile a C program using CodeWarrior
Comparison of C and Assembly How to compile a C program using CodeWarrior o Using pointers to access contents of specific addresses in C o Including and using derivative.h or hcs12.h to use in MC9S12 port
More informationAN HONORS UNIVERSITY IN MARYLAND UMBC. AvrX. Yousef Ebrahimi Professor Ryan Robucci
AvrX https://github.com/kororos/avrx Yousef Ebrahimi Professor Ryan Robucci Introduction AvrX is a Real Time Multitasking Kernel written for the Atmel AVR series of micro controllers. The Kernel is written
More informationChapter 1 Microprocessor architecture ECE 3120 Dr. Mohamed Mahmoud http://iweb.tntech.edu/mmahmoud/ mmahmoud@tntech.edu Outline 1.1 Computer hardware organization 1.1.1 Number System 1.1.2 Computer hardware
More informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 4 Thomas Wies New York University Review Last week Control Structures Selection Loops Adding Invariants Outline Subprograms Calling Sequences Parameter
More informationQUIZ. What is wrong with this code that uses default arguments?
QUIZ What is wrong with this code that uses default arguments? Solution The value of the default argument should be placed in either declaration or definition, not both! QUIZ What is wrong with this code
More informationARM Embedded Development Using Oberon-07
ARM Embedded Development Using Oberon-07 Chris Burrows Oberon Day 2011, ETH Zurich 27th May 2011 1 Overview Background ARM Microcontrollers Embedded Software Astrobe Aim Why NXP LPC2000 Microcontrollers?
More informationOverview. The C programming model. The C programming model. The C programming model. The C programming model 1/23/2009. Real-time Systems D0003E
Overview Real-time Systems D0003E Lecture 2: Bit manipulation and hardware interfacing Burn/Wellings ch. 15 Leftovers from lecture 1 the C execution model bit-manipulation in C memory mapped I/O port-mapped
More informationCh. 3: The C in C++ - Continued -
Ch. 3: The C in C++ - Continued - QUIZ What are the 3 ways a reference can be passed to a C++ function? QUIZ True or false: References behave like constant pointers with automatic dereferencing. QUIZ What
More informationCoping with Immutable Data in a JVM for Embedded Real-Time Systems. Christoph Erhardt, Simon Kuhnle, Isabella Stilkerich, Wolfgang Schröder-Preikschat
The final Frontier Coping with Immutable Data in a JVM for Embedded Real-Time Systems Christoph Erhardt, Simon Kuhnle, Isabella Stilkerich, Wolfgang Schröder-Preikschat https://www4.cs.fau.de/research/keso/
More informationEmbedded Systems. 3. Hardware Software Interface. Lothar Thiele. Computer Engineering and Networks Laboratory
Embedded Systems 3. Hardware Software Interface Lothar Thiele Computer Engineering and Networks Laboratory Do you Remember? 3 2 3 3 High Level Physical View 3 4 High Level Physical View 3 5 What you will
More informationEmbedded Controller Programming 2
Embedded Controller Programming 2 Section 3: C Language for Embedded Systems - Ken Arnold ecp2@hte.com Copyright 2006 Ken Arnold Overview Structures Unions Scope of Variables Pointers Operators and Precedence
More informationWhy Pointers. Pointers. Pointer Declaration. Two Pointer Operators. What Are Pointers? Memory address POINTERVariable Contents ...
Why Pointers Pointers They provide the means by which functions can modify arguments in the calling function. They support dynamic memory allocation. They provide support for dynamic data structures, such
More informationOptimizing C For Microcontrollers
Optimizing C For Microcontrollers Khem Raj, Comcast Embedded Linux Conference & IOT summit - Portland OR Agenda Introduction Knowing the Tools Data Types and sizes Variable and Function Types Loops Low
More informationARM Cortex A9. ARM Cortex A9
ARM Cortex A9 Four dedicated registers are used for special purposes. The IP register works around the limitations of the ARM functional call instruction (BL) which cannot fully address all of its 2 32
More informationcout << "How many numbers would you like to type? "; cin >> memsize; p = new int[memsize];
1 C++ Dynamic Allocation Memory needs were determined before program execution by defining the variables needed. Sometime memory needs of a program can only be determined during runtime, or the memory
More informationPage 1. Stuff. Last Time. Today. Safety-Critical Systems MISRA-C. Terminology. Interrupts Inline assembly Intrinsics
Stuff Last Time Homework due next week Lab due two weeks from today Questions? Interrupts Inline assembly Intrinsics Today Safety-Critical Systems MISRA-C Subset of C language for critical systems System
More informationEmbedded Systems. PIC16F84A Internal Architecture. Eng. Anis Nazer First Semester
Embedded Systems PIC16F84A Internal Architecture Eng. Anis Nazer First Semester 2017-2018 Review Computer system basic components? CPU? Memory? I/O? buses? Instruction? Program? Instruction set? CISC,
More informationCS240: Programming in C
CS240: Programming in C Lecture 11: Bit fields, unions, pointers to functions Cristina Nita-Rotaru Lecture 11/ Fall 2013 1 Structures recap Holds multiple items as a unit Treated as scalar in C: can be
More informationBootloader project Project with a Bootloader Component and communication Component.
PSoC Creator Component Datasheet Bootloader and Bootloadable 1.60 Features Separate Bootloader and Bootloadable Components Configurable set of supported commands Flexible Component configuration General
More informationARM Microcontroller Course
February 15, 2017 Please dowload the software available on https://www.scintilla.utwente.nl/docs/cursus/ourse2017 Table of ontents 1 Introduction 2 Data types Operators Events 3 The ourse Five Wednesday
More informationSOME ASSEMBLY REQUIRED
SOME ASSEMBLY REQUIRED Assembly Language Programming with the AVR Microcontroller TIMOTHY S. MARGUSH CRC Press Taylor & Francis Group CRC Press is an imprint of the Taylor & Francis Croup an Informa business
More informationCS 61c: Great Ideas in Computer Architecture
Introduction to C, Pointers June 24, 2014 Review of Last Lecture Six Great Ideas in Computer Architecture Number Representation Bits can represent anything! n bits can represent up to 2 n things Unsigned,
More informationCMPE-013/L. Introduction to C Programming
CMPE-013/L Introduction to C Programming Bryant Wenborg Mairs Spring 2014 What we will cover in 13/L Embedded C on a microcontroller Specific issues with microcontrollers Peripheral usage Reading documentation
More informationMicrocontrollers. 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 informationHigh Performance Computing in C and C++
High Performance Computing in C and C++ Rita Borgo Computer Science Department, Swansea University Summary Introduction to C Writing a simple C program Compiling a simple C program Running a simple C program
More informationC Programming Review CSC 4320/6320
C Programming Review CSC 4320/6320 Overview Introduction C program Structure Keywords & C Types Input & Output Arrays Functions Pointers Structures LinkedList Dynamic Memory Allocation Macro Compile &
More informationReview of the C Programming Language for Principles of Operating Systems
Review of the C Programming Language for Principles of Operating Systems Prof. James L. Frankel Harvard University Version of 7:26 PM 4-Sep-2018 Copyright 2018, 2016, 2015 James L. Frankel. All rights
More informationATmega Interrupts. Reading. The AVR Microcontroller and Embedded Systems using Assembly and C) by Muhammad Ali Mazidi, Sarmad Naimi, and Sepehr Naimi
1 P a g e ATmega Interrupts Reading The AVR Microcontroller and Embedded Systems using Assembly and C) by Muhammad Ali Mazidi, Sarmad Naimi, and Sepehr Naimi Chapter 10: AVR Interrupt Programming in Assembly
More informationSECURE DIGITAL ACCESS SYSTEM USING IBUTTON
SECURE DIGITAL ACCESS SYSTEM USING IBUTTON Access control forms a vital link in a security chain. Here we describe a secure digital access system using ibutton that allows only authorised persons to access
More informationThe industrial technology is rapidly moving towards ARM based solutions. Keeping this in mind, we are providing a Embedded ARM Training Suite.
EMBEDDED ARM TRAINING SUITE ARM SUITE INCLUDES ARM 7 TRAINER KIT COMPILER AND DEBUGGER THROUGH JTAG INTERFACE PROJECT DEVELOPMENT SOLUTION FOR ARM 7 e-linux LAB FOR ARM 9 TRAINING PROGRAM INTRODUCTION
More informationInterrupt vectors for the 68HC912B32. The interrupt vectors for the MC9S12DP256 are located in memory from 0xFF80 to 0xFFFF.
Interrupts The Real Time Interrupt Interrupt vectors for the 68HC912B32 The interrupt vectors for the MC9S12DP256 are located in memory from 0xFF80 to 0xFFFF. These vectors are programmed into Flash EEPROM
More informationTANGIBLE MEDIA & PHYSICAL COMPUTING INTRODUCTION TO ARDUINO
TANGIBLE MEDIA & PHYSICAL COMPUTING INTRODUCTION TO ARDUINO AGENDA ARDUINO HARDWARE THE IDE & SETUP BASIC PROGRAMMING CONCEPTS DEBUGGING & HELLO WORLD INPUTS AND OUTPUTS DEMOS ARDUINO HISTORY IN 2003 HERNANDO
More informationDETAILED SYLLABUS INTRODUCTION TO C LANGUAGE
COURSE TITLE C LANGUAGE DETAILED SYLLABUS SR.NO NAME OF CHAPTERS & DETAILS HOURS ALLOTTED 1 INTRODUCTION TO C LANGUAGE About C Language Advantages of C Language Disadvantages of C Language A Sample Program
More informationCSE 509: Computer Security
CSE 509: Computer Security Date: 2.16.2009 BUFFER OVERFLOWS: input data Server running a daemon Attacker Code The attacker sends data to the daemon process running at the server side and could thus trigger
More information