1 / 16

SDCC I STRC52

SDCC I STRC52. Kompilator SDCC i Pakiet STRC52 Mgr inż. Aleksander Pruszkowski. 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:

willow
Download Presentation

SDCC I STRC52

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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) • short 16 bity (2 bajty) • int 16 bity (2 bajty) • long 32 bit y (4 bajty) • float 32 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++){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. SDCCWeryfikacja poprawności instalacji • 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++); } } Pole deklaracji peryferii sprzętowych Sprawdzenie stanu klawiszy Generacja dźwięku Pętla opóźniająca

  9. SDCCWeryfikacja 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. SDCCWeryfikacja poprawności instalacji • Linkowanie (polecenie wydane w jednej linii) • sdcc --model-small --code-loc 0x4000 • --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 • 19200 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!

More Related