130 likes | 292 Views
Riistvarapõhine programmeerimine. Labor 1 Kontrollirega tutvumine , Programmi laadimine, Mälu kasutamine. Keskkond I. Redaktor Kompillaator SDCC Flash Magic. Kompillaator I. Kompillaator Optimiseeriv ANSI-C kompilaator MCS-51 ja Zilog80 Vabavara Linux & Windows
E N D
Riistvarapõhine programmeerimine Labor 1 Kontrollirega tutvumine, Programmi laadimine, Mälu kasutamine
Keskkond I • Redaktor • Kompillaator SDCC • Flash Magic ID218 Riistvaralähedane programmeerimine
Kompillaator I • Kompillaator • Optimiseeriv ANSI-C kompilaator • MCS-51 ja Zilog80 • Vabavara • Linux & Windows • http://sdcc.sourceforge.net/ ID218 Riistvaralähedane programmeerimine
Kompillaator II • Kasutamine • Sdcc kood.c • Tulemus kood.ihx • Tulemus kood.asm http://sdcc.sourceforge.net/doc/sdccman.html ID218 Riistvaralähedane programmeerimine
FlashMagic I • Kompileeritud programmikoodi laadimisvahend mikrokontrolleritesse • Vabavara • Windows • Philips Flash mikrokontrollerid http://www.esacademy.com/software/flashmagic ID218 Riistvaralähedane programmeerimine
FlashMagic II ID218 Riistvaralähedane programmeerimine
Flashmagic III • Konfigureerimine: • COM Port • Baud Rate • Device: P89C664 • Oscillator Freq: 11.0592 • Laadimine: • Hex file: kood.ihx ID218 Riistvaralähedane programmeerimine
Esimene programm – LED I #include <8051.h> xdata at 0xA000 int LED; xdata at 0x9FFF int LED1; void main (void) { int i; LED = 0xFF; LED1 = 0xEE; while (1) { i=0; for ( i=0; 256; i++) { LED = i; LED1 = i; } } } ID218 Riistvaralähedane programmeerimine
Esimene programm - LED II • Salvestada faili – led.c • Kompilleerida sdcc led.c • Laadida led.ihx • Lülitada toide välja ja sisse. ID218 Riistvaralähedane programmeerimine
C <> Assembler I LED = 0xFF; mov dptr,#_LED mov a,#0xFF movx @dptr,a inc dptr clr a movx @dptr,a ID218 Riistvaralähedane programmeerimine
C <> Assembler II mov r2,#0x00 mov r3,#0x00 for ( i=0; 256; i++) ID218 Riistvaralähedane programmeerimine
C <> Assembler III LED = i; mov dptr,#_LED mov a,r2 movx @dptr,a inc dptr mov a,r3 movx @dptr,a ID218 Riistvaralähedane programmeerimine
Ülesanne Paneme LED jooksma: A000 LED = 1; . . . . . LED = LEDx2; 0000000X 000000X0 00000X00 0000X000 000X0000 00X00000 0X000000 X0000000 ID218 Riistvaralähedane programmeerimine