SWB - Programowanie mikrokontrolerów - wykład 10 asz 1. Programowanie mikrokontrolerów - wykład 10



Podobne dokumenty
Elementy składoweµc - przypomnienie

Architektura Systemów Komputerowych. Sterowanie programem skoki Przerwania

Mikrokontrolery AVR. Konfigurowanie mikrokontrolera ATMEGA16

Systemy wbudowane. Paweł Pełczyński

Systemy wbudowane Mikrokontrolery

PODSTAWY DZIAŁANIA UKŁADÓW CYFROWYCH

TMW HC912 PROGRAMATOR MIKROKONTROLERÓW MOTOROLA HC912

PROGRAMATOR "WinProg-1" Instrukcja obsługi

WSTĘP DO PROGRAMOWANIA

Bazy danych. Andrzej Łachwa, UJ, /15

PODSTAWOWA BUDOWA KOMPUTERA

Harmonogramowanie projektów Zarządzanie czasem

Konfiguracja programu RMS do współpracy z wagami DIBAL. Programowanie artykułów 3

architektura komputerów w. 6 Pamięć I

Tematyka i rozwiązania metodyczne kolejnych zajęć lekcyjnych wraz z ćwiczeniami.

PRZETWORNIK NAPIĘCIE - CZĘSTOTLIWOŚĆ W UKŁADZIE ILORAZOWYM

Ćwiczenie nr 2 Zbiory rozmyte logika rozmyta Rozmywanie, wnioskowanie, baza reguł, wyostrzanie

Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

DEMERO Automation Systems

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

PERSON Kraków

Programator pamięci EEPROM

Opracował: mgr inż. Marcin Wieczorek

Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład:

WYRAŻENIA REGULARNE I JĘZYK AWK

Systemy mikroprocesorowe - projekt

Matematyka:Matematyka I - ćwiczenia/granice funkcji

Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych?

Podstawy programowania

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Przykłady wybranych fragmentów prac egzaminacyjnych z komentarzami Technik ochrony fizycznej osób i mienia 515[01]

PRZEMYSŁOWY ODTWARZACZ PLIKÓW MP3 i WAV

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

STA T T A YSTYKA Korelacja

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

Architektura komputerów

Wskazówki dotyczące przygotowania danych do wydruku suplementu

STEROWNIK BIOLOGICZNYCH OCZYSZCZALNI ŚCIEKÓW

Windows Serwer 2008 R2. Moduł 3. DHCP

ZESPÓŁ LABORATORIÓW TELEMATYKI TRANSPORTU ZAKŁAD TELEKOMUNIKACJI W TRANSPORCIE

Instrumenty wirtualne z LabVIEW. Akademia Górniczo - Hutnicza im.stanisława Staszica w Krakowie, Wydział Inżynierii Materiałowej i Ceramiki

VLAN Ethernet. być konfigurowane w dowolnym systemie operacyjnym do ćwiczenia nr 6. Od ćwiczenia 7 należy pracować ć w systemie Linux.

Uchwała nr 1 Nadzwyczajnego Walnego Zgromadzenia J.W. Construction Holding S.A. z siedzibą w Ząbkach z dnia 1 kwietnia 2008 roku

Procedura instalacji wtyczki WILO-Content LAB

Wykład 2. Budowa komputera. W teorii i w praktyce

Elementy cyfrowe i układy logiczne

Implant ślimakowy wszczepiany jest w ślimak ucha wewnętrznego (przeczytaj artykuł Budowa ucha

Wykład 4 Wybrane zagadnienia programowania w C++

Rys 2. Schemat obwodów wejściowo/wyjściowych urządzeń w magistrali I2C

Wtedy wystarczy wybrać właściwego Taga z listy.

PRZERZUTNIKI Jest podstawowym elementem sekwencyjnym, który zapamiętuje jeden bit informacji Z kilku przerzutników zbudowane są bardziej skomplikowane

Oprogramowanie, sterowniki i dokumentacja

Zarządzanie projektami. wykład 1 dr inż. Agata Klaus-Rosińska

Algorytmy graficzne. Podstawy kompresji danych fragment wykładu. Marcin Wilczewski

Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu.

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

INSTRUKCJA UŻYTKOWANIA. Projekt: Syrena. wersja: Program: Krzysztof Gosławski Kontakt:

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013. Forma studiów: Niestacjonarne Kod kierunku: 11.

Rok akademicki: 2015/2016 Kod: RBM s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Intellect. Business Intelligence. Biblioteka dokumentów Podręcznik. Business Intelligence od 2Intellect.com Sp. z o.o.

Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu.

Moduł Pulpit opcji oraz Narzędzia. Opis v 1.0

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

Aneks 2. Czytniki kodów kreskowych

CZYTNIK ZBLIŻENIOWY RFID-UR80D

Programowanie obrabiarek CNC. Nr H8

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Spis procedur i programów

ANALOGOWE UKŁADY SCALONE

Historia zmian w aplikacji. Rejestr Podmiotów Wykonujących Działalność Leczniczą

Easy, Reliable & Secure. Podręcznik instalacji wzmacniacza N300RE Wi-Fi Range Extender

Architektura Systemów Komputerowych. Paweł Pełczyński

Accelerated Graphics Port AGP Advanced Graphics Port AGP jest magistralą równoległą.

Wykład 2. Interfejsy I 2 C, OneWire, I 2 S

Pomiar mocy pobieranej przez napędy pamięci zewnętrznych komputera. Piotr Jacoń K-2 I PRACOWNIA FIZYCZNA

KOMPONENT DAC FOR MYSQL UŁATWIAJĄCY PRACĘ W DELPHI

PROCEDURA EWALUACJI WEWNĘTRZNEJ W SZKOLE PODSTAWOWEJ IM. JANA PAWŁA II W GRZĘDZICACH

Sieci komputerowe. Definicja. Elementy

PODSTAWOWE ELEMENTY ELEKTRONICZNE

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

Technologie internetowe Internet technologies Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L

Podejmowanie decyzji. Piotr Wachowiak

Tytuł: Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji. Autor: Tomasz Francuz. Wydawnictwo: Helion.pl

InsERT GT Własne COM 1.0

MikloBit ul. Cyprysowa 7/ Jaworzno. rev MB-JTAG-ICE debugger-programator

CT-AHS / CT-ARS CT-MBS / CT-MFS. (PL) Instrukcja instalacji i obsługi Elektroniczne przekaźniki czasowe, serii CT-S

CYFROWY WYŚWIETLACZ POŁOŻENIA TNP 10

ZARZĄDZENIE WEWNĘTRZNE Nr 10 / 2006 WÓJTA GMINY RABA WYŻNA z dnia 07 lutego 2006 roku

Archiwum Prac Dyplomowych

Regulamin w konkurencjach solowych

Zagospodarowanie magazynu

Zestawienie wartości dostępnej mocy przyłączeniowej źródeł w sieci RWE Stoen Operator o napięciu znamionowym powyżej 1 kv

Efektywność nauczania w Gimnazjum w Lutyni

Adapter USB do CB32. MDH-SYSTEM ul. Bajkowa 5, Lublin tel./fax lub kom e mail: info@mdh-system.pl

WOJSKOWA AKADEMIA TECHNICZNA SYSTEMY WBUDOWANE

Budowa systemów komputerowych

Generator obrazu transakcji fiskalnych, FG-40

Transkrypt:

SWB - Programowanie mikrokontrolerów - wykład 10 asz 1 Programowanie mikrokontrolerów - wykład 10

SWB - Programowanie mikrokontrolerów - wykład 10 asz 2 Wstęp - kilka otwartych pytań Czy istnieje uniwersalizm w technice? Czy istnieją uniwersalne języki programowania? Czy można oddzielić język programowania od warstwy sprzętowej?

SWB - Programowanie mikrokontrolerów - wykład 10 asz 3 Paradygmaty programowania Programowanie imperatywne - sekwencję poleceń zmieniających krok po kroku stan maszyny, aż do uzyskania oczekiwanego wyniku (stan będący funkcją czasu) - związany ściśle z budową sprzętu komputerowego o architekturze von Neumanna (Asemblery, Fortran, Cobol, Pascal, C), Programowanie obiektowe - program to zbiór porozumiewających się ze sobą obiektów, Programowanie funkcyjne - składamy i obliczamy funkcje, w sensie podobnym do funkcji znanych z matematyki. Nie ma stanu maszyny nie ma zmiennych mogących zmieniać wartość. Nie ma zatem samodzielnie biegnącego czasu, a jedynie zależności między danymi (Lisp, Scheme, Ocaml), Programowanie w logice - opisujemy, co wiemy i co chcemy uzyskać (języki funkcyjne i logiczne nazywa się łącznie językami deklaratywnymi). inne - np. programowanie współbieżne, Programowanie sterowane zdarzeniami, programowanie strukturalne.

SWB - Programowanie mikrokontrolerów - wykład 10 asz 4 Interpreter i kompilator Interpretr - analizuje kod źródłowy programu, a następnie wykonuje przeanalizowane fragmenty, Kompilator - konwertuje kod źródłowy do kodu maszynowego. Kod maszynowy umieszczany jest w pamięci programu i wykonywany.

SWB - Programowanie mikrokontrolerów - wykład 10 asz 5 Kompilacja Kompilacja to proces automatycznego tłumaczenia kodu napisanego w języku programowania na kod maszynowy. Dane wejściowe najczęściej nazywa się kodem źródłowym. Nazwa kompilacja na co dzień jest używana w kontekście tłumaczenia z języka wyższego poziomu na język niższego poziomu. Po kompilacji kod maszynowy zapisywany jest w plikach o rozszerzeniu hex albo bin, Postać binarne jest nieczytelna trudna do bezpośredniej analizy, Kompilacja może być częścią większego "procesu tłumaczenia", tworzony w jej trakcie kod wynikowy ( object code) jest przekazywany do innych programów ( linkera).

SWB - Programowanie mikrokontrolerów - wykład 10 asz 6 Kod maszynowy Kod maszynowy - to postać programu komputerowego (wykonywalna, binarna) przeznaczona do bezpośredniego wykonania przez procesor. kod rozkazu 1 argumenty rozkazu 1 kod rozkazu 2 argumenty rozkazu 2 kod rozkazu 3 kod rozkazu 4 argumenty rozkazu 4 : : ROZKAZ 1 ROZKAZ 2 ROZKAZ 3 ROZKAZ 4 Kod maszynowy jest sekwencją rozkazów, Rozkaz składa się z kodu rozkazu i argumentu rozkazu. W architekturze CISC rozkazy mogą być różnych rozmiarów, a ich czas wykonywania może trwać różną liczbę cykli maszynowych.

SWB - Programowanie mikrokontrolerów - wykład 10 asz 7 Programowanie - umieszczenie kodu maszynowego w pamięci programu Architektura von Neumanna - kod maszynowy umieszczany jest w pamięci ROM we wspólnej przestrzeni adresowej z pamięcią RAM, Architektura harwardzka - wµc o tej architekturze kod maszynowy umieszczany jest w osobnej przestrzeni adresowej niż pamięć RAM.

SWB - Programowanie mikrokontrolerów - wykład 10 asz 8 Metody umieszczenie kodu maszynowego w pamięci programu High voltage Programming czyli sposób programowania wprowadzony ponad 15 lat temu do programowania pamięci EPROM za pomocą sygnałów 12V - wymaga programatora, ISP (In-System Programmable) które nie wymaga wyjmowania pamięci programu z systemu w którym pracuje, Bootloader - po resecieµc uruchamiany jest program znajdujący się w sekcji Bootloadera, łączy się on z komputerem nadrzędnym, pobiera kod programu i umieszcza go w przeznaczonej do tego obszarze pamięci ROM, inne, np. w komputerach z systemem operacyjnym za umieszczenie kodu programu odpowiada loader.

SWB - Programowanie mikrokontrolerów - wykład 10 asz 9 ProgramowanieµC Atmel AtMega32 W przypadkuµc AtMega32 możliwe są następujące sposoby programowania. Z wykorzystaniem interfejsu ISP/SPI (ang. In-System Programming/ Serial Peripheral Interface) - poprzez ten interfejs program umieszczany jest w pamięci programu. Wymaga programatora. Z wykorzystaniem protokołu JTAG (ang. Joint Test Action Group), Bootloader - po resecieµc uruchamiany jest program znajdujący się w sekcji Bootloadera, który łączy się z komputerem nadrzędnym, pobiera kod programu i umieszcza go w sekcja aplikacji. Nie wymaga programatora.

SWB - Programowanie mikrokontrolerów - wykład 10 asz 10 Programowanie poprzez ISP i JTAG In-System Programming lub ISP umożliwiające zaprogramowanie układu bez demontażu, Możliwość połączenia programowania i testowania w jednej fazie produkcyjnej, Układy scalone wyposażone w ISP mają wewnętrzne obwody, generujące napięcia, niezbędne do zaprogramowania wbudowanej pamięci, a także interfejs szeregowy, umożliwiający komunikację z programatorem. Do komunikacji większość układów wykorzystuje protokół JTAG, choć są w tym celu wykorzystywane także inne protokoły, np. SPI, JTAG (ang. Joint Test Action Group) to nazwa standardu IEEE 1149.1 definiującego protokół używany do testowania połączeń na płytkach drukowanych, JTAG stosowany jest także do uruchamiania i programowania układów programowalnych i systemów mikroprocesorowych.

SWB - Programowanie mikrokontrolerów - wykład 10 asz 11 Asembler Asembler jest językiem niskopoziomowym, gdzie każdej instrukcji procesora odpowiada słowne polecenie (mnemonik) wraz z operandami. kod rozkazu 1 argumenty rozkazu 1 kod rozkazu 2 argumenty rozkazu 2 kod rozkazu 3 kod rozkazu 4 argumenty rozkazu 4 : : ROZKAZ 1 ROZKAZ 2 ROZKAZ 3 ROZKAZ 4 ldi r16, 47 inc r18 ROZKAZOWI 1 odpowiada mnemonik ldi r16, 47 ROZKAZOWI 3 odpowiada mnemonik inc r18

SWB - Programowanie mikrokontrolerów - wykład 10 asz 12 Podstawowe elementy języka Asembler Etykieta, Dyrektywy, Makra, Inne.

SWB - Programowanie mikrokontrolerów - wykład 10 asz 13 Etykiety asemblera Zadaniem etykiet jest symboliczne określenie miejsca w programie. Etykiety składają się z nazwy zakończonej dwukropkiem, np. etykieta: petla: Podczas kompilacji symboliczne nazwy zamieniane są konkretnymi wartościami adresów, Typowym przykładem wykorzystania etykiety poprzedzającej określoną instrukcję języka jest wykonanie skoku za pomocą instrukcji, która ma postać: goto etykieta lub jmp etykieta.

SWB - Programowanie mikrokontrolerów - wykład 10 asz 14 Dyrektywy asemblera Polecenie dla kompilatora, wykonania określonej czynności, lub ustalające sposób kompilacji..def nazwa=rxx Przypisanie rejestrowi Rxx nazwy nazwa..equ etykieta=wyr Dyrektywa przypisuje etykiecie wartość określoną wyrażeniem. Wartość przypisana etykiecie nie może być zmieniona.set etykieta=wyr Dyrektywa przypisuje etykiecie wartość określoną wyrażeniem..org wyrażenie - Ustawia licznik lokacji pamięci ROM na wartość określoną wyrażeniem.

SWB - Programowanie mikrokontrolerów - wykład 10 asz 15 Makroasembler, makra Makro - ciąg instrukcji, nie stanowiący samodzielnego programu, przeznaczony do wielokrotnego wykorzystania w kodzie programu, Makra można definiować za pomocą dyrektywy MACRO oznacza początek definicji makroinstrukcji. Dyrektywa wymaga argumentu w postaci nazwy makroinstrukcji. Makroasembler jest to asembler posiadający obsługę makr w czasie prekompilacji. Posiada on wszystkie funkcje właściwe asemblerom dając równocześnie możliwość stosowania makropoleceń.

SWB - Programowanie mikrokontrolerów - wykład 10 asz 16 Stos i rejestr Wskaźnik stosu Miejsce na stosie (adres stosu) wskazuje wskaźnik stosu, Wskaźnik stosu składa się z dwóch rejestrówsph ispl zawierających odpowiednio starszy i młodszy bajt adresu stosu. Jeśli chcemy korzystać ze stosu musimy go najpierw zainicjalizować - wpisać adres do rejesrtów sp np.: ldi R17, 0x08 ldi R16, 0x5f Out Sph, R17 Out Spl, R16

SWB - Programowanie mikrokontrolerów - wykład 10 asz 17 Licznik rozkazów Licznik rozkazów (PC) - rejestr procesora zawierający adres aktualnie wykonywanej lub następnej w kolejności instrukcji kodu maszynowego. Licznik rozkazu nie może być modyfikowany poprzez bezpośrednie wpisanie wartości W przerwaniach, instrukcjach typu call zawartość rejestru PC kładziona jest na stos

SWB - Programowanie mikrokontrolerów - wykład 10 asz 18 Tryb adresowaniaµc AtMega32 natychmiastowe, bezpośrednie, pośrednie - z przemieszczeniem, pośrednie z preinkrementacją, pośrednie z postinkremetacją, Do adresowań pośrednich wykorzystuje się rejestry od R26 do R31 (X, Y, Z).

SWB - Programowanie mikrokontrolerów - wykład 10 asz 19 Instrukcje asembleraµc AtMega32 Instrukcje arytmetyczne i logiczne, Instrukcje skoków, Instrukcje przesyłania danych, Instrukcje operacji bitowych. Dokładny opis w dokumentacji.

SWB - Programowanie mikrokontrolerów - wykład 10 asz 20 Biblioteka wspomagajaca assembler Baskom-AVR I2C, Extended I2C, MCSBYT, MCSBYTEINT - wspomagają konwersję typów ze stringa, TCPIP, Floating Point, LCD, CF Card, SPI, Data i czas, inne.

SWB - Programowanie mikrokontrolerów - wykład 10 asz 21 Nieulotna pamięć danych EEPROM ATmega32 zawiera 1024 bajty nieulotnej pamięci danych EEPROM. Przestrzeń adresowa jest liniowa od 0 do 1023. Przestrzeń ta jest zorganizowana jako osobna przestrzeń danych z zapisem i odczytem bajtowym, Dostęp do pamięci w specjalny sposób poprzez rejestry EEARH EEARL (rejestry adresu), EEDR (rejestr danych), EECR - rejestr kontrolny

SWB - Programowanie mikrokontrolerów - wykład 10 asz 22 Odczyt i zapis z pamięci danych EEPROM

SWB - Programowanie mikrokontrolerów - wykład 10 asz 23 Języki wysokiego rzędu W językach tych pojedynczej instrukcji zazwyczaj odpowiada wiele instrukcji procesora, W wyniku kompilacji otrzymany kod jest daleki od najbardziej efektywnego, zaletą jest łatwość w programowaniu.

SWB - Programowanie mikrokontrolerów - wykład 10 asz 24 Łaczenie języków programowania - wstawki asemblerowe W BASCOM-AVR używamy $ASM i kończymy $END ASM, nie wszystkie dyrektywy i makra są dostępne w BASCOM-AVR.

SWB - Programowanie mikrokontrolerów - wykład 10 asz 25 Zadania na ćwiczenia 1. Napisz program, który posługując się językiem asembler, wpisze zawartość rejestru r16 do zmiennej typu integer. Zmienną tą wyślij na konsole, używając funkcji Bascom-AVR. 2. Napisz program, który posługując się językiem asembler, zapisuje do obszaru nieulotnej pamięci danych 1 bajt pod adres wskazany przez osobę prowadzącą a. 3. Napisz program, który posługując się językiem asembler, liczy liczbę resetów. Licznik ma liczyć resety nawet po odłączeniu zasilania. Wynik (liczbę resetów) wyślij na konsole, używając funkcji Bascom-AVR. a adres powyżej 255