25
Embedded systemen Embedded software 1

Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

Embed Size (px)

Citation preview

Page 1: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

Embedded systemenEmbedded software

1

Page 2: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

Practicum 2 uur week

Theorie 2 uur week

Programming embedded systems

2

Page 3: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

Programming embedded systemsTheorie

• Inleiding embedded systemen• Dieper op C ingaan• Schrijven van een driver• operating systemen• testen van embedded software.

Practicum• Intruductie DE2-70• Het schrijven van een device driver.• Het ontwerpen van een embedded applicatie.

3

Page 4: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

Wat is een embedded systeem ?

Elke apparaat dat een programmeerbare computer heeft, maar zelf geen computer is.

Wordt vaak gebruikt om apparatuur te optimaliseren.

Er zitten niet allerlei toeters en bellen op

4

Page 5: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

CPU

mem

input

output analog

analog

embeddedcomputer

Embedded computer => een eenvoudig overzicht

5

Page 6: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

Kenmerken van embedded systemen

• Geavanceerde functionaliteit.

• Real-time verwerking.

• Lage productiekosten.

• Low power.

• Betrouwbaar en veilig.

• Ontworpen om strakke deadlines door kleine teams.

6

Page 7: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

Microprocessors in Embedded Systems

7

Page 8: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

• Microprocessors zijn vaak zeer efficiënt: kan dezelfde logica gebruiken om vele verschillende functies.

Waarom een microprocessor

• Alternatieven: random logica op een field- programmable gate arrays (FPGA's), aangepaste logica, enz.

8

Page 9: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

Soft Core Processors

Zijn soft: wordt met behulp van software-tools in een programmeerbare chip gezet.

Flexibel: kan aan de hand van de applicatie aangepast worden.

• Een ontwerp kan snel gebracht worden.• Het testen en valideren van de software kan snel en

zonder een specifiek board gebeuren.• Geen gesoldeer en bedrading.

9

Page 10: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

De hardware configuratie

10

Page 11: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

Eenvoudige hardware configuratie

• CPU• 8 bits input• 8 bits output• JTAG

11

Page 12: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

De software

1. Assembler programmeren of hogere programmeertaal

• C,C++, JAVA, …. Is er wel een compiler

2. Hoe komen we bij de hardware.

12

Page 13: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

#define Switches (volatile char*) 0x21000#define LEDs (char*)

0x21010

int main(){

}

*LEDs=*Switches;

Lees stand schakelaars en stuur LED’s aan

Hardware rechtstreeks benaderen

13

Page 14: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

#define Switches (volatile char*) 0x21000#define LEDs (char*)

0x21010int main(){ volatile char *p=Switches; volatile char *q=0x21010; //warning unsigned char Leesin;

while(1) { Leesin=*p; *q=Leesin; } return 0;}

Hardware rechtstreeks benaderen

14

Page 15: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

15

Hardware abstraction layer

Page 16: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

16

Hardware abstraction layer

HAL systeem bibliotheek biedt de volgende diensten

• Integratie met newlib ANSI C standaard bibliotheek.• Toegang tot de devices.

• Consistente, standaard interface naar HAL diensten. • Device access, interrupt handling.

• Systeem initialisatie, (voor main()).

• Device initialisatie (voor main()).

Programmeur hoeft zich niet te verdiepen in low-level details

Page 17: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

17

HAL support

Voorbeeld: FILE *fp = fopen(LCD_NAME, "w");

• Character-mode devices• Timer devices• File subsystems• Ethernet devices• DMA devices• Flash memory devices

Page 18: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

De hardware wordt benaderd via de HAL(Hardware Abstraction Layer)

Page 19: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

19

Opbouw van de software

• Embedded systeem bestaat uit hardware en software

•Het belang van software in embedded systemen wordt steeds groter

•Software ontworpen voor embedded systemen wordt steeds abstracter

• Een embedded systeem is altijd hardware afhankelijk

•Portabiliteit van de code wordt door de abstractie steeds groter

Page 20: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

De System.h file

Wordt aangemaakt door de NIOS IDE

De system.h file biedt een complete software beschrijving van de de gemaakte Nios II systeemhardware.

De system.h file komt overeen met de werkelijke Nios II hardware, zoals die beschreven staat in de *. PTF file.

Een nieuw systeem betekent een nieuwe ptf file dus ook een nieuwe system.h file.

20

Page 21: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

De System.h file

De system.h file beschrijft elke peripheral en levert de volgende gegevens.

• De hardware configuratie van de peripheral.

• Het basis adres.

• Een symbolische naam for de peripheral.

Wanneer de hardware verandert, blijft de source code geldig.

Edit nooit in een system.h file21

Page 22: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

De System.h file

#define SWITCHES_NAME "/dev/Switches"#define SWITCHES_TYPE "altera_avalon_pio"#define SWITCHES_BASE 0x00021000#define SWITCHES_SPAN 16#define SWITCHES_DO_TEST_BENCH_WIRING 0#define SWITCHES_DRIVEN_SIM_VALUE 0#define SWITCHES_HAS_TRI 0#define SWITCHES_HAS_OUT 0#define SWITCHES_HAS_IN 1#define SWITCHES_CAPTURE 0#define SWITCHES_DATA_WIDTH 8

22

Page 23: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

#define Switches (volatile char*) SWITCHES_BASE#define LEDs (char*) LEDS_BASE

int main(){

}

*LEDs=*Switches;

Lees stand schakelaar en stuur LED’s aan

Hardware rechtstreeks benaderen

#include “system.h”

23

Page 24: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

24

int main(){

}

in = IORD_ALTERA_AVALON_PIO_DATA(SWITCHES_BASE);out = in;IOWR_ALTERA_AVALON_PIO_DATA(LEDS_BASE, out);

Lees stand schakelaar en stuur LED’s aan

Hardware benaderen via de HAL

#include “system.h”

#include "altera_avalon_pio_regs.h"

Page 25: Embedded systemen Embedded software 1. Practicum2 uur week Theorie2 uur week Programming embedded systems 2

25

Hardware benaderen via de HAL