Kompilator SDCC i Pakiet STRC52 Mgr inż. Aleksander Pruszkowski

Slides:



Advertisements
Podobne prezentacje
Systemy operacyjne.
Advertisements

20041 Projektowanie dynamicznych witryn internetowych Paweł Górczyński ASP 3.0.
Wprowadzenie do narzędzi CAT
Zmienne i Typy.
Programowanie w języku C++. Jak napisać prosty program obliczeniowy lub grę komputerową? Zbigniew Nagórny Pracownia Komputerowa Wyższa Szkoła Humanistyczno-Przyrodnicza.
Systemy rozproszone W. Bartkiewicz
Prezentacja o MS-DOS’ie
Prezentacja na temat Dos`a. Wykonał: Tomasz Kucharczyk
System operacyjny MS-DOS
Tworzenie i obsługa programów – przykład 3 uwagi cd. Wykorzystując różne klasy biblioteki języka Java należy pamiętać w jakim pakiecie się znajdują. Wszystkie.
Informatyka Stosowana
argumenty wiersza poleceń: getopt
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
R.
Biblioteki i przestrzenie nazw
Systemy operacyjne Bibliografia:
Podstawowe polecenia systemu DOS
PODSTAWY JĘZYKA PHP 1. czym jest 2. składnia 3. wersje 4. bazy danych
Ogólne jednostki programowe 1
Podstawy programowania PP – LAB6 Wojciech Pieprzyca.
Zachodniopomorskie Centrum Edukacyjne Zadanie domowe.
Wprowadzenie do programowania w języku Turbo Pascal
Systemy operacyjne. Co to jest system operacyjny? OS (ang. Operating System) to program, który kontroluje pracę uruchomionych przez użytkownika aplikacji,
Narzędzia internetowe Paweł Rajba ttp://pawel.ii.uni.wroc.pl/
1/18 LOGO Profil zespołu. 2/18 O nas Produkcja autorskich rozwiązań informatycznych dla małych i średnich firm w zakresie systemów: Baz danych Aplikacji.
Arkusz kalkulacyjny Excel
Budowa, przeglądanie i modyfikacja
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
Podstawy programowania II
Instytut Tele- i Radiotechniczny WARSZAWA
KONSTRUKCJA KOMPILATORÓW WYKŁAD WYKŁAD Robert Plebaniak Robert Plebaniak.
Opracowanie Anna Madeksza nauczyciel bibliotekarz
Podstawy programowania. Język C i C++– podstawy Temat: 1
Arkusze kalkulacyjne, część 3
Programy do tworzenia stron internetowych
Generatory dokumentacji kodu źródłowego
Programowanie strukturalne i obiektowe
Dr hab. Dariusz Piwczyński Katedra Genetyki i Podstaw Hodowli Zwierząt
Programowanie obiektowe – zastosowanie języka Java SE
5 Etapów Pracy Kompilatora
Jerzy Kotowski Politechnika Wrocławska
Robimy własne notatki - Notatnik
Temat 2: Edytory HTML.
Podstawy informatyki 2013/2014
Platforma analizy wizualnej - VisNow Szkolenie Platforma analizy wizualnej - VisNow Szkolenie 15 maja 2013, Sesja sprawozdawcza KDM Krzysztof S. Nowiński.
Wykład nr 7 Programowanie mikrokontrolerów Piotr Bilski
Systemy operacyjne (wiosna 2014)
C++.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Biblioteka DLL w oparciu o źródła w języku C
Temat 2: Instalacja Apache, PHP i bazy danych MySQL.
Modele pamięci Tiny - mikroskopijny do 64 K zmienne inicjalizowane kod programu zmienne nie inicjalizowane HEAP (sterta) obszar wolny STACK (stos) Model.
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
1 dynamiczny przydział pamięci malloc() free() realloc() calloc() memset() memcpy( ) mempcpy( ) memmove() (wskaźniki!! )
Efektywne tworzenie oprogramowania 2008/2009. Forty Years of Software Engineering Konferencja w Garmisch – uczestników Prof. Bauer TUM przewodniczący.
Platforma .Net.
Operacje na plikach i folderach
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
obsługa wyświetlacza graficznego
C++ WYKŁAD 12 ( ) Własne biblioteki. S PIS TREŚCI Kompilacja i łączenie Moduły Biblioteki Biblioteka statyczna Biblioteka współdzielona Biblioteka.
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka Podstawy.
Microsoft® Office Word
Metody posługiwania się środkami i narzędziami TI.
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C
Optymalizacja programów Open-Source
System operacyjny cz.2 i ostatnia
Programowanie obiektowe – zastosowanie języka Java SE
Założenia projektowe Javy
Język C++ Typy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Zapis prezentacji:

Kompilator SDCC i Pakiet STRC52 Mgr inż. Aleksander Pruszkowski 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: Win32 (Windows 2K, Windows XP, 95, 98,...) Linux MacOS Istnieje możliwość rekompilacji narzędzi

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

SDCC Podstawowe opcje kompilatora: -v --model-small --code-loc 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

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)

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++){ ... ... } }

SDCC Niektóre ograniczenia mikrokontrolera C51: Zmienne: Stałe: 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];

SDCC Weryfikacja 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

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

SDCC Weryfikacja 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

STRC51 Przyłączenie do komputera Przyłączenie zasilania Reset 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

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ę

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

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)

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

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