Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

SDCC I STRC52 Kompilator SDCC i Pakiet STRC52 Mgr inż. Aleksander Pruszkowski.

Podobne prezentacje


Prezentacja na temat: "SDCC I STRC52 Kompilator SDCC i Pakiet STRC52 Mgr inż. Aleksander Pruszkowski."— Zapis prezentacji:

1 SDCC I STRC52 Kompilator SDCC i Pakiet STRC52 Mgr inż. Aleksander Pruszkowski

2 SDCC Standardowo praca w linii poleceń Możliwość integracji z IDE SDCC dystybuowane jako open source Do pobrania z: sdcc.sourceforge.net Możliwość pracy na wielu platformach: Win32 (Windows 2K, Windows XP, 95, 98,...) Linux MacOS Istnieje możliwość rekompilacji narzędzi

3 SDCC Dodatkowe narzędzia wspomagające pracę, z poza pakietu: copyclip Kopiowanie pliku do schowka (pomocne podczas uruchamiania kodu w STRC52) make Automatyzacja tworzenia wynikowych plików na podstawie najnowszych wersji plików źródłowych rm Usuwanie niepotrzebnych plików, wyników poprzedniej kompilacji

4 SDCC Podstawowe opcje kompilatora: -v Sprawdzenie wersji kompilatora --model-small Precyzacja typu tworzonego kodu (small, large) --code-loc Specyfikacja miejsca w którym będzie znajdował się kod wynikowy --xram-loc Specyfikacja gdzie znajdzie się obszar używany przez zmienne typu xdata --data-loc Specyfikacja gdzie będą umieszczone zmienne w wewnętrznej pamięci mikrokontrolera

5 SDCC Typy podstawowe akceptowane przez pakiet: char 8 bity (1 bajt) short16 bity (2 bajty) int16 bity (2 bajty) long32 bity (4 bajty) float32 bity (4 bajty, kodowane według IEEE)

6 SDCC Zagadnienia optymalności kodu Temat dokładnie opisany na: sdcc.sourceforge.net/doc/sdccman.html/node139.html Unikanie dużych struktur danych Priorytety podstawowych typów zmiennych: char - int/short - long Złe i dobre dopasowanie typów: long i;char i;for(i=0;i<10;i++){......}

7 SDCC Niektóre ograniczenia mikrokontrolera C51: Zmienne: bez precyzowania w modelu small - dostępne w sumie na zmienne i stos procesora to 128B reszta dostępna w modelu large lub po specyfikacji jako xdata, np.: xdata unsigned char tab[1000] ; Stałe: Domyślnie kompilator umieszcza stałe w pamięci przeznaczonej na zmienne. Osiągnięcie zamierzonego rezultatu (wykorzsytanie pamięci kodu) przez deklaracje: code unsigned char const_tab[1000];

8 SDCC SDCC Weryfikacja poprawności instalacji Pole deklaracji peryferii sprzętowych Pętla opóźniająca Sprawdzenie stanu klawiszy Pierwszy plik: main.c xdata at 0x8000 unsigned char U12; sbit at 0xB4 T1; #define BUZZER T1 void main (void){ unsigned char i,r=0; for(;;){ if((U12 & 0x0f)!=0x0f){ if((r & 0x01)==0) BUZZER=1; else BUZZER=0; r++; } for(i=0; i<70; i++); } Generacja dźwięku

9 SDCC SDCC Weryfikacja poprawności instalacji Kompilacja (tylko z linii poleceń, w miejscu gdzie znajduje się main.c) sdcc -c main.c Wynik kompilacji main.asm- wynik kompilacji w asemblerze C51, main.lst- wynik kompilacji i przypisania kodu binarnego main.sym- tablica symboli powstała podczas kompilacji main.rel- plik obiektowy – wynik właściwej kompilacji

10 SDCC SDCC Weryfikacja poprawności instalacji Linkowanie (polecenie wydane w jednej linii) sdcc --model-small --code-loc 0x xram-loc 0x0000 main.rel Wynik linkowania main.mem- tablica wielkości pamięci użytej main.rst- wynik linkowania i przypisania kodu binarnego main.map- mapa symboli i obiektów powstałych w wyniku kompilacji i linkowania main.lnk- plik pomocniczy (opcje kompilacji) main.ihx- plik wynikowy w formacie intel-HEX do załadowania w STRC51

11 STRC51 Przyłączenie do komputera Wybór wolnego złącza RS232 (nie zajmowane przez inne działające aplikacje w systemie) Przyłączenie zasilania Zawsze za pomocą zasilacza klasy B Podłączony do tej samej fazy 220V, co komputer na którym będzie dalsza praca Reset inicjacja urządzenia – tylko uC 80C51 Elementy sterujące LED, LCD nie mogą być ta metodą inicjowane/resetowane

12 STRC51 Przygotowanie programu komunikacyjnego TeraTermPro (Setup->Serial Port) Wybór portu COM1 Wybór szybkości bps Parametry transmisji 8N1 Opóźnienia transmisji 0ms/znak, 30ms/linię

13 STRC51 Ładowanie pliku HEX Uruchomienie z menu (w STRC51) opcji Q – ładowanie z automatycznym uruchomieniem P – ładowanie bez uruchomienia wymaga ręcznego uruchomienia kodu przez podanie: J 4000

14 STRC51 Ładowanie pliku HEX cd. (wyłącznie z linii pocleceń): Pakowanie pliku wynikowego: packihx main.ihx > main.hex Kopiowanie zawartości pliku main.hex do schowka, metodami: copyclip main.hex Automatyzacja procesu, możliwość wywołania z poziomu pliku makefile notepad main.hex Ręczne zaznaczenie tekstu i wywołanie kopiowania tekstu – zawodne i czasochłonne (zdarzają się pomyłki)

15 STRC51 Ładowanie pliku HEX cd. Przełączenie się na TeraTermPro Wklejamy zawartość schowka – posiadający teraz plik main.hex

16 Dziękuje za uwagę i życzę miłej pracy!


Pobierz ppt "SDCC I STRC52 Kompilator SDCC i Pakiet STRC52 Mgr inż. Aleksander Pruszkowski."

Podobne prezentacje


Reklamy Google