PROS2 Les 13 Programmeren en Software Engineering 2.

Slides:



Advertisements
Verwante presentaties
Extern-Geheugen Henry van Aarssen 2009/2010 Extern-Geheugen
Advertisements



Programmeren en Software Engineering 2

Embedded systemen Embedded software.
PROS2 Les 2 Programmeren en Software Engineering 2.
Programmeren en Software Engineering 2
Module 2 – Hoofdstuk 3 Opbouw en werking van de computer.
Microcontroller Programmeren in C


PROS2 Les 12 Programmeren en Software Engineering 2.
Week 1: overzicht computersysteem-organisatie
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 4(2): Digitale.
Par. 3.3 Het geheugen.
Extern Geheugen Lol.
Het werkgeheugen stored program concept (John von Neumann) Het achtergrondgeheugen Geheugen.
Het computergeheugen.
Hardware (2) SGDB Informatica.
1 Device driver. 2 Hardware Operating Systeem Prog1Prog2 System calls/ API Device drivers Gebruiker afschermen van de hardware.
PROS2 Les 11 Programmeren en Software Engineering 2.
GESPRG Les 14 Gestructureerd programmeren in C. 174 Details! The devil is in the details.
Computerarchitectuur
Steven Van Acker. Transmeta Crusoe - Steven Van Acker - Mei Overzicht  Inleiding  Het Idee  De Technologie  CodeMorphing  LongRun  NorthBridge.
PROS2 Les 14 Programmeren en Software Engineering 2.

Instructie Programmeren Debuggen 5JJ70. Debuggen: Wat is het probleem Je programma compileert, maar werkt niet zoals verwacht, wat nu? Vraag je af: wat.

1 SOCS Hoofdstuk 1 Computerarchitectuur. 2 Overzicht Eenvoudig C Arrays Functies Records Dynamische gegevenstructuren Macro’s C.
Hoe een computer gegevensverwerkende processen realiseert
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(1): Instructietypen (1)
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 1(2): overzicht.
Numerieke Natuurkunde
PROS2 Les 7 Programmeren en Software Engineering 2.
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):

GESPRG Les 7 Gestructureerd programmeren in C. 92 Verwisselen Schrijf een functie waarmee twee int variabelen verwisseld kunnen worden. void wissel(int.
MICPRG Les 14 Microcontroller Programmeren in C. 153 Duurzaam AVR gebruik De AVR ATmega32A is de opvolger van de ATmega32. De A versie is ongeveer 40%
Bluetooth Communicatie tussen computer en Brick Computer zet de connectie op, Brick wacht Enkel communicatie van de Brick naar de computer Lejos API: NXTConnecion.
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
P. 1 Vakgroep Informatietechnologie Scanf voorbeeld #include int main(void) { int i=-1,j=-1,k=-1,l=-1; int b; b=scanf("%d %d %d %d",&i,&j,&k,&l); printf("res=%d.
Deel I: Programmeertaal C 6. Arrays en Pointers
Power PC Assembler. Assembler toolkit bevat Assembler zelf Linkerlibrarian.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Digitale logica niveau klokken en geheugens.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (1)
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Digitale logica niveau: “systeem-architectuur” cpu-chips.
PO informatica SSD en Monitor
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Hoorcollege 2 Basis gameprogrammeren. Soorten programma’s Console- applicatie.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen  DB036 printjes subroutines.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  programma draaien vanuit ROM.
Tircms02-p les 3 Functies Strings Structuren. Functies 1. main() 2. { int k; k = 10 ; printf(“%d\n”,fac(k)); } 3. int fac(n) int n; 4. { int f; f= 1;
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 6 - onderwerpen Uitleg.
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Les 1: Zaterdag 10 mei 2014 Wim Peeters
JAVA: een platformonafhankelijke taal
VPEMSY1, D3ECPT2 : ARM Assembler 1 Hogeschool Utrecht / Electrical Engineering & Design 1  Herhaling: CMP, CMN,
PEMSY1http:// 1  Herhaling nieuwe instructies van vorige week  nieuw: combineren van assembler en C  oefeningen: assembler.
Tircms03-p les 1 C++ voor C-kenners Voor Technische Informatica.
Instructie Programmeren Task 7
Programma zonder window commandline interface. Commandline programma public static void main (String [ ] params) { System. out. println (“Hoi allemaal!”);
Digitale gegevens Drs. Ing. Rainier Kock 1. Vorige les 2 Computers werken met elektrische schakelingen Schakelaar aan = 1, uit = 0 Tekst, geluid en beeld.
Hardware (2) SGDB Informatica.
Huiswerkcontrole tabel 3
Basis Gameprogrammeren
Tinpro015b-les5 Invoer en Uitvoer.
Tinpro015b-les4 Klassen.
3 Hardware 3.1 De processor en intern geheugen
Hardware (2) SGDB Informatica.
Transcript van de presentatie:

PROS2 Les 13 Programmeren en Software Engineering 2

AVR geheugen  Werkgeheugen (RAM en registers):  Inhoud verdwijnt als spanning wegvalt.  Gebruikt voor opslag variabelen.  Lokale variabelen op de stack (in RAM) of in registers.  Globale en static variabelen op van tevoren gereserveerde plaatsen.  Direct benaderbaar vanuit ASM en C programma’s.  Snel te lezen en te schrijven.  Oneindig vaak te beschrijven. ATmega16: • 1024 bytes RAM. • 32 bytes CPU registers. • 64 bytes I/O registers. 0x0000 0x0020 0x0060 0x045F I/O Reg RAM 70 R0 - R31 I/O Reg stack

AVR geheugen  Achtergrondgeheugen (Flash en EEPROM):  Inhoud blijft bewaard als spanning wegvalt.  Gebruikt voor:  Opslag programma en constanten (Flash).  Opslag fabrieksinstellingen (Flash).  Opslag voorkeursinstellingen (EEPROM).  Opslag belangrijke variabelen (EEPROM).  Niet direct benaderbaar vanuit C programma’s.  Moet voor schrijven eerst gewist worden. Dit is traag.  EEPROM wissen per byte (8.5 ms / byte).  Flash wissen per blok (4.2 ms / blok).  Beperkt aantal keer te wissen.  Flash 10000x  EEPROM x ATmega16: • 8182 x 16 bits Flash. 128 blokken • 512 bytes EEPROM. 0x0000 0x1FFF Flash x0000 0x01FF EEPROM 70

Knight Rider Pro ;-)  Heen en weer gaand patroon (eenvoudig in de code aan te passen).  Instelbare snelheid.  Ingestelde snelheid onthouden bij spanningsuitval.  Minimaal RAM gebruik.

Knight Rider Pro 1

Zie C boek voor uitleg operator ? : Geheugengebruik –O2: • 444 bytes Flash. • 19 bytes RAM + • 2 bytes op stack in main + • 10 bytes op stack in ISR. Geheugengebruik –O0: • 548 bytes Flash. • 19 bytes RAM + • 7 bytes op stack in main + • 12 bytes op stack in ISR. Alle niet volatile lokale variabelen zijn in registers gezet Alle static variabelen Alle lokale variabelen

Verbeterpunten  De waarde van de variabele delay moet behouden blijven als de spanning wegvalt. Dit kan door deze variabele in EEPROM op te slaan.  De array patroon staat in het Flash en wordt naar RAM gekopieerd. Dit zou niet nodig zijn als we Flash kunnen uitlezen.

EEPROM in C  Include file: avr/eeprom.h.  Variabele die in EEPROM moet worden geplaatst moet gemarkeerd worden met EEMEM.  Functies om in EEPROM te schrijven:  void eeprom_write_byte(const uint8_t* EEMEM, uint8_t)  void eeprom_write_word(const uint16_t* EEMEM, uint16_t)  void eeprom_write_block(const void*, void* EEMEM, size_t)  Functies om uit EEPROM te lezen:  uint8_t eeprom_read_byte(const uint8_t* EEMEM)  uint16_t eeprom_read_word(const uint16_t* EEMEM)  void eeprom_read_block(void*, const void* EEMEM, size_t)

Knight Rider Pro 2 Rest van main op dezelfde wijze aanpassen. Nodig voor Flash zie verderop…

Flash  Include file: avr/pgmspace.h.  Data die niet naar RAM moet worden gekopieerd moet gemarkeerd worden met PROGMEM.  Functies om Flash uit te lezen:  uint8_t pgm_read_byte(const uint8_t* PROGMEM)  uint16_t pgm_read_word(const uint16_t* PROGMEM)  uint32_t pgm_read_dword(const uint32_t* PROGMEM)  C-string constante die niet naar RAM moet worden gekopieerd: PSTR("Hallo").  Functies om C-string constante te gebruiken:  strcpy_P enz.

Flash  LCD library heeft speciale functie voor het schrijven van een C-string uit Flash:  lcd_puts_P(PSTR("Hallo"));  stdio library heeft speciale functies voor het gebruik met C-strings uit Flash:  snprintf_P(buffer, sizeof buffer, PSTR("i = %6d”), i);

Knight Rider Pro 2 Geheugengebruik –O2: • 574 bytes Flash. • 3 bytes RAM + • 2 bytes op stack in main + • 10 bytes op stack in ISR. Geheugengebruik –O0: • 876 bytes Flash. • 3 bytes RAM + • 16 bytes op stack in main + • 15 bytes op stack in ISR. Alle niet volatile lokale variabelen zijn in registers gezet Alle static variabelen in RAM + ?? (avr-libc)

Flash een EEPROM debug  AVR Studio Watch window werkt niet correct met Flash en EEPROM.  Je moet een Memory window gebruiken om Flash en EEPROM inhoud te zien.