sprawozdanie T3

WOJSKOWA AKADEMIA TECHNICZNA

SYSTEMY WBUDOWANE

SPRAWOZDANIE

Z

ZADANIA LABORATORYJNEGO T3

Warsztat projektanta systemów mikrokomputerowych – środowiska uruchomieniowe

Grupa szkoleniowa: I7X6S1

Sprawozdanie wykonali : Michał Małek

Piotr Rusinowski

Andrzej Sobolewski

Prowadzący ćwiczenie: mgr inż. Waldemar Szylberg

  1. Specyfikacja szczegółowych zadań określonych przez wykładowcę

    1. Na podstawie dokumentacji technicznej

      1. Określ wyposażenie techniczne zestawu laboratoryjnego

      2. Dokonaj specyfikacji oprogramowania

  1. Stanowiska do wytwarzania oprogramowania

  1. Stanowiska do wytwarzania oprogramowania

* *

*

* *

  1. Program wbudować i umiejscowić na płycie EV386EX. Następnie zweryfikować poprawność realizacji postawionych wymagań i wyniki przedstawić prowadzącemu ćwiczenie i zamieścić je w sprawozdaniu z ćwiczeń laboratoryjnych

  2. Informacje dodatkowe

  1. Do prezentacji wyników wykorzystać hyperterminal

  2. Wyświetlanie zrealizować przy wykorzystaniu poleceń (sekwencji esc) zgodnych ze standardem ASCII

  3. Transmisje poleceń wyświetlania terminala ANSI oprzeć na połączeniu przy pomocy interfejsu RS323C i funkcji transmisji danych udostępnianych w przykładzie HELLO

  4. Wykorzystać przykład HELLO i modyfikując go zrealizować postawione wymagania

    1. Osadź napisany program w pamięci flash komputera docelowego

    2. Dokonaj odbioru systemu wbudowanego przeprowadzając wyspecyfikowane testy akceptacji

  1. Specyfikacja elementów stanowiska laboratoryjnego

    1. Elementy sprzętowe

      1. Płyta INTEL EV386EX

      2. Komputer klasy IBM PC

    2. Oprogramowanie

      1. Concurrent Sciences Soft-Scope

      2. Dev-C++

      3. Borland Turbo Assembler

      4. Borland C/C++

    3. Dokumentacja sekwencji esc – Internet

  2. Opis konfiguracji stanowiska laboratoryjnego

    1. Płyta Intel EV386EX (podłączona do zasilacza) jest połączona z komputerem klasy IBM PC za pomocą kabla szeregowego (RS232C). Kabel jest podłączony do portu COM1 na komputerze oraz portu COM1 na płycie EV386EX.

    2. Oprogramowanie komputera hosta zostało wcześniej zainstalowane i prawidłowo skonfigurowane

  1. Specyfikacja testów akceptacyjnych dla wytwarzanego systemu wbudowanego

    1. Testy semantycznej poprawności wytwarzanego oprogramowania

Sprawdzenie poprawności napisanego programu jest możliwa w procesie kompilacji.

Aby uruchomić skrypt za pomocą którego zbudowany zostanie nasz program wpisujemy w linii poleceń ‘build.bat’. Jeśli zostaną utworzone pliki ‘hello.exe’ oraz ‘hello.hex’ oznacza to że nasz program został poprawnie zbudowany (jest poprawny pod względem semantycznym i syntaktycznym) i teraz należały skopiować plik ‘hello.hex’ do katalogu z którego uruchamiać będziemy program ‘flashldr.exe’. Jeśli powyższe dwa pliki nie zostały utworzone należy przejrzeć wynik wykonania skryptu bat w oknie konsoli sprawdzając w którym pliku powstały błędy podczas kompilacji po czym należy te błędy poprawić oraz powtórzyć ww. czynności.

  1. Test poprawności załadowania oprogramowania

Po pozytywnym zakończeniu drugiego testu przystępujemy bo wbudowania utworzonego oprogramowania. Należy zrestartować płytę za pomocą przycisku RESET znajdującego się na jej powierzchni. Za pomocą programu Concurrent Sciences Soft-Scope należy załadować program do pamięci (plik ‘hello.hex’) płyty. Jeśli program załadował się poprawnie nie otrzymamy żadnych komunikatów od debuggera.

  1. Test poprawności działania wbudowanego oprogramowania

Należy włączyć zasilanie na płycie EV386EX, a na komputerze-hoście uruchomić oprogramowanie terminala – program HyperTerminal. Po uruchomieniu programu należy wybrać port COM1 oraz ustawić prędkość transmisji na 38400 b/sek i wcisnąć przycisk ‘połącz’. Jeśli udało się nawiązać połączenie w lewym dolnym rogu powinien widnieć napis ‘Connected’ a w oknie terminala powinien być widoczny wynik działania wbudowanego programu. Jeśli nie mamy żadnego obrazu należy sprawdzić czy mamy połączenie, jeśli nie należy sprawdzić czy płyta EV386EX została włączona oraz czy wszystkie niezbędne kable są podłączone. Jeśli mamy połączenie a nadal nie widać żadnych wyników najprawdopodobniej jest błąd w działaniu naszego programu. W takim przypadku należy błąd usunąć i wrócić do testu nr 1.

  1. Specyfikacje elementów stanowiska do testowania uruchamianego systemu wbudowanego

W celu przeprowadzenia testu uruchamianego oprogramowania wbudowanego na płytę Intel EV386EX potrzebujemy dodatkowego komputera zgodnego ze standardem IBM-PC wyposażonego w interfejs RS232C, dzięki któremu będziemy moli nawiązać połączenie, oprogramowanie terminalowe (u nas HyperTerminal) aby móc zaobserwować wynik działania wbudowanego oprogramowania.

  1. Opis realizacji zadań postawionych przez wykładowcę

    1. Wytworzenie oprogramowania

Zmodyfikowany przez nas fragment kodu programu ‘hello.c’ :

while(1)

{

while(DelayFlag); /* Wait until DelayFlag is cleared */

sprintf(doWyswietlenia4,"\x1B[32m\x1B[1;1Hx : ");

SerialWriteStr(SIO_PORT,doWyswietlenia4);

SerialReadStr(SIO_PORT, X, 3);

x=atoi(X);

sprintf(doWyswietlenia2,"\x1B[32m\x1B[1;4H%d",x);

SerialWriteStr(SIO_PORT,doWyswietlenia2);

sprintf(doWyswietlenia5,"\x1B[32m\x1B[3;1Hy : ");

SerialWriteStr(SIO_PORT,doWyswietlenia5);

SerialReadStr(SIO_PORT, Y, 3);

y=atoi(Y);

sprintf(doWyswietlenia3,"\x1B[32m\x1B[3;4H%d",y);

SerialWriteStr(SIO_PORT,doWyswietlenia3);

sprintf(doWyswietlenia,"\x1B[2J\x1B[32m\x1B[%d;%dH* *\x1B[%d;%dH*\x1B[%d;%dH* *",y,x,y+1,x+1,y+2,x);

SerialWriteStr(SIO_PORT,doWyswietlenia);

DelayFlag = 1;

}

Opis użytych sekwencji escpae :

Proces kompilacji został zautomatyzowany za pomocą dostarczonego pliku wsadowego ‘build.bat’, który wykorzystuje następujące narzędzia w procesie kompilacji:

Uruchomienie pliku wsadowego build.bat spowodowało skompilowanie plików hello.c, icu.c, rsetintr.c, timer.c, serial.c oraz rstartup.asm do postaci plików *.obj. Następnie za pomocą programu tlink.exe (linker) utworzony został plik hello.exe, jak również plik hello.map. Ostatnim krokiem było wykonanie programu csiloc.exe, który plik hello.map użył do wygenerowania pliku hello.hex (plik do wbudowania).

  1. Przebieg procesu wbudowywania oprogramowania

Procedura wbudowywania oprogramowania polegała na zrestartowanie płyty za pomocą przycisku RESET, a następnie wgraniu do jej pamięci naszego programu (za pomocą debuggera Concurrent Sciences Soft-Scope).

  1. Sprawdzanie poprawności działania systemu wbudowanego

Weryfikację funkcjonalności działania systemu wbudowanego dokonaliśmy za pomocą programu HyperTerminal. Przy jego pomocy nawiązano połączenie z płytą. Program prosił o podanie współrzędnych x oraz y, a następnie wyświetlał zadany tekst w podanym miejscu.

  1. Raport z przeprowadzonych testów akceptacyjnych

    1. Testy semantycznej poprawności wytwarzanego oprogramowania

Po uruchomieniu skryptu ‘build.bat’ cały proces kompilacji przeszedł bez błędów, utworzone zostały pliki ‘hello.exe’ oraz ‘hello.hex’. świadczy to o poprawności konfiguracji zainstalowanego oprogramowania oraz o poprawności napisanego oprogramowania pod względem semantycznym.

Zakończony pozytywnie.

  1. Test poprawności załadowania oprogramowania

Po wgraniu wytworzonego systemu wbudowanego na płytę debugger nie zgłosił żadnych błędów.

Zakończony pozytywnie.

  1. Test poprawności działania wbudowanego oprogramowania

Po włączeniu urządzenia oraz na komputerze hoście ustawieniu odpowiednich wartości dla połączenia w programie HyperTerminal system wbudowany poprawnie odczytywał współrzędne oraz w zadanym miejscu wyświetlał znak „gwiazdki”.

Zakończony pozytywnie.

  1. Wnioski z przeprowadzonego ćwiczenia

Celem ćwiczenia było przygotowanie systemu wbudowanego działającego zgodnie z wytycznymi z punktu 1.5 sprawozdania. Zostało ono w pełni zrealizowane. Dużym ułatwieniem były gotowe skryptu bat ułatwiające przygotowanie oprogramowania do wbudowania oraz przykładowy program hello, który zmodyfikowaliśmy zgodnie z postawionymi wymaganiami. Ćwiczenie umożliwiło nam zapoznanie się z procesem wbudowywania oprogramowania oraz z procesem jego tworzenia.

  1. Wydruk kodu źródłowego przygotowanego oprogramowania

/* Copyright (C) Intel Corporation 1994

All Rights Reserved.

The Software is provided "AS IS."

LIMITATION OF LIABILITY: NEITHER INTEL NOR ITS VENDORS OR AGENTS

SHALL BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF USE, LOSS OF DATA,

INTERRUPTION OF BUSINESS, NOR FOR INDIRECT, SPECIAL, INCIDENTAL OR

CONSEQUENTIAL DAMAGES OF ANY KIND WHETHER UNDER THIS AGREEMENT OR

OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

*/

#include "80386EX.h"

#include "EV386EX.h"

#include <string.h>

#include <conio.h>

#include <DOS.h>

#include <stdlib.h>

#include <stdio.h>

extern char far HelloString[];

void interrupt far TimerISR(void);

#define BAUD_CLKIN 1843200L /* Clock rate of COMCLK, ie. External clocking */

/* _DEBUG_ must be defined on the command Line.

The debugger uses SIO_0 for communications to host. So while under the

debugger we must avoid using SIO_0

*/

#if _DEBUG_ == 0

#define SIO_PORT SIO_1

#else

#define SIO_PORT SIO_0

#endif

#define TIMER TMR_1

char ABORT, _REALCVTVECTOR;

int DataSeg; /* Created for Assembly language Data Segment register initialization */

volatile int DelayFlag; /* Declare volatile so compiler does not optimize out accesses */

void main(void)

{

char doWyswietlenia[100],doWyswietlenia2[100],doWyswietlenia3[100],doWyswietlenia4[100],doWyswietlenia5[100],X[3],Y[3];

int x=1,y=1;

/********************************************

***** Initialize Peripherals *****

*********************************************/

#if _DEBUG_ == 0 /* Debugger uses & Initializes ICU Master*/

/* Initialize Interrupt Control Unit */

InitICU(ICU_TRIGGER_EDGE, /* Signal interrupt on rising edge, Master */

0x20, /* Vector base number of Master */

MCAS_IR2, /* Which IRQ is for cascade to Slave, Internal Slave connects to IR2 */

ICU_TRIGGER_EDGE, /* Signal interrupt on rising edge, Slave */

0x30, /* Vector base number of Slave */

0,0); /* Pins to connect externally, None for master or slave */

#else

InitICUSlave(ICU_TRIGGER_EDGE, 0x30, 0);

#endif

/* Place Timer interrupt service routine into interrupt vector table */

SetIRQVector( TimerISR, /* Address of Interrupt service routine */

TMR1_IRQ, /* IRQ for the Interrupt service routine, Not the vector number */

INTERRUPT_ISR); /* Type of Interrupt, INTERRUPT_TYPE Means IF flag is cleared, Real-mode parameter ignored */

/* Intialize Timer */

_SetEXRegWord(CLKPRS, 0x1f3); /* Initialize Clock prescale */

InitTimer(TIMER, /* Which Timer */

TMR_RATEGEN | TMR_CLK_BIN, /* Mode, Rate Generator (continuous), Binary clocking mode */

TMR_CLK_INTRN, /* Clocking Source - Internal */

TMR_OUT_ENABLE, /* Disable Clock output to pins */

0xFFFF, /* Initial Clock Counter value */

TMR_ENABLE); /* Enable Timer */

Disable8259Interrupt(IR1+IR5+IR6+IR7, IR0+IR1+IR3+IR4+IR5+IR6+IR7);

Enable8259Interrupt(IR2,IR2); /* Enable slave interrupt to master(IR2), Enable slave IR2 */

_enable(); /* Enable Interrupts */

/* Intialize Serial Port */

InitSIO(SIO_PORT, /* Which Serial Port */

SIO_8N1, /* Mode, 8-data, no parity, 1-stop */

SIO_MCR_RTS+SIO_MCR_DTR, /* Modem line controls */

9600, /* Baud Rate */

BAUD_CLKIN); /* Baud Clocking Rate */

DelayFlag = 0; /* Don't delay first string */

while(1)

{

while(DelayFlag); /* Wait until DelayFlag is cleared */

sprintf(doWyswietlenia4,"\x1B[32m\x1B[1;1Hx : ");

SerialWriteStr(SIO_PORT,doWyswietlenia4);

SerialReadStr(SIO_PORT, X, 3);

x=atoi(X);

sprintf(doWyswietlenia2,"\x1B[32m\x1B[1;4H%d",x);

SerialWriteStr(SIO_PORT,doWyswietlenia2);

sprintf(doWyswietlenia5,"\x1B[32m\x1B[3;1Hy : ");

SerialWriteStr(SIO_PORT,doWyswietlenia5);

SerialReadStr(SIO_PORT, Y, 3);

y=atoi(Y);

sprintf(doWyswietlenia3,"\x1B[32m\x1B[3;4H%d",y);

SerialWriteStr(SIO_PORT,doWyswietlenia3);

sprintf(doWyswietlenia,"\x1B[2J\x1B[32m\x1B[%d;%dH* *\x1B[%d;%dH*\x1B[%d;%dH* *",y,x,y+1,x+1,y+2,x);

SerialWriteStr(SIO_PORT,doWyswietlenia);

DelayFlag = 1;

}

}

void interrupt far TimerISR(void)

{

DelayFlag = 0;

NonSpecificEOI();

}


Wyszukiwarka

Podobne podstrony:
2 definicje i sprawozdawczośćid 19489 ppt
PROCES PLANOWANIA BADANIA SPRAWOZDAN FINANSOWYC H
W 11 Sprawozdania
Wymogi, cechy i zadania sprawozdawczośći finansowej
T3 KONSUMENCI I ICH ZACHOWANIE pokaz
Analiza sprawozdan finansowych w BGZ SA
t3 Mix PRODUKT
ryzyko zawodowe t3
W3 Sprawozdawczosc
1 Sprawozdanie techniczne
Karta sprawozdania cw 10
eksploracja lab03, Lista sprawozdaniowych bazy danych
2 sprawozdanie szczawianyid 208 Nieznany (2)
Fragmenty przykładowych sprawozdań
Mazowieckie Studia Humanistyczne r1997 t3 n1 s290 292
Lab 6 PMI Hartownosc Sprawozdan Nieznany
Mikrokontrolery Grodzki Sprawoz Nieznany

więcej podobnych podstron