Maskinorienterad Programmering 2010/2011. Maskinorienterad Programmering 2010/2011. Skrivarporten, p Arbetsbok MC12, avsnitt 2

Relevanta dokument
In och Utportar på FLISP Hårdvara

Programmering av inbyggda system

Förutsättningar för skrivaranslutningen. Första programexemplet. strängslut. Maskinorienterad Programmering 2011/2012 Synkronisering och undantag

Förutsättningar för skrivaranslutningen. Första programexemplet. Synkronisera arbetstakterna

Förutsättningar för skrivaranslutningen

EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7)

Förutsättningar för skrivaranslutningen. Första programexemplet. Inför specialtecken för strängslut

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. Lars-Eric Arebrink

Laborationsmoment 2 - En Borrautomat

Avbrott - En enhet. I DAG fo 6 Mera avbrott. Avbrott - Fler enheter. Olika typer av avbrott DMA. Avbrott - Fler enheter -Avbrottshanterare

Printerport. I DAG Fö 3. Adressavkodning för skrivarporten. Printerport - forts

Laborationsmoment 2 - En Borrautomat

Dataöverföring på Parallell- och serieform MOP 11/12 1

VELKOMMEN!!!! SYFTE o MÅL. till EDA485/DIT151. Maskinorienterad Programmering. Kurslitteratur. önskar Jan o Rolf

Programmering av inbyggda system

Maskinorienterad programmering

Tentamen. DAT015 Maskinorienterad programmering IT DIT151 Maskinorienterad programmering GU. Tisdag 15 december 2009, kl

Undantagstyper. Maskinorienterad Programmering 2010/2011. MC68HC12, Stencil Assemblerprogrammering.pdf CPU12 Reference Guide

VELKOMMEN!!!! SYFTE o MÅL. till DAT015 / DIT151 Maskinorienterad Programmering. Kurslitteratur. önskar Jan o Rolf. Lektioner LP2 Vanlig vecka

I DAG Fo 4. Programutveckling i assemblerspråk. Programutveckling i assembler. PROGRAMSTRUKTUR Modul Subrutiner USE-direktivet

Laborationsmoment t 2 - En Borrautomat

Tentamen. EDA432 Digital- och datorteknik, IT DIT790 Digital- och datorteknik, GU. Måndag 18 Oktober 2010, kl

Arbetsbok för MC12, kapitel 4 Klocka. Genomgång av laborationer. New disc Här väljer du olika arbetsstycken

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen.

Laborationsmoment t 2 - En Borrautomat

Avbrottshantering. Övningsuppgifter Lösningsförslag Uppgift (Reservation för diverse fel!)

Maskinorienterad programmering

Extrauppgifter för CPU12

Assemblerprogrammering

Maskinorienterad programmering

Genomgång av laborationer. New disc: Här väljer du olika arbetsstycken. Control -sektion: Styrord till borrmaskinen

I DAG fo 4. Printerport v3 med READY o DAV. Avbrott. Hur bra blev det egentligen????

EDA Digital och Datorteknik

Styrenheten 9/17/2011. Styrenheten - forts Arb s 120. LV4 Fo10. Aktivera Kursens mål: Kap 7 Blå

Exempel 1 på Tentamen med lösningar

TENTAMEN (med svar och vissa lösningar)

EDA215 Digital- och datorteknik för Z

Tentamen med lösningar

Avbrottshantering. Övningsuppgifter

Seriekomunikation. CAN ett kommunikationsprotokoll för realtidssystem. Seriekomunikation -forts. Seriekomunikation -forts

Tentamen. EDA485 Maskinorienterad programmering Z DAT015 Maskinorienterad programmering IT. Tisdag xx yyyy 2006, kl

VELKOMMEN!!!! SYFTE o MÅL. till EDA485/DIT151. Maskinorienterad Programmering. Kursupplägg. Kurslitteratur. önskar Jan o Rolf

Tentamen med lösningsförslag

KOMPATIBILITET! Den här mottagaren fungerar med alla självlärande Nexa-sändare inklusive Nexa Gateway.!

Övningsuppgifter i Mikrodatorteknik 4p/5p

Digital och Datorteknik EDA /2011. EDA 451 Digital och datorteknik 2010/2011. Uppbyggnad_och_funktion.pdf

Föreläsningsanteckningar 3. Mikroprogrammering II

Digital- och datorteknik

Programmering av inbyggda system. Seriekommunikation. Viktor Kämpe

Xtra-2 (Ver )

Tentamen Enchipsdatorer med tillämpningar. Lösningar och kommentarer

Digital- och datorteknik. Lars-Eric Arebrink. Av institutionen utgiven instruktionlista FLEXIBLE INSTRUKTION SET PROCESSOR FLISP

Facit till övningsuppgifter Kapitel 13 Anslutning av minnes- och I/O-moduler till buss 13-1

Assemblerprogrammets struktur; exempel

Tentamen. DAT015 Maskinorienterad programmering IT. Fredag 21 april 2006, kl i V-salar

Tentamen. EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU. Onsdag 12 Januari 2011, kl

Maskinorienterad Programmering 2010/11

Exempel på tentamen 1

3. Mikroprogrammering II

Adressavkodning - busskommunikation

CHALMERS TEKNISKA HÖGSKOLA

Programexempel för FLEX

Digital- och datorteknik. Mekatronik-, data- och elektroingenjör Åk 1/ lp 1o2. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen

Tentamen. DIT150 Maskinorienterad programmering GU DAT015 Maskinorienterad programmering IT. Söndag 17 december 2006, kl

Tentamen med lösningsförslag

Tentamen med lösningsförslag

Digital- och datorteknik

DAT 015 Maskinorienterad programmering 2010/2011. Uppbyggnad_och_funktion.pdf

MC11. Enkortsdator. MC11 - Hårdvarubeskrivning. MC68HC11 är Motorola INC MS-DOS är Microsoft Corporation MC11, MC68 och MD68k är microlf

Digital och Datorteknik EDA /2010. EDA Digital och Datorteknik

Tentamen med lösningsförslag

Tentamen. EDA485 Maskinorienterad programmering Z. Måndag 6 mars 2006, kl i V-salar

Bengt Sebring September 2002 Sida: 1 Ordförande GRANSKNINGSRAPPORT 2/2002

BDM12 Användarbeskrivning. Introduktion

Villkorliga hopp: 9/26/2011. Dagens mål: Du ska kunna.. Villrorliga (Relativa) hopp - forts Arb s 140. LV5 Fo12. LV5 Fo12. Aktivera Kursens mål:

Konstruera en dator mha grindar och programmera denna Använda en modern microcontroller

1 (3k 2)(3k + 1) k=1. 3k 2 + B 3k(A + B)+A 2B =1. A = B 3A =1. 3 (3k 2) 1. k=1 = 1. k=1. = (3k + 1) (n 1) 2 1

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin.

6.14 Triangelelement (CST Constant Strain Triangle)

Assemblerprogrammering del 2

Semesterstugor. Stugorna är tillgängliga för Kommunal Skånes medlemmar året om

LEU240 Mikrodatorsystem

Tentamen 3. EDAxxx Grundläggande Datorteknik DIT791 Grundläggande Datorteknik, GU. Måndag xx Oktober 20xx, kl

6.14 Triangelelement (CST Constant Strain Triangle)

Exempel 2 på Tentamen med lösningar

Programmering av inbyggda system 2014/2015

Adressrum, programmerarens bild

Tentamen. EDA452 Grundläggande Datorteknik, D DIT790 Digital- och datorteknik, GU. Måndag 17 December 2012, kl

Digital- och datorteknik

F6: I/O hantering. Typer av I/O i ett datorsystem. Protokoll för synkronisering. Drivrutiner. Memory mapped Port mapped. Polling Timed Interrupt DMA

2 UPPBYGGNAD OCH FUNKTION

Exempel 3 på Tentamen

Maskinorienterad programmering, It/GU

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

MC68HCS12 - översikt

Tentamen Enchipsdatorer med tillämpningar Lösningar och kommentarer

Hittills på kursen: E = hf. Relativitetsteori. vx 2. Lorentztransformationen. Relativistiskt dopplerskift (Rödförskjutning då källa avlägsnar sig)

Maskinorienterad programmering del 1

Tentamen med lösningsförslag

Transkript:

Maskinorintrad Programmring 2010/2011 Skrivarportn, p Arbtsbok MC12, avsnitt 2 Ur innhåt: Vi ansutr n skrivar Assmbrprogrammring - skrivarportn 1 Skrivarport Arbtsbok, kap. 2 Konstruktion av n Printr-Port Synkronisringsprobm Vikorig / ovikorig övrföring Busy Wait och Poing Handskakningssignar k i Assmbrprogrammring - skrivarportn 2

MC12 adrssrum Bskrivand figur övr hur minnsmodur och IO-portar är pacrad i minnt FFFF 4000 3FFF 1000 0FFF 0400 03FF 0000 ROM, Innhår dt inbyggda dbuggrprogrammt DBG12. RWM, används för program och data. I dtta adrssintrva pacras gränssnitt mot xtrna nhtr HCS12 intrna rgistr Assmbrprogrammring - skrivarportn 3 Adrssavkodning d för skrivar-portn FFFF Adrss- avkodning CS CPU12 skrivar minn 4000 3FFF Md portdfinition PRINTER EQU $0800 och instruktionrna LDAA #$30 STAA PRINTER övrförs hxadcimaa värdt 30 ti skrivarn Dt ia fönstrt visar innhåt i datargistrt tokat som ASCII. skrivarportns datargistr 1000 0FFF 0800-0803 0400 03FF papprsyta, här visas utskriftn 0000 Assmbrprogrammring - skrivarportn 4

Förutsättningar Vår skrivar är från början n "dum" skrivar: Dn kan ndast arbta md tt tckn i tagt. (hämtar tt tckn - skriv ut - hämta nästa) Dt finns indningsvis inga handskaknings-signar Max utskriftshastight: 4 tckn pr skund. Assmbrprogrammring - skrivarportn 5 Första programxmpt * Printr V1_0 ORG $1000 LDX #Txt Pkar ti txtsträng -> X Loop LDAA 1,X+ Tckn -> A, pka på nästa STAA PRINTER Skriv ut ti port BRA Loop Fortsätt md nästa tckn ; så här kan du använda assmbrdirktiv för att ; skapa txtsträngn på adrsss 3000: ORG $3000 Txt FCS Hj Du Ka! Txt ($3000) H j D u K a! Assmbrprogrammring - skrivarportn 6

Inför spciatckn för strängsut Txt ($3000) H j D u K a! EOT PrintrV1_1 Init Läs nästa tckn Tckn= EOT? Övrför Data ti Skrivarn * Printr V1_1 PRINTER EQU $0800 EOT EQU 4 ORG $1000 LDX #Txt Loop: LDAA 1,X+ CMPA #EOT BEQ Stop STAA PRINTER BRA Loop Stop: NOP BRA Stop ORG $3000 N Txt: FCS "Hj Du Ka!" FCB EOT Stop Assmbrprogrammring - skrivarportn 7 Synkronisra arbtstaktrna t Skrivar Simuator STEP Simuator RUN Simuator RUN FAST Hårdvara Instruktionr/? 10 1000 1 000 000 skund Tckn/ 4? 2 200 200 000 skund Lösningn bir vikorig övrföring vikt krävr tt asynkront gränssnitt Assmbrprogrammring - skrivarportn 8

Vikorig i övrföring Mottagarn Rdo? N Mottagarn Rdo? N Statustst, krävr asynkront gränssnitt Sänd Data ti mottagarn Sänd Data ti mottagarn Busy Wait Poing Assmbrprogrammring - skrivarportn 9 Gä Gränssnitt, vrsion 2 PrintrV2_0 datorsystm Skrivarbuss -signan dfiniras nigt: Skrivar = 1 (Hög nivå) indikrar att skrivarn är kar att ta mot tt nytt tckn. = 0 (Låg nivå) indikrar att skrivarn ki är upptagn md att skriva ki ut tt tckn. Init Läs nästa tckn Tckn= EOT? N Läs Status Bit 7 2 Statusrgistrt t 1 0 =1? Övrför Data ti Skrivarn N PrintrV2_0 Assmbrprogrammring - skrivarportn 10

Programmrarns bid = 1 (Hög nivå): skrivarn är REDO = 0 (Låg nivå): skrivarn är UPPTAGEN Bit 7 Statusrgistr 2 1 0 * Printr V2_1 PRINTER EQU $0800 PSTATUS EQU $0801 EOT EQU 4 ORG $1000 LDX #Txt Loop: LDAA 1,X+ CMPA #EOT BEQ Exit LoopForRady: LDAB PSTATUS ANDB #4 BEQ LoopForRady STAA PRINTER LoopForNotRady: LDAB PSTATUS ANDB #4 BNEQ LoopForRady Exit: BRA NOP BRA Loop Exit ORG $3000 Txt: FCS "Hj Du Ka!" FCB EOT Assmbrprogrammring - skrivarportn 11 Rsutat t Karar nu situationn att cntranhtn arbtar snabbar än skrivarn. Fortfarand probm då cntranhtn är ångsammar än skrivarn. Fortfarand probm md att få skrivarn att stoppa då sista tcknt skrivits ut. Vi bhövr yttrigar handskakningssigna Tckn finns Assmbrprogrammring - skrivarportn 12

Gä Gränssnitt, vrsion 3 Datorsystm Skrivarbuss Skrivar = 1 (Hög nivå) indikrar för skrivarn att gitigt tckn finns att hämta på skrivarbussn. = 0 (Låg nivå) indikrar för skrivarn att skrivarbussn har tt ogitigt värd. Bit 7 1 0 Styrrgistr Assmbrprogrammring - skrivarportn 13 Händsr i Datorsystmt Inväntar =1 När =1 skrivs nästa tckn ti skrivarns datargistr. Sättr =1 Inväntar =0 När =0 nostäs som indikation på att dt int finns gitigt tckn på skrivarbussn Händsr i skrivarn Skrivarn är upptagn md att skriva ut tt tckn. =0. Skrivarnärrdoför nästa tckn och sättr =1 Inväntar =1 Sr att =1. Läsr nytt tckn från skrivarbussn. Signarar upptagn, =0. Skrivarn är upptagn md att skriva ut tt tckn. =0. * Printr V3 PRINTER EQU $0800 PSTATUS EQU $0801 PCONTROL EQU $0802 EOT EQU 4 ORG $1000 LDX #Txt Loop: LDAA 1,X+ CMPA #EOT BEQ Stop Rady: BRCLR PSTATUS,#4,Rady STAA PRINTER BSET PCONTROL,#2 NotRady: BRSET PSTATUS,#4, NotRady BCLR PCONTROL,#2 BRA Loop Stop: NOP BRA Stop ORG $3000 Txt: FCS "Hj Du Ka!" FCB EOT Assmbrprogrammring - skrivarportn 14

Rsutat t Karar nu situationn att cntranhtn arbtar snabbar än skrivarn. Karar nu situationn då cntranhtn är ångsammar än skrivarn. Karar nu situationn md att få skrivarn att stoppa då sista tcknt skrivits ut Lösningn är dock hoppöst inffktiv md tank på hur vi utnyttjar systmt Vrkigt "arbt" Procssorn väntar på ska gå hög μs 250 ms μs Assmbrprogrammring - skrivarportn 15 Introduktion ti Undantagshantring t Intrrupt RQust (IRQ), bgäran om avbrott Skrivarbuss Skrivar Datorsystm IRQ Datorsystm Skrivar buss Skrivar Huvudprogram Avbrottssigna IRQ Avbrottsrutinn utförs och tt tckn skickas ti skrivarn IRQ Avbrottsrutin som skrivr ut tt tckn Procssorn utför annat viktigt arbt s 100 ms s Assmbrprogrammring - skrivarportn 16

Avbrott Huvudprogram 1 Avbrott 2 5 6 Avbrottsrutin 3 Btjäna avbrottt RTI 4 1) Huvudprogram xkvras när tt avbrott aktivras 2) Hopp ti avbrottsrutin 3) Avbrottsrutin startar 4) Avbrottsrutin avsutas md n spci instruktion, rturn from intrrupt (RTI) 5) Åtrhopp ti huvudprogram 6) Huvudprogrammt fortsättr. Minn FFF2 FFF3 Avbrottsrutinns adrss avbrottsvktor Assmbrprogrammring - skrivarportn 17 EXEMPEL, Skrivarportn TxtP Txt A H A L H j FFF2 FFF3 Minn Printr_IRQ(H) Printr_ IRQ(L) avbrottsvktor D u K a! EOT * Avbrottsrutin Printr_ IRQ: LDX TxtP ;Läs pkar ti nästa LDAA 1,x+ ;Skriv nästa tckn STAA Printr STX TxtP ;Spara nya pkar RTI Assmbrprogrammring - skrivarportn 18