22.08.2013 Views

Maskinnära programmering i C och assembler

Maskinnära programmering i C och assembler

Maskinnära programmering i C och assembler

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Projektinställningar för 'mllibtest' i 'Debug'konfiguration:<br />

Projektinställningar för 'mllibtest' i 'Final'konfiguration:<br />

Skapa nu testapplikationen i 'Debug'-version med<br />

biblioteksrutiner. Testa genom att stega in i varje<br />

funktion (även biblioteksfunktionerna) <strong>och</strong><br />

kontrollera att det fungerar som avsett.<br />

SLUT PÅ UPPGIFT 143.<br />

UPPGIFT 144:<br />

I denna uppgift ska vi studera vad som händer då vi<br />

använder debuggern med programbibliotek som<br />

INTE omfattar 'Debug'-information.<br />

Detta är typiskt fallet om man använder färdiga<br />

programbibliotek men inte har tillgång till dessa<br />

biblioteks källtexter.<br />

Ändra nu under "Project Settings", för 'Debug'konfigurationen,<br />

biblioteksnamnet till<br />

"mllib.e12", dvs det programbibliotek du<br />

skapade utan Debug-information.<br />

Välj på nytt "Build All".<br />

Testa genom att stega in i varje funktion, vad<br />

händer då du försöker stega in i en<br />

biblioteksfunktion?<br />

SLUT PÅ UPPGIFT 144.<br />

Arbetsbok för MC12<br />

För att debuggern ska fungera krävs att de använda<br />

källtexterna finns tillgängliga <strong>och</strong> att debuggern<br />

kan hitta dessa. I nästa uppgift ska vi se vad som<br />

händer om vi faktiskt använder 'Debug'-versionen<br />

av biblioteket, men debuggern inte kan hitta de<br />

källtexter som ingår i biblioteket.<br />

UPPGIFT 145:<br />

Döp om filen ML4DRVR.C till ML4DRVR.CC.<br />

Ändra nu under "Project Settings", för 'Debug'konfigurationen,<br />

biblioteksnamnet till<br />

"mllibd.e12", dvs det programbibliotek du<br />

skapade med Debug-information.<br />

Välj på nytt "Build All".<br />

Testa genom att stega in i varje funktion, vad<br />

händer då du stegar in i en biblioteksfunktion?<br />

SLUT PÅ UPPGIFT 145.<br />

Du ska nu, på egen hand bygga ut det påbörjade<br />

programbiblioteket.<br />

Inför dessa uppgifter kan det vara lämpligt att<br />

snabbt repetera kapitel 3 som behandlade ML15<br />

<strong>och</strong> ML5.<br />

UPPGIFT 146:<br />

Aktivera projektet MLLIB.<br />

Konstruera drivrutiner för ML15 enligt följande<br />

specifikationer. Redigera dessa i en ny fil<br />

ML15DRVR.C. Lägg filen till projektet Placera<br />

även nya adress- <strong>och</strong> prototypdeklarationer i filen<br />

PORTADD.H.<br />

char ML15_Keyboard( void );<br />

Undersök tangentbordet. Om ingen tangent är<br />

nedtryckt skall 0xFF returneras, annars<br />

tangentkoden. Rutinen väntar tills nedtryckt<br />

tangent släpps upp igen.<br />

respektive:<br />

void ML15_Display( char *);<br />

Rutinen matar ut en sträng om 6 st<br />

hexadecimala siffror till Display-modulen <strong>och</strong><br />

tänder denna. Parametern är en pekare till en<br />

sträng som innehåller de hexadecimala<br />

siffrorna (mest signifikanta siffra först).<br />

Strängen förutsätts vara riktig, dvs inte<br />

innehålla värden större än 0xF.<br />

Det är lämpligt att du först testar i ett lokalt<br />

bibliotek, då du ser att dina drivrutiner fungerar<br />

som de ska installerar du programbibliotek <strong>och</strong><br />

header-fil i standardkataloger.<br />

SLUT PÅ UPPGIFT 146.<br />

105

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!