Embedded SW – C & picoBlaze

Slides:



Advertisements
Lignende præsentationer
Niveauer af abstrakte maskiner
Advertisements

Distribuerte Objekter Våren 2011 Professor II Eric Jul Forelesning F2 –
1 Pentium IA-32 Maskinarkitekturen Kort resume – uge 5.
Almindelige ("hårde") links (i filsystemer med i-noder) opg.txt jens: pia: ln /home/pia/opg.txt /home/jens/opg.txt hård link: ny post får i-node-nummer.
1 C-kursus 6. Lektion n Repetition af 5. Lektion n Vi mødes igen kl til gennemgang af 6. Lektion.
Symbolsk maskinsprog.
C#: Udtryk og metoder. Indhold “With regards to programming statements and methods, C# offers what you would come to expect from a modern OOPL…” Udtryk.
Intro Forelæsning 2 Linux install-party lør.14.sept kl – man. 14.okt – Kursets omfang :7,5 ECTS Kursussammensætning: forelæsning.
NetBeans Installation og brug.
Flerbrugermaskine Fælles maskine Root: webserver Peter: uploader filer Pia: programudvikling 1 langvarig proces, evt. med børneprocesser skiftende behov.
Hvordan man skriver koden.
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
Adresserum Adresserum: Det interval af adresser, der kan arbejdes med i den samme proces (fra 0 til største adresse) Lippiatt++: adresser fylder 8 bit.
GP 10, 7/ Grundlæggende programmering Efterår 2001 Forelæsning 10 onsdag 7/ kl. 9:15 – 12:00.
FEN IntroJava AAU1 Opsamling: afvikling af Java-programmer Input fra keyboard og fil Fra en prompt Fra BlueJ Fra NetBeans.
Lasse Steensgaard [xls]Opsamlende forelæsning på W2, 2. april 2003slide 1 HTML og PHP: Baglæs fra output til input PHP: Variable, strenge og arrays Funktioner,
Faglig læsning i alle fag Nørholm Skole. Læsning er en del af alle fag Dansklæreren har ansvaret for, at eleverne lærer ”at knække koden” Alle lærere.
Paradigmer i Programmering 4. IO + oversigt over udtryk.
Compiler/fortolker struktur Mellem- kode Mellemk.- optimering Kode- generering Kode- optimering Lexikalsk- analyse Syntax- analyse Semantik- analyse -
Datalogi 1F Forår 2003 Multiprogrammering[3] Eksempler på multiprogrammeringskerner Jørgen Sværke Hansen
Udregning af UseCasePoints UCP = UUCP*TCF*EF UseCasePoint = Ujusteret Use Case Point * Tekniske Komplexitets Faktor * Miljø Mæssige Faktor.
Efteruddannelse Embedded C Modul 1 (Mandag den 19/4-2010)
Delphi og C++ Builder C++ Builder. C++ Historie Sproget blev designet for AT&T af danskeren Bjarne Stoustrup En objektorienteret videreudvikling.
Sproghistorie Syntaks (struktur) Semantik (Indhold)
1 PC baseret dataanalyse og simulering Week2 A. 2 SAS input/output filer Inddata -textfil - SAS-program -textfil- SAS datasæt SAS system SAS listing -print.
Lektion 7 Læsestof: Kopier fra Caranno
MATLAB Programplanlægning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2003 >>mit_program(‘ind.txt’.`ud.txt´) myconstants.m function.
Compiler/fortolker struktur Mellem- kode Mellemk.- optimering Kode- generering Kode- optimering Lexikalsk- analyse Syntax- analyse Semantik- analyse -
Ingeniørhøjskolen i Århus Slide 1 Newton approximation ”Oversæt” til algoritme - Step 5: Skriv kode - Step 4: Skriv pseudokode - Step 3: Specificér pre-
Procestræ under afvikling af cp init login shell cp cp src dest.
Intro Siden sidst: evaluering på opgaver og virtuel kursus.
11 - Exceptions. 2 NOEA2009Java-kursus – Exceptions Hvad er en exception? En undtagelse. Typisk en fejl der opstår runtime Afbryder det normale programflow.
Distribuerte Objekter Våren 2010 Professor II Eric Jul F4 –
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation.
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Intro Siden sidst: evaluering på opgaver og virtuel kursus.
Intro Siden sidst: evaluering på opgaver og virtuel kursus Kursussammensætning: forelæsning – læse – arbejde selvstændigt – newsgroup – øvelsestime – aflevering.
Per Printz Madsen 1 Linux kernen Monolithic kernel Support for dynamiske moduler Få kerne tråde Preemptive.
C#: Data Typer. 2 Nordjyllands Erhvervakademi Indhold: “.NET is designed around the CTS, or Common Type System. The CTS is what allows assemblies,
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
DComNet1 ISA-niveauet (2). dComNet2 Niveauer af virtuelle maskiner ISA niveauet / maskinkodeniveauet / maskinniveau.
Paradigmer i Programmering 3. Højere ordens funktioner Idag: Højere ordens funktioner Algebraiske datatyper Næste gang: I/O, Filer, interaktive programmer.
Distribuerte Objekter Våren 2013 Professor II Eric Jul F4 –
Datalogi 1F: Multiprogrammering[3] 1 Planen for idag Kerner uden afbrydelser (KB4 kap. 6): –akernen: kerne med decentralt processkift –bkernen: kerne med.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
1 Processer. 2 fork int fork(); Danner en ny proces med samme indhold som forældre processen. I begge processer er programtælleren placeret lige efter.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
Statistik II 4. Lektion Logistisk regression.
DMasArk1 Pentium IA-32 Maskinarkitekturen. dMasArk2 Historie (1).. starter i 1970 med udviklingen af Intel 4004:
Multiple processer på web-site Web- server filer Kunde 1 Kunde 2 Kunde p1p2p internet.
UProcessorens hardware Architecture Kernen i en processor er ALUen. Det er den som kan udfører simple regne operationer. De tal den arbejdermed.
Let Elektronik Let Elektronik – opstart 2009 Hans Erik Tjelum – teknik Simonia Tjelum – alt andet.
Port access  Indtil nu har vi anvendt færdige metoder til at tænde og slukke for LEDs, men den metode virker kun så længe vi arbejde med Keil boardet.
Port access I det efterfølgende vil vi anvende databladsoplysninger frem for anvende de færdige metoder.
CANSATs 2010 og frem Jens Dalsgaard Nielsen.
CANSAT & ARDUINO step by step
Nu har du installeret uVision og set at både programmet og boardet virker. Man kan ikke lære at cykle ved at se på andre, så i det efterfølgende skal du.
1587 Server - Blandet miljø Embedded I
ADC (Analog/Digital converter) Bruges til at måle analoge spændinger på kontrollerens inputporte. På dit board sidder en drejeknap under displayet som.
I det efterfølgende vil vi prøve at opnå forbindelse til de knapper som er på boardet. Opgaven er at vi ved at trykke på knapperne kan få lyset til at.
Lav et nyt projekt og tilføj denne gang pakken Graphic LCD.
I det efterfølgende kommer nogle eksempler på C kode som adskiller sig fra det vi normalt anvender i C# Hvis du har behov for hurtigt at afprøve små stumper.
”Avanceret” Programmering
Interrupts. Indtil nu har hastigheden på dine blinkende LEDs været styret af et loop. Som du muligvis også har bemærket afhænger det meget af hvor travlt.
Software Testing Software testing.
Arduino antenne switch
I det efterfølgende kommer nogle eksempler på C kode som adskiller sig fra det vi normalt anvender i C# Hvis du har behov for hurtigt at afprøve små stumper.
Studiepraktik Thomas Bøgholm Mikkel Hansen Jacob Elefsen
Programmering.
Præsentationens transcript:

Embedded SW – C & picoBlaze

PicoBlaze – resume/constraints

PicoBlaze <> Ardunio Uno PB 1k instruktioner for PB Atmega8 8kB for kode (minus bootloader) PB scratchpad RAM + 31 dyb call stack Atmega 1kB ram, 512B eeprom Sammenlignelig på kode, faktor 4-10 på RAM - ! so bad PB fylder kun ca 5% af FPGA... ? kan man skohorne flere PB ind på fpga ?

PB & C – nogle kommentarer Der er en række C compilere baseret bla på Hendrics smallC (sdcc) og pbcc (picoBlaze C) De seneste jeg har fået til at køre er at se på kursus WWW SE http://es.aau.dk/staff/jdn/edu/courses/14-1/embSW/c2 (eller også 15-1) Hvor compilere er hentet Det hele kører på xp eller med wine på linux/mac wine pccomp.exe <parms>

PC C & linux Der er C compilere til PB kørende på linux, men det er “alles inclusive” - man skal selv hente src træ og kompilere op. Ej interessant “Main” dokument pccomp_manual.pdf som er på www

Dagens opgave Hent SW Skriv “hello world” C compile it Asm it Vejen frem

Om PB C I Jordens dummeste C compiler ! Ingen kode optimering – du er kode optimator Undgå lokale variable – brug globale Undgå for dybe (rekursive) funktionskald aht call stack Pas på med mixede typer operationer – int/char Kig maskin kode igennem !

Om PB C II LÆS MANUAL pccomp_manual.pdf !!! Subset af C (obvious :-) Datatypes: (no news) char 8 bit unsigned char 8 bit int 16 bit unsigned int 16 bit Arrays – NB (unsigned) char for indexing only Pointers – 1D only

Om PB C III Type casting (unsigned)char -> (unsigned)int)

“if” as usual “while” as usual Endless loops: No check af asm part

Om PB C IV do {} while () switch

Datz all :-)

næsten

interrupts PB har et eksternt interrupt IRQ rutine skal hedde my_irq Kan aktiveres og deaktiveres online IRQ rutine skal holdes i asm Ved IRQ “end” er default at IRQ igen er aktiveret Kan dog kodes til at afslutte med IRQ disablet

IO space Ej testet af mig ...

// READ FUNCTION char inchar(char addr){ char x; #asm LOAD TMP , YL ADD TMP , 01 FETCH TMP, (TMP) ; TMP = addr INPUT TMP,(TMP) ; TMP = datain STORE TMP,(YL) ; save in x #endasm return x; } JDN: NOK EN IDE AT LEGE MED AT PAR FUKTIONER OG SE PÅ KODE LAYOUT:

_a_fct: LOAD XL, YL INPUT ZL,(XL) SUB YL , 01 OUTPUT ZL,(YL) LOAD ZL,01 INPUT XL,(YL) ADD YL , 01 ADD XL , ZL RETURN _main: LOAD ZL,04 CALL _a_fct OUTPUT XL,_c char c; char a_fct(char cc); // need prototype... char a_fct(char cc) { return cc+1; } void main(void) c = a_fct(4);

Nu til kødgryderne... pccomp.exe x.c - kun een C src Resten som #include <x.h> også selvom der er kode i filen Maskine kode i psm fil skal nu assembles \xilinx\13.4\IS_DSE\ISE\sysgen\bin\nt\kcpsm3.exe jdn3.psm .

_a_fct: LOAD XL, YL INPUT ZL,(XL) SUB YL , 01 OUTPUT ZL,(YL) LOAD ZL,01 INPUT XL,(YL) ADD YL , 01 ADD XL , ZL RETURN _main: LOAD ZL,04 CALL _a_fct OUTPUT XL,_c NAMEREG sf , XL NAMEREG se , YL NAMEREG sd , ZL NAMEREG sc , XH NAMEREG sa , ZH NAMEREG sb , TMP NAMEREG s9 , SH NAMEREG s8 , SL NAMEREG s7 , KH NAMEREG s6 , KL NAMEREG s5 , TMP2 CONSTANT _c , ff LOAD YL , ff JUMP _main