Øving i Tornado og VxWorks

Like dokumenter
Debugging. Tore Berg Hansen, TISIP

Programmeringsspråket C

Del 1 En oversikt over C-programmering

En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen. Ofte vil det være flere prosesser/tråder på datamaskinen samtidig.

Huldt & Lillevik Lønn 5.0. Installere systemet

Visma Contracting Oppgradering til versjon 5.20

Program delegate. Lage et nytt prosjekt i Visual Studio

EKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.

Læringsmål og pensum. v=nkiu9yen5nc

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.

Her skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den.

Oversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities.

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Installasjonsveiledning

Hvordan en prosessor arbeider, del 1

PLS PC-øving nr. 3 Global Label og Local Label, flagg og CJ

Kan micro:biten vår brukes som en terning? Ja, det er faktisk ganske enkelt!

Steg 1: Installere programvaren

Installasjon. - første gang. Med MS SQL Server eller eksisterende MSDE. Huldt & Lillevik Lønn og Personal - System 4. Personec AS

Finne ut om en løsning er helt riktig og korrigere ved behov

Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF

Huldt & Lillevik Lønn 5.0. Installere systemet

Brukerveiledning for Intelligent Converters MySQL Migration Toolkit IKA Trøndelag IKS 2012

Huldt & Lillevik Lønn og Personal - System 4. Installasjon. - første gang MSDE. Personec AS. Veiledningen er oppdatert pr

Blinkende lysdiode Introduksjon Arduino Lærerveiledning

CodevisionAVR. Start CodevisionAVR. Velg Settings Terminal og sett opp kommunikasjonsparametrene som figur 1 viser. avrlab07a.doc HVE RI Arnfinn Lunde

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

Finne ut om en løsning er helt riktig og korrigere ved behov

Oppsummering fra sist

super:bit-oppdraget Lærerveiledning Versjon 1, august 19.

Installasjon Huldt & Lillevik Lønn. Innhold

Definisjon av prosess

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

6105 Windows Server og datanett Jon Kvisli, HSN Skriveradministrasjon - 1. Utskrift i nettverk

Installere JBuilder Foundation i Mandrake Linux 10.0

Med løkke: Læringsmål og pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Utgave 2: Kap. 5. Mål.

Kan micro:biten vår brukes som et termometer? Ja, den har faktisk en temperatursensor!

Lite LITE. Veiledning for hurtiginstallering. Versjon 1.0

Del 4 Noen spesielle C-elementer

Threads Threads (tråder) threads vs prosesser threads vs prosesser Definisjoner av

1. Rullende navn, s 3 2. Smilefjes, s 5 3. Skritteller, s 7 4. Orakel, s 9 5. Stein, saks og papir, s Kompass, s 14

Hvis du gjenkjenner ett av disse to bildene over så er dere på vår ASP-server.

Huldt & Lillevik Lønn og Personal - System 4. Installasjon. - første gang. Med MS SQL Server eller eksisterende MS Express.

Installasjonsveiledning Visma Avendo Lønn, versjon 7.60 Oktober 2011

6105 Windows Server og datanett

DDS-CAD 7 INSTALLASJON AV NETTVERKSLÅS. DATA DESIGN SYSTEM ASA Øksnevad Næringspark, 4353 Klepp st., fax , tel.: , e-post: dds@dds.

Kort notat om parallellstyring IN147

Programmeringsspråket C

Om du allerede kjenner Scratch og har en Scratchbruker kan du gå videre til Steg 1.

Huldt & Lillevik Lønn 5.0. Installere systemet

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Steg 1: Vår første datamaskin

1. Arduino Bluetooth 2 HC-05 modul

Visma Contracting Oppgradering til versjon 5.41

WORKSHOP BRUK AV SENSORTEKNOLOGI

Flytte Lønn 5.0 fra SQL 2000 til SQL 2005 / 2008

UNIVERSITETET I OSLO

Bruksanvisning for Blekkspruten koblingsboks

En liten oppskrift på hvordan jeg installert og fikk Xastir til å virke sånn at jeg ble synlig i APRS verden.

Programmeringsspråket C

1. Arduino Bluetooth 4.0 Low Energy (BLE)

PXT: Det regner mat! Introduksjon. Steg 1: Grunnlag. Sjekkliste. Skrevet av: Helene Isnes

Lærerveiledning - Straffespark

Dataeskeleser med databrikke

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

PLS PC-øving nr. 2 Trening i programmering

Løsningsforslag til 2. del av Del - EKSAMEN

Brukerveiledning. Searchdaimon AS phone: Østensjøveien 34 fax:

1)Gjør om desimal tallene til binære: a) 4 =0100. b) 17 = c) 34 = d) 128 = e) 255 =

)DVW3ODQ,QVWDOOHULQJ $%% $6 'LYLVMRQ $XWRPDVMRQVSURGXNWHU ΑΒΒ 3RVWERNV 6NLHQ

Bygge en kube. Introduksjon. Steg 1: Lage en ny mod. Skrevet av: Pål G. Solheim

Brukerveiledning for Digifob Pro

MAT-INF 1100: Obligatorisk oppgave 1

SPSS Høgskolen i Innlandet

INSTALLASJONSVEILEDNING

Mappeinformasjon Programfiler... 2 Delte Programdata... 2 Delte dokumenter... 2 Brukerens egne data... 2 Brukerens egne dokumenter...

ATI REMOTE WONDER Installeringsveiviser

Mer om C programmering og cuncurrency

Operativsystemer og grensesnitt

UNIVERSITETET I OSLO

INF Obligatorisk innlevering 5

INSTALLASJONSVEILEDNING FOR KALK2010 KALKULASJONSPROGRAM

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

Programmeringsspråket C Del 3

PXT: Hermegåsa. Introduksjon. Skrevet av: Felix Bjerke og Tjerand Silde

Om verktøyet. Installering av MySQL Migration Toolkit. Installer toolkitet. Brukerveiledning til Intelligent Converters MySQL Migration Toolkit

PXT: Hermegåsa. Steg 1: Sjekk at du har riktig utstyr. Sjekkliste. Introduksjon

Programmeringsspråket C Del 3

Velkommen til. INF våren 2016

TDT4110 IT Grunnkurs Høst 2016

Installere JBuilder Foundation i Windows XP

Excited. Hvordan komme i gang med tekstbasert programmering? Centre for Excellent IT Education. Guttorm Sindre

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO

Sengealarm PIR Brukerveiledning. Sengealarm (bevegelsesdetektor) PIR-2003 INNHOLD

Din verktøykasse for anbud og prosjekt

Installasjonsveiledning. DDS-CAD Arkitekt & Konstruksjon 7

Læringsmål og pensum. Intro løkker. Mål Lære om begrepet løkker Lære om bruk av while-løkke Lære om bruk av for-løkke Pensum. Kapittel 4.

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

Transkript:

Øving 5 Øving i Tornado og VxWorks Innledning Denne øvingen går ut på å programmere for et målsystem som benytter sanntidsoperativsystemet VxWorks. Til dette benyttes utviklingssystemet Tornado fra WindRiver. Utviklingen vil foregå på en vertsmaskin som kjører Windows NT. Som målsystem benyttes en CPU32-basert maskin. Hardware Som målsystem benyttes et CPU32 basert kort. Dette kortet er montert inne i en metallboks (Det skal ligge én slik boks på hver arbeidsplass.) Under utvikling kobles målsystemet opp mot datamaskinen der utviklingssystemet ligger. Spenningskilde 5V Serieport på arbeidsstasjon Target Litteratur Bøker som omhandler bruk av Tornado og programmering for VxWorks: WindRiver Systems: Tornado Users Guide WindRiver Systems: VxWorks Reference Manual WindRiver Systems: VxWorks Programmer s Guide Disse bøkene skal ligge på sanntidslabben, og bør brukes under øvingen. 1

Oppgaver Det er mulig å gå igjennom øvingen som om det er en kokebok. Dette er ikke meningen. Forsøk å bruke det dere lærer fra de første oppgavene på de senere oppgavene. Prøv gjerne ut flere funksjoner og verktøy enn de som gjennomgås i øvingen. Oppgave 1: Enkel bruk av Tornado Til dette øvingssettet er det lagt ved en tutorial til bruk av utviklingsverktøyet Tornado. Til denne tutorialen kreves ikke noe ekstra hardware. Utfør denne tutorialen! Oppgave 2: Kontakt med målmaskin (target) For å kunne kommunisere med målsystemet, må det settes opp en target server i Tornado. Denne serveren vil kommunisere med en target agent som kjører på målsystemet. HOST TARGET Tornado VxWorks Shell Debugger Browser Target Server Kommunikasjonslinje Target Agent Sett opp boksen med målsystem som vist i figuren under Hardware. Pass på at du benytter riktig spenning. Start opp configure target server fra menyen. (tools->target server->configure) Sett opp serveren slik at serielinjen blir benyttet til kommunikasjon. Pass på at baudraten er riktig (19200) og at riktig COM-port er brukt NB! Dersom dere ikke får til å bruke target i de neste oppgavene, kan dere bruke simulatoren (som i oppgave 1) Åpne et skall som jobber mot målsystemet (-> på knapperaden) Merk: dette skallet vil kjøre på vertsmaskinen! Dette betyr at skallkommandoer vil bli kjørt på vertsmaskinen, mens kjøring av målprogramvare vil foregå på målsystemet. Viktige kommandoer er: cd katalog : Forandre katalog på vertsmaskinen ld<modul.o: Laste ned modul.o til målsystemet sp oppgave Start en oppgave som ligger på målsystemet. i Vis systeminformasjon l oppgave Disassemblér oppgave. Andre kommandoer som kan brukes er oppgitt i kap. 6 i Tornado Users Guide 2

Oppgave 3: Enkel programmering for VxWorks, nedlasting til target Start et nytt prosjekt. Lag en Hallo verden! rutine (dvs. et program som skriver ut en hilsen) for målsystemet. Legg merke til at i printf() hører inn under fiolib. Last ned programmet og test det ut. Utvid programmet, slik at det leser inn ID en til oppgaven som kjører rutinen (se beskrivelse av tasklib og taskidself() for hvordan dette kan gjøres.) Legg denne informasjonen inn i hilsenen. Legg merke til at en oppgave kan kjøres ved å skrive inn funksjonskallet til oppgaven i skallet, for eksempel ->minoppgave( test,8) Det er også mulig å starte en oppgave ved hjelp av sp eller taskspawn: ->sp minoppgave, test,8 ->taskspawn oppgave,120,0,2000,minoppgave, test,8 Ved bruk av sp vil navn, prioritet og stakkstørrelse på den nye oppgaven gis standardverdier. For å kjøre en oppgave flere ganger kan du bruke period eller repeat: ->repeat 4,minOppgave, test,8 ->period 1,minOppgave, test,8 Legg merke til at den første verdien vil være antall ganger oppgaven skal kjøres i repeat, eller periodetid (i sekunder) i period. 3

Oppgave 4: Opprettelse og kontroll av flere oppgaver Programmer noen små rutiner som kjører evig (bruk f.eks en evig løkke med det utvidede hallo verden!! programmet, men legg inn en taskdelay() rutine, slik at andre kommer til.) Last dem ned til målsystemet. Start opp noen rutiner ved hjelp av sp eller taskspawn Bruk funksjonene i, tt og liknende for å se hvordan oppgavene kjører i systemet. Bruk funksjonene tasksuspend(), taskresume(), taskpriorityset() og taskdelay() på de forskjellige oppgavene, og se hvordan informasjonen forandrer seg. Sammenlign med figuren nedenfor.. semgive() / msgqsend() expired delay PENDED READY DELAYED semtake() / msgqrecieve() taskdelay() taskresume() tasksuspend() tasksuspend() taskresume() / taskactivate() taskresume() tasksuspend() SUSPENDED Forsøk også å lage et program som starter og kontrollerer flere oppgaver (se beskrivelsen funksjonene taskspawn(), sp(), repeat() og period() for hvordan nye oppgaver opprettes) 4

Oppgave 5: Gjensidig utelukkelse Lag følgende program: #include vxworks.h #include tasklib.h #include fiolib.h int var1=40; int var2=50; void testtask1() while(1) var1=var1^var2; var2=var1^var2; var1=var1^var2; void testtask2() int count; for(count=1;count<=100;count++) printf("var1= %d, var2= %d \n",var1,var2); taskdelay(10); Rutinen testtask1 bytter om verdiene på de to globale variablene var1 og var2(^ betyr xor). Rutinen testtask2 skriver ut verdien av de to globale variablene. Last ned og start oppgavene med -> taskspawn "task1",200,0,2000,testtask1 -> testtask2 Hva skrives ut? Hvorfor? Prøv nå å beskytte tilgangen på de globale variablene ved hjelp av en mutex, slik at bare én av rutinene kan forandre på de globale variablene av gangen, så utskrift av variablene ikke kan skje mellom xor-setningene i ombyttingsrutinen. Se beskrivelse av semlib, semmcreate(), semgive() og semtake() for hvordan dette kan gjøres. Kompiler opp de nye rutinene, last ned, initialiser mutexen og start rutinene som ovenfor. Hva skrives ut nå? 5

Oppgave 6: Meldinger Lag et program som oppretter en meldingskø og to oppgaver, en sender og en mottaker. La senderen oppdatere en variabel (lag for eksempel en teller), deretter sende den til meldingskøen og så sove (bruk taskdelay()) i noen sekunder. La så mottakeren lese ut variabelen fra køen, og skrive den til skjermen. Se beskrivelse av msgqlib, msgqcreate(), msgqsend() og msgqreceive() for hvordan en meldingskø lages. 6