Metody i algorytmy pomiarów przedmiotów metodami optycznymi.



Podobne dokumenty
Instalacja programu na systemie vista/win7/win8/win10. Instrukcja dotyczy instalacji wszystkich programów ( na przykładzie Helios ).

Programowanie w języku C++ Grażyna Koba

Programowanie w C. dr inż. Stanisław Wszelak

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051

Wprowadzenie do biblioteki klas C++

Instalacja programu Warsztat 3 w sieci

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Instrukcja instalacji systemu. CardioScan 10, 11 i 12

Instrukcja instalacji aplikacji Comarch Smart Card ToolBox

Java jako język programowania

Programator procesorów rodziny AVR AVR-T910

IBM SPSS Statistics Version 22. Windows - Instrukcja instalacji (licencja wielokrotna)

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja autoryzowanego użytkownika)

Instalacja Czytnika Kart GemPc Twin 1.4 dla przeglądarek 32 bitowych dla systemów Windows XP/Vista/2000/7/8 32 bity i 64 bity Wersja 1.

Programowanie w języku Python. Grażyna Koba

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Technika mikroprocesorowa. Struktura programu użytkownika w systemie mikroprocesorowym

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja wielokrotna)

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Instrukcja instalacji PS Bonus Pack do IBM SPSS Statistics 20 w systemie operacyjnym Windows

1.1 Co to jest USBasp? Parametry techniczne Obsługiwane procesory Zawartość zestawu... 4

Instrukcja Instalacji. Instalacja lokalna

WPROWADZENIE DO INFORMATYKI

Instrukcja konfiguracji programu Fakt z modułem lanfakt

Programowanie proceduralne w języku C++ Podstawy

Acronis Universal Restore

Kalipso wywiady środowiskowe

jest dostępne na różne systemy operacyjne. Niniejsza instrukcja opisuje podstawowe operacje i opcje niezbędne do rozpoczęcia pracy w tym programie.

BIOWEB INSTRUKCJA URUCHOMIENIA W IDE ECLIPSE RATIONAL SOFTWARE ARCHITECT

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 7. Karol Tarnowski A-1 p.

Program dla praktyki lekarskiej. Instalacja programu dreryk

INFO-R. Instalacja programu na systemie Windows vista/win 7/win 8/win 10

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Spis treści. Strona 1 z 20

Instalacja i opis podstawowych funkcji programu Dev-C++

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

IBM SPSS Statistics Wersja 22. Windows - Instrukcja instalacji (licencja autoryzowanego użytkownika)

Programowanie niskopoziomowe

Biuletyn techniczny. CDN OPT!MA 12.0 Drukarki fiskalne w usługach terminalowych. Copyright 2007 COMARCH SA

Instrukcja instalacji programu. system Windows vista/win 7/win 8/win 10 32/64bit

Instrukcja konfiguracji programu Fakt z modułem lanfakt

Procedura aktualizacji silnika baz danych Firebird do wersji 2.5

AUTOMATYKA PRZEMYSŁOWA

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Instrukcja pobrania i instalacji wersji testowej Invest for Excel

1 Podstawy c++ w pigułce.

Pobieranie edytora CodeLite

Instrukcja instalacji systemu. CardioScan 10, 11 i 12

IBM SPSS Statistics - Essentials for R: Instrukcje instalacji dla Windows

Problemy techniczne. Jak uruchomić program Optivum dla wybranej licencji w przypadku, gdy jednostka posiada dwie licencje na używanie programu?

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.

Instrukcja instalacji aplikacji Comarch Smart Card ToolBox

Kopiowanie i instalowanie pliku w systemie Windows CE

IBM SPSS Statistics Wersja 24. Windows Instrukcja instalacji (licencja wielokrotna) IBM

Instalacja Czytnika Kart w systemie Windows 7

Statistics dla systemu Mac OS. Instrukcje dotyczące instalacji (licencja sieciowa)

IBM SPSS Statistics - Essentials for Python: Instrukcje instalacji dla Windows

Instalacja i konfiguracja SAS PC Files Server

Instrukcja użytkownika. programu NFZMonit

WPROWADZENIE DO JĘZYKA JAVA

SYSTEMY CZASU RZECZYWISTEGO (SCR)

Programator AVR USBasp

IBM SPSS Statistics dla systemu Linux Instrukcje instalacji (licencja sieciowa)

Ćwiczenie 1. Przygotowanie środowiska JAVA

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Instrukcja postępowania w procesie aktualizacji systemu UPLOOK / STATLOOK z wersji 3.0 do wersji 3.2

Programowanie obiektowe

PS QUAESTIO PRO /// instrukcja instalacji komponentu klienckiego

PLUTO Sterownik bezpieczeństwa Skrócona Instrukcja obsługi oprogramowania. PlutoProgrammingManualPL_v7A.pdf 1

Podstawy Programowania 2

IBM SPSS Statistics - Essentials for R: Instrukcje instalacji dla Linux

Instrukcja podłączenia bramki IP 1R+L oraz IP 2R+L w trybie serwisowym za pomocą usługi telnet.

SKRÓCONA INSTRUKCJA INSTALACJI MODEMU I KONFIGURACJA POŁĄCZENIA Z INTERNETEM NA WINDOWS 8 DLA AnyDATA ADU-520L

Instrukcja postępowania przy najczęściej występujących problemach technicznych

Instrukcja aktualizacji oprogramowania. Wersja dokumentu: 01i00 Aktualizacja:

Wprowadzenie do środowiska Qt Creator

Stawiamy pierwsze kroki

BIT S.A. BIT Rejestry. Instrukcja instalacji. Wersja 3

Biuletyn techniczny. Drukarki fiskalne w usługach terminalowych. Comarch OPT!MA Copyright 2007 COMARCH SA

AKTYWNY SAMORZĄD. Instrukcja instalacji, aktualizacji i konfiguracji.

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Nagrywamy podcasty program Audacity

Automatyczna instalacja oprogramowania.

Instrukcja instalacji programu SPSS Statistics 21

Instrukcja instalacji aplikacji Comarch Smart Card ToolBox dla urządzeń kryptograficznych.

INSTRUKCJA INSTALACJI SYSTEMU

Instrukcja obsługi. PROGRAMATOR dualavr. redflu Tarnów

Czym są właściwości. Poprawne projektowanie klas

Ćwiczenie nr 6. Programowanie mieszane

Ministerstwo Finansów Departament Informatyzacji Usług Publicznych

Metody Kompilacji Wykład 1 Wstęp

Dariusz Kozak ZESTAW URUCHOMIENIOWY MIKROKOMPUTERÓW JEDNOUKŁADOWYCH MCS-51 ZUX51. Loader LX51 INSTRUKCJA OBSŁUGI DK Wszystkie prawa zastrzeżone

INSTALACJA SERWERA LOKALNEGO TYPU WAMP NA PRZYKŁADZIE PAKIETU KRASNAL SERV 2.7

Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows

Licencja SEE Electrical zabezpieczona kluczem lokalnym

Transkrypt:

Rozdział 4. Oprogramowanie. Niewątpliwie podstawą poprawnego działania całego układu jest poprawnie napisany program sterujący pracą urządzeń i analizujący wyniki. Oprogramowanie sterujące projektowanym systemem napisałem w języku C. Bardzo ważną decyzją, jaką podjąłem był wybór kompilatora. Kompilator w ogólnym pojęciu jest programem, który automatycznie tłumaczy kod napisany w jednym języku na równoważny kod w innym języku. Zdecydowałem się na użycie kompilatora SDCC 1. Program ten tłumaczy kod źródłowy napisany w języku C na język zrozumiały przez mikroprocesor, tzw. język maszynowy. Proces tłumaczenia nazywany jest potocznie kompilacją. 4.1 SDCC. Small Device C Compiler jest darmowym kompilatorem tłumaczącym kod źródłowy napisany w języku ANSI-C. Został zaprojektowany przez firmę Sandeep Dutta, głównie dla mikrokontrolerów 8-bitowych. Wersja obecna (tj. 2.6.0) przystosowana jest głównie do mikroprocesorów serii Intel MCS51 (8031, 8032, 8051, 8052 itp.), Dallas DCS80C390, Freescale (Motorola) HC08 i Zilog Z80. Kompilator może być również wykorzystany do innych, opartych na strukturze Microchip PIC, Atmel AVR. Firma GPL jest oficjalnym dystrybutorem kodu źródłowego tego kompilatora. Działanie SDCC opiera się o asemblera ASXXXX oraz ASLINK. Oznacza to, że kod tłumaczony jest najpierw na język asemblera a następnie na język maszynowy. Jest to więc bardzo uniwersalny i otwarty język programowania, odpowiedni do wykorzystania do różnych mikrokontrolerów i podstawowych użytecznych urządzeń typu hardware. Jedną z najważniejszych zalet jest niewątpliwie fakt, że jest to całkowicie darmowy i otwarty kompilator. Z Internetu możemy nie tylko pobrać sam kompilator ale i jego kod źródłowy. Dostępne są różne wersje programu działające na większości systemów operacyjnych, 1 SDCC - Small Device C Compiler Strona 1

wliczając nawet Linux 64bit. Korporacja GNU nie bierze jednak odpowiedzialności za poprawne działanie programu. Używana przeze mnie wersja 2.6.0 jest w pełni kompatybilna z wersjami wcześniejszymi. Poprawianie, ulepszanie i usuwanie wszelkich usterek w programie możliwe jest dzięki użytkownikom, którzy informują dystrybutora o odkrytych przez siebie błędach lub modyfikacjach. 4.1.1 Instalacja SDCC. Do instalacji kompilatora potrzebujemy sprawnego komputera z systemem operacyjnym oraz odpowiednią wersję kompilatora SDCC, którą możemy pobrać ze strony internetowej podanej w literaturze. Podczas tego projektu korzystałem z wersji SDCC 2.6.0 pracującej na systemie operacyjnym Windows XP, tak więc ograniczę się do informacji, które zostały zebrane na podstawie własnych doświadczeń. Do instalacji pełnego pakietu SDCC wymagane jest 21.4MB wolnej przestrzeni dyskowej. Istnieją dwa sposoby instalacji programu SDCC. Pierwszy sposób polega na wykorzystaniu pliku *.exe. Nazwa pliku instalacyjnego ma postać sdcc-yyyymmdd-xxxx-setup.exe, dzięki czemu łatwo odczytać wersję i datę wydania programu. Instalacja odbywa się w standardowy sposób, podobnie jak większość programów przystosowanych do systemu Windows. Podczas instalacji istnieje możliwość wybrania komponentów z jakich będziemy korzystać. Program domyślnie instaluje wszystkie składniki, daje to mniejsze prawdopodobieństwo, że podczas użytkowania zabraknie np. wymaganej biblioteki. Jest to jednak opcja przydatna dla bardziej zaawansowanych programistów, którzy dokładnie wiedzą jakie składniki będą im potrzebne. Istnieje również możliwość wybrania folderu oraz partycji, na której kompilator będzie zainstalowany. Należy dodać ścieżkę dostępu do kartoteki SDCC\bin do zmiennej środowiskowej PATH. Program instalacyjny samodzielnie pyta o ten proces, należy więc tylko zatwierdzić. W katalogu, w którym zainstalowany został kompilator znajduje się plik do deinstalacji programu, licencja GNU GENERAL PUBLIC LICENSE, bardzo przydatny skrót do strony domowej SDCC oraz podkatalogi z bibliotekami, dodatkami i wszelkimi przydatnymi dokumentami. Istnieje drugi sposób instalacji. Pobrany zestaw instalacyjny jest najczęściej spakowany i nie zawiera pliku *.exe, należy go rozpakować i przekopiować w dowolne miejsce łącznie z podkatalogami. Ścieżkę dostępu kartoteki SDCC\bin do zmiennej środowiskowej PATH można dodać w Panel Sterowania\System\Zaawansowane\Zmienne Środowiskowe. Aby sprawdzić czy kompilator został poprawnie zainstalowany, należy sprawdzić jego działanie. Warto zaznaczyć, że kompilator SDCC nie jest programem okienkowym, wszelkie więc komendy wywoływane są z wiersza poleceń. Po wpisaniu komendy sdcc --version kompilator się uruchomi i jako wynik wyświetli: SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/tininative/xa51/ds400/hc08 2.6.0 #4309 (Jul 28 2006) (MINGW32). Strona 2

Oczywiście zalecane jest również sprawdzić działanie świeżo zainstalowanego kompilatora na pewnych prostych przykładach. Procesy instalacji kompilatora na innych niż Windows XP systemach operacyjnych szczegółowo opisane są w artykule. 4.1.2 Proces kompilacji w programie SDCC. Kompilacja pojedynczego pliku w programie SDCC jest bardzo prosta. Należy w wierszu poleceń wejść do katalogu, w którym znajduje się plik przeznaczony do przetłumaczenia na język maszynowy. Plik ten musi mieć rozszerzenie *.c, jeśli więc program pisany był w notatniku, należy ręcznie zmienić jego rozszerzenie. Poleceniem sdcc plik.c (gdzie plik to nazwa pliku) uruchamiamy proces kompilacji. SDCC tłumaczy kod na język asemblera a następnie na kod maszynowy i zapisuje go w pliku o rozszerzeniu *.ihx. Jeśli nie występują błędy to program utworzy pliki o tej samej nazwie ale różnych rozszerzeniach (w tym również *.ihx) jako wynik poprawnej kompilacji. SDCC może przetłumaczyć jednorazowo tylko jeden plik. Dla projektów składających się więc z wielu plików musimy więc podzielić pliki źródłowe w zależności od ich treści. Niech pliki plik1.c i plik2.c zawierają jakieś funkcje a funkcja główna main() znajduje się w pliku glowny.c. Kompilacja w takim przypadku musi przebiegać zgodnie z pewnymi regułami. Poleceniem sdcc c plik1.c oraz sdcc c plik2.c kompilujemy pliki plik1.c oraz plik2.c. W wyniku procesu kompilator utworzy pliki o rozszerzeniach *.asm, *.lst, *.rel, *.sym. Plik zawierający funkcję main() konwertujemy jako ostatni poleceniem sdcc plik_glowny.c plik1.rel plik2.rel. W przypadku tego projektu, program jest złożony z kilku plików. Plik główny zawierający funkcję main() to plik modyfikacja.c. W pliku tym występują jednak odwołania do pliku iic.c. W takim wypadku należy skompilować plik iic.c poleceniem sdcc c iic.c. W wyniku poprawnego procesu kompilacji utworzone zostały pliki iic.asm, iic.lst, iic.rel, iic.rst, iic.sym. Dopiero teraz możemy przetłumaczyć główny plik źródłowy zawierający funkcję main() za pomocą polecenia sdcc modyfikacja.c iic.rel. Po bezbłędnej operacji utworzone zostały pliki modyfikacja.asm, modyfikacja.ihx, modyfikacja.lnk, modyfikacja.lst, modyfikacja.map, modyfikacja.mem, modyfikacja.rel, modyfikacja.rst, modyfikacja.sym. Plik o rozszerzeniu *.ihx to odpowiednik pliku *.hex, który przy pomocy programu FLIP możemy wgrać do mikroprocesora. W miarę rozbudowy programu kompilator może zwracać błędy, spowodowane zbyt długimi przeskokami między wywoływanymi funkcjami. Aby tego uniknąć należy użyć polecenia -- no-peep, tak więc całkowite polecenie, uruchamiające kompilator SDCC ze wszystkimi potrzebnymi mi regułami wygląda następująco: sdcc --no-peep modyfikacja.c iic.rel Strona 3

4.1.3 Assembler w SDCC. Jeden z plików utworzonych w wyniku udanego procesu kompilacji, ma rozszerzenie *.asm. Plik ten zawiera przetłumaczony kod w języku asembler. Wynika to ze sposobu działania tego kompilatora, który najpierw tłumaczy kod z języka C na język Asembler a następnie wbudowana maszyna tłumaczy go ostatecznie na język maszynowy. Kompilator SDCC oferuje również obsługę kodu asemblera wstawionego do źródła programu napisanego w języku C. Kod taki musi być jednak zaznaczony, w którym miejscu się zaczyna i kończy. Słowami kluczowymi są _asm i _endasm, pomiędzy którymi umieszczamy kod asemblera. W przypadku, kiedy jeden z plików, do którego odwołuje się funkcja main() napisany jest w kodzie asembler to w komendzie rozpoczęcia kompilacji plik ten powinien być uwzględniony. 4.1.4 Keil a SDCC. W początkowym etapie projektu korzystałem w darmowej edukacyjnej wersji programu Keil. Wszelkie więc biblioteki jakich używałem pochodziły z tego właśnie kompilatora. Niestety w miarę rozbudowy projektu napotkałem się na ograniczenia edukacyjnej wersji programu Keil. W tej sytuacji zdecydowałem się na użycie darmowego SDCC. Jednak utworzony dotychczasowo kod pod kompilator Keil nie były w pełni kompatybilny z SDCC. Niestety występują pewne różnice pomiędzy tymi środowiskami programowania. Przede wszystkim SDCC nie ma wbudowanego edytora, do tego więc celu użyłem darmowego programu PSPad. Większość programów kompilujących (w tym również Keil) jako wynik tworzą plik o rozszerzeniu *.hex. Inaczej jednak jest w przypadku SDCC, który jako wynik tworzy plik o rozszerzeniu *.ihx. Z tego też powodu w programie wgrywającym taki plik do docelowego urządzenia, bardzo często trzeba ręcznie pokazać ścieżkę dostępu do tego pliku, ponieważ ten będzie domyślnie szukał standardowego pliku *.hex. Wszelkie pliki o rozszerzeniu *.obj nie są rozpoznawane przez SDCC. 4.1.5 Deklarowanie portów w SDCC. W pierwotnej wersji funkcja IIC została napisana w asemblerze. Niestety rozszerzenie *.a51 również nie jest akceptowane przez SDCC. Funkcja iic.c została więc napisana w programie C. Ponieważ szyna IIC jest bardzo popularnym elementem elektronicznym, udało mi się znaleźć gotową już funkcję do obsługi IIC Błąd! Nie można odnaleźć źródła odwołania. Plik iic.c został jednak zmodyfikowany, ponieważ jak się okazało kompilator SDCC ma inny sposób deklarowania portów niż standardowe kompilatory. Plik reg51.h zastąpiony został utworzonym przeze mnie plikiem o nazwie at80x51.h, który zawiera te informacje treść pliku reg51.h ale zapisaną w sposób zrozumiały przez SDCC. Strona 4

Tabela 1 zawiera porównanie sposobów adresowania dla kompilatora Keil i SDCC. Przykłady wzięte zostały z plików reg51.h i at80x51.h, których kod przedstawiony jest w Błąd! Nie można odnaleźć źródła odwołania. i Błąd! Nie można odnaleźć źródła odwołania.. Tabela 1. Porównanie sposobów adresowanie dla kompilatorów Keil i SDCC. Keil SDCC Adresowanie rejestrów bajtów sfr P0 = 0x80; sfr at 0x80 P0 ; Adresowanie rejestrów bitów sbit P0_0 = P0^0;/* 0x80*/ sbit at 0x80 P0_0; Dodatkowe deklaracje #define IDL 0x01 4.2 PSPad. Ponieważ kompilator SDCC nie jest programem okienkowym, więc nie posiada własnego edytora składni. Edytor taki jest bardzo pomocny szczególnie przy pisaniu dużych i rozbudowanych programów i projektów. W Internecie możemy jednak znaleźć wiele darmowych edytorów. Do kontrolowania składni mojego projektu użyłem darmowego edytora ponad 20 języków programowania PSPad 4.5.2. Edytor służy jedynie do przejrzystości i ułatwienia pracy. Można go jednak zastąpić przez inny edytor tekstu, jak np. Notatnik w pakiecie Windows. 4.3 FLIP. FLIP (Flexible In-system Programmer) jest programem udostępnionym przez producenta wykorzystywanego przeze mnie mikroprocesora AT89C51ED2, firmę Atmel. Program jest darmowy i można go pobrać wraz z pełną dokumentacją ze strony firmy Atmel. Program umożliwia wgranie plików typu hex do mikrokontrolera podłączonego do komputera za pomocą łącza RS232. Możliwe jest wykorzystanie portu USB ale należy pobrać i zainstalować odpowiednie sterowniki udostępnione również na stronie producenta. Ponieważ kompilator SDCC jako wynik kompilacji zwraca plik o rozszerzeniu *.ihx w programie FLIP należy upewnić się, że ścieżka dostępu wskazuje właściwy plik. Strona 5

Źródła z Internetu. Strona domowa programu SDCC: http://sdcc.sourceforge.net (18 marca 2007). Strona do pobrania najnowszej wersji programu SDCC: http://sdcc.sourceforge.net/snap.php (18 marca 2007). Strona z pełnym opisem kompilatora SDCC: http://sdcc.sourceforge.net/doc/sdccman.pdf (18 marca 2007). Strona domowa programu PSPad: http://www.pspad.com (18 marca 2007). Strona do pobrania najnowszej wersji programu PSPad: http://www.pspad.com/en/download.php (18 marca 2007). Strona domowa firmy ATMEL: http://www.atmel.com (18 marca 2007). Strona firmy ATMEL z opisem mikrokontrolera AT89C51ED2: http://www.atmel.com/dyn/products/product_card.asp?part_id=3045 (18 marca 2007). Strona firmy ATMEL, z której można pobrać program FLIP: http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2767 (18 marca 2007). Dariusz Fila, fragment pracy magisterskiej pt: Metody i algorytmy pomiarów przedmiotów metodami optycznymi, Rozdział 4, 2006/2007. Strona 6