CPA-C. Lesson 01. Introduction to Embedded Systems

Relaterede dokumenter
AVR MP Ingeniørhøjskolen i Århus Michael Kaalund

Computerens Anatomi. Af Martin Arnetoft

Arduino Programmering

\ \ Computerens Anatomi / /

Principper for Samtidighed og Styresystemer

Microcontroller, Arduino

Computer Literacy. En stationær bordmodel. En Bærbar Notebook, Labtop, Slæbbar, Blærebar mm.

Microcontroller, Arduino

Algorithms & Architectures II

Komparativ analyse af IoT-boards

Arduino Programmering

Til dig som vil have et indblik i computeren

Andreas Nordbek & Kristoffer Skude Jensen. DMX Styring Side 1 af 15

Sider og segmenter. dopsys 1

Interconnect. Front end interface

Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP)

COMPUTER ANATOMI klasse 23. FEBRUAR 2015 HTX - ROSKILDE

Datatekniker med programmering som speciale

3. Computerens opbygning.

Datatekniker med programmering som speciale H5

Skitsering og rendering med Revit - BIM workflow fra skitse til præsentation

Intro til AVR. Mads Pedersen, OZ6HR

Deling i Windows. Netteknik 1

Eksamens spørgsmål i Teknologi (Digital) 3. Semester (i)

Niveauer af abstrakte maskiner

Synopsis. Hardi Bootlader m. Java ME

Indholdsfortegnelse :

Sider og segmenter. dopsys 1

EasyRun En løbers bedste ven

Projekt Lime SDR Mini. Jørgen Kragh, OZ7TA EDR Birkerød januar 2019

Motherboard. Chip-set (nord- og syd-bro)

Wahlberg Surtitle Display

Mini DVB-T USB stik S6

Enes Kücükavci Roskilde Tekniske Gymnasium Mathias Turac Informationsteknolog B Vejleder: Karl Bjranasson Programmering C

Deling i Windows. - via NetBIOS eller Hjemmegruppe! Netteknik 1

Formfaktor: Mini-DTX 20cm (7,87 inches) x 17cm (6,69 inches)

Computerens anatomi. - En gennemgang af delene i en computer. Opgave skrevet af Maila, Patrick, Bjarke og Simon. Klasse 1.

Velkommen på kursus hos Microworld

Computeren inderst inde

Til dig som vil have et indblik i computeren

Computerens Anatomi Af Mathias og Mark

computerens_udvikling

Emergency call button. Stabilt og simpelt

OG-3600 Series Fiber Optic Transport for opengear card frame platform w/ SNMP Management

Tildel fast IP adresse til BC9xxx med BootP og oprettelse kommunikation fra TwinCat

Call Recorder Apresa. Apresa Call Recording

INSTRUKTION. OJ-DV Hterm. OJ Drives A DRIVES PROGRAMME DEDICATED TO VENTILATION SOLUTIONS /15 (OSH) 2015 OJ Electronics A/S

Produktpræsentation. BA Systems. Control made easy

DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E

Hardware dokumentation Skrevet af. Gruppen. Version 1.0

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

BILAG. til. Kommissionens delegerede forordning

BAS 920. Datablad. BA Systems Petershvilevej 1 DK-3200 Helsinge

Hvad skal du vide for at bygge din egen computer?

Programmering i C Programmering af microcontroller i C (4 af 4) 12. april 2007

Lokal undervisningsplan niv. 3 (GF2 Data)

RAM. Motherboard. Cd-rom Drev:

Niveauer af abstrakte maskiner

Journal JTAG: Udarbejde af: Benjamin Grydehøj I samarbejde med PDA Projektgruppen. Elektronikteknologafdelingen på Erhvervsakademi Fyn.

USER MANUAL

XVR optager med 8 kanaler (1080N) Varenr

Computerens Anatomi KOM/IT

Svendeprøve Projekt Tyveri alarm

Der er derfor, for at alle kan sende, kun tilladt, at sende intermitterende. Altså korte pakker. ( Dette skal dog verificeres!!)

Tildel fast IP adresse til BC9xxx med ARP og oprettelse kommunikation fra TwinCat

DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003

I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET

Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4.

Kravspecifikation For. Gruppen

Apresa Call Recording

Updater KINO. Opsætning og installation

Når man taler om computere eller kigger i annoncer om den slags, så dukker der en del mærkelige fagudtryk op:

Introduktion til ARP 3. Generation Autoradioer

IP Telefoni. Modul 3

Vildtkamera DTC-530V.

IAI Quick Start Guide

Dell Latitude 14" I5-8250U 8GB 256GB Intel UHD Graphics 620 Windows 10 Pro 64-bit

The ADSL-optimizer: Korrekt trafikstyring på ADSL linier

Planen for idag. Kontrol af ydre enheder. Systemarkitektur. Synkronisering ved aktiv venten. Multiprogrammering[1]: Ydre enheder og multiprogrammer

Entry serien. H-0410E 4channels, Optagehastighed [NTSC: 120fps / PAL: 100FPS] H-0810E 8channels, Optagehastighed [NTSC: 120fps / PAL: 100FPS]

Gateway MP til Modbus RTU. Alle BELIMO motorer med MP-Bus kan tilsluttes til MP-siden af UK24MOD. Interface MP / Modbus RTU

Acceleration af Kollisionsdetektion på Parallelle Computerarkitekturer

Dell Latitude 14" I7-8650U 16GB 256GB Intel UHD Graphics 620 Windows 10 Pro 64-bit

Opslagsbog om computer. Af Erik Veidorf og Mike T. Krogh.

AstroComp en idé Version 0.2 (foreløbig)

Programmeringseksempel tl BCxxxx (Seriel)

2x50 ETHERNET MODUL. RS485 slave med Ethernet-IP. Gælder for: Program nr.: AUXSLAVE v1 Dokument nr.: 0422md2x50-2v1 Dato:

MSS CONSULT Dato: SALGSBROCHURE. Autoværksted. Indeholdende. Hardware Software Netværk

CURRICULUM VITAE. Personlige oplysninger. Michael Alrøe. Uddannelse. Kurser og efteruddannelse. Michael Alrøe. Navn Fødselsår 1964 LinkedIn

Lidt orientering om, hvad en computer består af

Undervisningsbeskrivelse

QUICK MANUAL BRUGERNAVN: ADMIN PASSWORD: APP: SMARTEYES PRO PORT: SecVision - Quick Manual v1.0

Gennemgang af medietyper

Norddjurs Kommune har et moderne IT drift miljø, der ønskes styrket med 4 yderligere servere samt 2 yderligere diskhylder.

Produktspecifikationer Private Cloud Version 2.7

Allan Nelsson - OZ5XN. Licenced since 1970

Installation og konfiguration

Epson AcuLaser CX37DTNF Laser

LX5280. High-Performance RISC-DSP for IP Licensing

Transkript:

CPA-C Lesson 01 Introduction to Embedded Systems 1

Dagens Menu 8:00 8:25 9:00 9:40 Hvad er et embedded system? Kursets indhold og motivation Pause (10 min) Processor? Pause (10 min) Devkit8000? Repetition: Endianess og HW for SW folk! Øvelse Endianess 12:00 Frokost! 2

MP3 Afspilleren I 1981 søger Kane Kramer patent på sin Digital Audio Player 8MB Bubble Memory, 3½ min audio Vist på Messe i 1986 og gav ordrer på 60.000.000 Mistede dog patentet og ordrene Ideen blev public domain 3

MP3 Afspilleren General Processing Løsning Dedikeret Hardware Løsning MP3 dekoder ASIC gør strømforbruget lavt og dermed en batteridrevet løsning mulig 4

MP3 Afspilleren 1998: Rio PMP300 32MB, 12 Sange (128Kbit/s) 8-12 timers spilletid på et AA-batteri Parallel Port Interface $200 Solgte 200.000 stk Solgte sw rettigheder til Sigmatel I 2005 og stoppede produktion 5

IPod 2001: First Generation IPod 5GB Harddisk 10 timers batteritid FireWire Interface $399 260.000.000 IPods solgt pr april 2010! 6

IPhone 3G Inside Op mod 7 ARM processorer! Nu er MP3 en bi-egenskab. Mange, mange nye features! 7

MP3 Opsummeret Dedikeret hardware muliggør nye anvendelsesområder Dedikeret hardware kan optimeres mht pris / strømforbrug / driftssikkerhed Dedikeret Hardware er typisk indlejret (=embedded) hardware 8

Standard kurset Vi kunne have lavet et kursus om: Processor arkitektur, eller Embedded hardware, eller Linux device drivers 9

Bastard Kurset + CPA-C er omhandler det hele! 10

Formål med CPA-C Når kurset er slut skulle du gerne: Have en forståelse af en CPU s interne opbygning Forstå hvordan programmering påvirker performance og hvilke begrænsninger hw kan give. Kunne læse et diagram Forstå hvordan et system med bootloader og OS virker Kende til typiske embeddede interfaces Kunne skrive Linux drivers til hardware som endnu ikke er understøttet. Have lyst til at kaste dig ud i embeddede projekter! 11

Læringsmål Beskrive de grundlæggende elementer i 32-bit processor arkitektur. Beskrive processor busser, interconnect og memory Redegøre for CPU eksterne interface: I2C / SPI / UART mm. Tilegne sig nødvendig viden om konfiguration af enheder gennem selvstændigt studie af disses datablade Redegøre for boot processen af et Linux system Redegøre for Linux kerne moduler og hvordan driver systemet er opbygget Udforme Linux Character drivers Redegøre for interrupts og deres håndtering i Linux 12

Eksamen Mundtlig eksamen, 20 minutter Udgangspunkt i teori og med reference til øvelser Godkendelse af øvelsesblog/wiki 13

CPA-C Oversigt LESSON 1: EMBEDDED COMPUTERS INTRO LESSON 2: BUSSES LESSON 3: BOOTING LINUX LESSON 4: LINUX KERNEL MODULES LESSON 5: LINUX CHAR DRIVERS LESSON 6: EXCEPTIONS / INTERRUPTS LESSON 7: SPI INTERFACE LESSON 8: LINUX DRIVER EXTRAS LESSON 9: PROCESSOR CORE FUNDAMENTALS LESSON 10: PROCESSOR MEMORY LESSON 11: EXTERNAL MEMORY LESSON 12: EXTERNAL SERIAL INTERFACES 14

Processoren 15

John Von Neumann Definerede i 1928 grundarkitekturen for en computer Instruktioner hentes sekventielt fra et lager Afvikles på separate funktionelle enheder Tidligere var al funktionalitet hardwired 16

CISC Complex Instruction Set Computer. Går tilbage til 60 erne Mange og komplekse instruktioner som udfører store opgaver En enkelt instruktion kan tage mange clock cycles Giver mindre programkode og kræver mindre af compiler, da komplekse ting sker run-time Vigtigt i 60-70 erne pga lav memory hastighed Giver komplekse processorer som har et højt effektforbrug. Princip bibeholdt pga bagudkompabilitet, men ikke videreudviklet af samme årsag Eks: Intel x86, Motorola 68k 17

RISC IBM projekt inspirerede i 1980 David Patterson til at undersøge en simpel arkitektur, RISC Nyt design, ingen bagud kompabilitet Enkle instruktioner som kunne afvikles på én clk cycle. Reduced Instruction Set Computer Bruger flere instruktioner for at udføre en opgave end CISC, men kun én clk cycle pr instruktion Hurtigere RAM teknologi medførte i 1980 erne at RISC blev mere effektiv end CISC Kræver en mere avanceret kompiler, for at nedbryde til simple instruktioner Eks: ARM, MIPS, PowerPC 18

Harvard / Von Neumann Von Neumann Architecture Harvard Architecture Harvard arkitekturen er et subset af Von Neumann Separat data- og program memory giver øget båndbredde Forskellig busbredde mulig Kræver separat instruktions- og data cache Benyttes oftest i en modificeret udgave med D- / I-cache, men med fælles ekstern memory 19

Hvad var det nye ved Von Neumanns arkitektur? Hvad er hurtigst: RISC / CISC? Hvad er forskellen: RISC / CISC? Harvard / Von Neumann? http://www.iha.dk/job-og-studiejob-6199.aspx 20

Microprocessor Microprocessor er rå regnekraft Kun få eksterne interfaces: Memory Bridges RISC/CISC Benyttes til: PC Server Processing farms 21

Microcontroller Microcontroller er en microprocessor med eksterne interfaces: GPIO, I2C, UART Typisk RISC Benyttes til: Industri Automotive Consumer 22

SoC System on Chip kan have flere indbyggede processorer og specialfunktioner Benyttes til: Smartphones Multimedia Industri? 99% RISC Blander begreberne 23

Moores Law Wikipedea Antal transistorer fordobles hvert andet år 24

CPU Frequency Scaling I 2004 droppede Intel efterfølgerne til Pentium 4 pga effektforbug. Frekvensskalering er herefter ikke længere brugt til at øge beregningsbåndbredde 25

Amdahl s Law Memory Software Hardware.org/wiki/Parallel_computing http://en.wikipedia. Speedup er proportional med procentdel af tiden som forbedringen kan benyttes. 2 x clockfrekvens 2 x speedup, hvis ikke memory kan følge med. 2 x CPU 2 x speedup, hvis ikke SW kan følge med 90% parallelisering af prg => max x10 speedup 26

Hvad kendetegner Microprocessor, Microcontroller og SoC? Hvad er idag den begrænsende faktor for CPU performance? http://www.iha.dk/job-og-studiejob-6199.aspx Hvordan maksimerer vi performance? 27

DevKit8000 Introduktion 28

Devkit8000 Hardware DevKit8000 er en klon af Beagle Board. 29

Beagleboard Se beagleboard.org Community / TI drevet ~ DKK 1250,- 30

Add-On Board RS-232 x 3 GPIO (3V3) CPLD TDM, SPI EEPROM TEMP ADC / DAC GPIO (5V) CPLD JTAG IHA Homebrew! Se http://devkit8000addon.wikispaces.com/ 31

OMAP3530 ARM Cortex-A8 DM64x DSP SGX Video Accelerator Camera Input Processor Digital Display subsystem USB OTG Hvilken Arkitektur? Systemtype? 32

ARM Cortex A8 ARM v7 kerne < 300mW for 2000 Dhrystone MIPS! NEON Multimedia unit Jazelle. Java JIT L1 + L2 Cache Brugt i: IPod Touch 3G, S.E. Satio, Nokia N900, Samsung I8910 33

Repetition Endianess Byte- / Word- / Double Alignment 34

Endianess Little-endian: x86 Configurable: ARM PowerPC MIPS Big-endian: 68K 35

Atomic Size Big Endian increasing addresses... 0A h 0B h 0C h 0D h... Little Endian increasing addresses... 0D h 0C h 0B h 0A h... With 8-bit atomic element size increasing addresses... 0A0B h 0C0D h... increasing addresses... 0C0D h 0A0B h... With 16-bit atomic element size Afhængig af memory type, kan denne tilgås som 8- /16-/32-/64-bit. 36

Memory Map OMAP3 DevKit8000 # md.b 0x80300000 50 80300000: 27 05 19 56 4a dc 69 2c 4c 49 f3 3b 00 1e 66 bc '..VJ.i,LI.;..f. 80300010: 80 00 80 00 80 00 80 00 af fd 30 4f 05 02 02 00...0O... 80300020: 4c 69 6e 75 78 2d 32 2e 36 2e 32 38 2d 72 63 39 Linux-2.6.28-rc9 80300030: 2d 6f 6d 61 70 31 00 00 00 00 00 00 00 00 00 00 -omap1... 80300040: 00 00 a0 e1 00 00 a0 e1 00 00 a0 e1 00 00 a0 e1... OMAP3 DevKit8000 # md.w 0x80300000 28 80300000: 0527 5619 dc4a 2c69 494c 3bf3 1e00 bc66 '..VJ.i,LI.;..f. 80300010: 0080 0080 0080 0080 fdaf 4f30 0205 0002...0O... 80300020: 694c 756e 2d78 2e32 2e36 3832 722d 3963 Linux-2.6.28-rc9 80300030: 6f2d 616d 3170 0000 0000 0000 0000 0000 -omap1... 80300040: 0000 e1a0 0000 e1a0 0000 e1a0 0000 e1a0... OMAP3 DevKit8000 # md.l 0x80300000 14 80300000: 56190527 2c69dc4a 3bf3494c bc661e00 '..VJ.i,LI.;..f. 80300010: 00800080 00800080 4f30fdaf 00020205...0O... 80300020: 756e694c 2e322d78 38322e36 3963722d Linux-2.6.28-rc9 80300030: 616d6f2d 00003170 00000000 00000000 -omap1... 80300040: e1a00000 e1a00000 e1a00000 e1a00000... 37

Network Endianess.. 78 54 00 (0045)87302000 Historisk benytter telecom Big-Endian, således at det mest betydende ciffer (område) bruges som det første til at switche på TCP/IP Bruger Big-Endian. En little-endian CPU vil være ueffektiv i en router/switch 38

Bit Endianess LSB 0 MSB 0 VHDL: data(7 downto 0) VHDL: data(0 to 7) De fleste CPU er benytter LSB 0 notation (minus Freescale). Transparent for SW, men vigtig for HW (bus bit nummering). Serielle data (RS-232, Ethernet, ect) benytter LSB0, dvs LSB bit sendes først (misses 1. bit betyder det ikke meget). (http://www.linuxjournal.com/article/6788) 39

HW for SW folk 1:2 Chip pakker, hvor er ben 1? Gates, AND, NOR, NAND, hvordan tegnes de? Hvordan virker de? Power / Ground symboler Afkoblingskondensatorer Tri-state drivers D-Flip Flop Timing Diagrammer Setup- / Hold 40

http://devkit8000addon.wikispaces.com/schematic HW for SW folk 2:2 41

Næste lektion Omhandler busser IKKE bybusser eller langtursbusser Bruges til at forbinde en processor med eksterne enheder Vigtigt at forstå hvad en bus er, for at kunne læse et diagram og søge information om relevante komponenter. Dette er igen vigtigt for at kunne skrive sw til et embedded system. 42