1. Tworzenie nowego projektu.



Podobne dokumenty
PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

Programowanie Systemów Czasu Rzeczywistego

1.Wstęp. 2.Generowanie systemu w EDK

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Programowanie obiektowe zastosowanie języka Java SE

Driver interfejsu szeregowego dla systemu QNX Neutrino

Jedrzej Ułasiewicz Komputerowe systemy sterowania 1

Konfiguracja i podłączenie sterownika Horner APG do oprogramowania Cscape po RS232

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

Materiały dodatkowe. Raspberry Pi

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

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

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.2

Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej:

WPROWADZENIE DO JĘZYKA JAVA

Diagnostyka pamięci RAM

Projektowanie z użyciem procesora programowego Nios II

ZAPOZNANIE SIĘ Z TWORZENIEM

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Konfiguracja serwera OPC/DDE KEPSServerEX oraz środowiska Wonderware InTouch jako klienta DDE do wymiany danych

Wprowadzenie do środowiska Qt Creator

Instrukcja implementacji sterownika wirtualnego portu szeregowego dla systemu Android. Opracowanie: Elzab Soft sp. z o.o.

Instrukcja do oprogramowania ENAP DEC-1

Hardware mikrokontrolera X51

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Programy LeftHand - Obsługa plików JPK. Wrzesień 2016

Aplikacje w Javie- wykład 11 Wątki-podstawy

1. Timery i zdarzenia

Programowanie i struktury danych

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach

IIPW_SML3_680 (Z80) przewodnik do ćwiczeń laboratoryjnych

Programowanie niskopoziomowe

Istnieją trzy sposoby tworzenia kopii zapasowej na panelu Comfort:

Aplikacje WWW - laboratorium

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Program RMUA. Instrukcja konfiguracji i pracy w programie. (Wersja 2)

Instrukcja podstawowego uruchomienia sterownika PLC LSIS serii XGB XBC-DR20SU

Konfiguracja i uruchomienie usługi Filtry adresów IP dla użytkowników Centrum Usług Internetowych dla Klientów Banku Spółdzielczego w Łęcznej.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

PU002 Sweex 2 Port Serial PCI Card

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

podstawowa obsługa panelu administracyjnego

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Programowanie w języku Python. Grażyna Koba

Programowanie w Javie

TwinCAT 3 konfiguracja i uruchomienie programu w języku ST lokalnie

Tworzenie oprogramowania

Kurs Zaawansowany S7. Spis treści. Dzień 1

Programy LeftHand - Obsługa plików JPK. Luty 2017

Projektowanie aplikacji internetowych laboratorium

Informatyka I : Tworzenie projektu

Konfigurowanie sterownika BC8150 firmy Beckhoff wprowadzenie

1 Moduł Bramki xcomfort 3

SystimPlus. Dokumentacja (FAQ) dla wersji: v

NARZĘDZIE KONFIGURACYJNE VNX SETUP TOOL MODUŁÓW RODZINY VNX ADVANCED

Windows Workflow Foundation (wprowadzenie - prosty przykład Sequential Workflow):

Programowanie procesora Microblaze w środowisku SDK

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Start Bity Bit Stop 1 Bit Par Rys. 1

I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych)

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Urządzenia peryferyjne RS-232. Wykład 2

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Instalacja programu dreryk

Archiwum DG 2016 PL-SOFT

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

Skrócony przewodnik OPROGRAMOWANIE PC. MultiCon Emulator

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

2. PORTY WEJŚCIA/WYJŚCIA (I/O)

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Aplikacja npodpis do obsługi certyfikatu (instrukcja użytkownika)

Opracowanie ćwiczenia laboratoryjnego dotyczącego wykorzystania sieci przemysłowej Profibus. DODATEK NR 1 Opis konfiguracji sieci AS-I

PROCESORY SYGNAŁOWE - LABORATORIUM. Ćwiczenie nr 03

1 Moduł Bramki xcomfort

4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD.

podstawowa obsługa panelu administracyjnego

Zaawansowane aplikacje WWW - laboratorium

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Problemy techniczne SQL Server

Programowanie wielowarstwowe i komponentowe

Programator procesorów rodziny AVR AVR-T910

EC4P Pierwszy program w 6 krokach

1 Moduł Lutron HomeWorks QS

Projekt procesora NIOSII w strukturze programowalnego układu logicznego CYCLONEII EP2C35F672C6 podłączenie i obsługa wyświetlacza LCD.

Programowanie Systemów Wbudowanych

Robot EPSON SCARA T3-401S

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Programowanie sterowników B&R

lekcja 8a Gry komputerowe MasterMind

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

TECHNIKA MIKROPROCESOROWA II

dokument DOK wersja 1.0

Aplikacja npodpis do obsługi certyfikatu

Transkrypt:

Załącznik do Instrukcji 1. Tworzenie nowego projektu. Wybieramy opcję z menu głównego New->QNX C Project. Wprowadzamy nazwę przechodzimy do następnego kroku NEXT.

Wybieramy platformę docelową oraz warianty kompilacji. FINISH kończy proces tworzenia projektu. 2. Kompilacja projektu. Wybieramy z menu głównego opcję Project->Build Project. Wynik kompilacji pojawi się w zakładce Console. W zakładce Problem wyświetlone zostaną ewentualne błędy i problemy.

3. Uruchomienie aplikacji Z menu głównego wybieramy opcję za pierwszym razem Run->Run Configuration, w kolejnych Run- >Run W polu po lewej stronie tworzymy nową konfigurację uruchamiania C/C++ QNX QConn IP. W polu Project Browse wybieramy projekt z przestrzeni roboczej. W polu C/C++ Application Search Project wybieramy aplikację do uruchomienia. W zakładce Arguments możemy prowadzić argumenty wejściowe aplikacji. Run uruchamia aplikację na platformie docelowej. W polu Taget Option wybieramy odpowiednią platformę docelową. 4. Debugowanie aplikacji. Podobnie jak w pkt 3. używamy opcji Run->Debug Configuration.

5. Perspektywa QNX System Information Uruchomione programy powinny znaleźć się na liście procesów uruchomionych na platformie docelowej w oknie Target Navigator Perspektywy QNX System Information.

6. Programowanie interfejsu UART na platformie x86. Interfejs szeregowy w komputerze PC posiada następujące rejestry: Niektóre rejestry pełnią zróżnicowane role w zależności od wykonywanej na nich operacji zapis/odczyt. Znaczenie pewnych rejestrów zależy od ustawień innych rejestrów, np. rejestry spod adresu bazowego i adresu bazowego+1 mają różne znaczenie w zależności od wartości bitu DLAB w rejestrze LCR. Programowanie interfejsu szeregowego sprowadza się do wykonania następujących kroków: Zainicjowanie urządzenia poprzez wpisanie odpowiednich wartości do jego rejestrów. Wyłączenie przerwań w rejestrze IER: Wpisanie do rejestru IER 0x00; Ustawienie prędkości transmisji: Bit DLAB = 1 w rejestrze LCR; Wpisanie odpowiednich wartości do rejestrów DLL Divisor Latch LSB; Wpisanie odpowiednich wartości do rejestrów DLM Divisor Latch MSB;

Ustawienie parametrów transmisji, rejestr LCR: Wpisanie odpowiednich wartości w rejestrze LCR bit DLAB = 0; Ustawienie odpowiednich parametrów wewnętrznej pamięci FIFO, wpisanie odpowiedniej wartości do rejestru FCR: Włączenie odpowiednich wyjść i sygnałów kontroli transmisji w rejestrze MCR: Napisanie funkcji obsługi przerwań od układu UART. Źródła przerwań od układu transmisji szeregowej można rozróżnić sprawdzając zawartość rejestru IIR:

Zawartość bitów 1 3 rejestru IIR mówi nam, z jakim przerwaniem mamy do czynienia. 1 logiczna na bicie 1 mówi nam, że bufor nadajnika jest pusty i można nadać kolejny znak. 1 logiczna na bicie 2 mówi nam że w buforze odbiornika jest znak gotowy do odbioru. Sprawdzanie bitów rejestru IIR jest konieczne gdyż z punktu widzenia procesora generowane jest jedno przerwanie dotyczące różnych zdarzeń. Włączenie przerwań w układzie UART poprzez ustawienie odpowiednich bitów w rejestrze IER. 7. Obsługa przerwań w QNX Neutrino W QNX Neutrino możemy obsługiwać przerwania sprzętowe w dwojaki sposób poprzez: napisanie własnej procedury obsługi przerwania, która uruchamia odpowiednie zdarzenie w systemie; obsługę w wątku zdarzenia wygenerowanego przez jądro. Na laboratorium wykorzystamy pierwszy sposób obsługi przerwań. W tym celu musimy wykonać następujące kroki: Zdefiniować odpowiednią strukturę odpowiedzialną za zdarzenie generowane po wystąpieniu przerwania: struct sigevent int_event; // the event to wake up the thread; Napisać funkcją obsługi przerwania: const struct sigevent *hdlr( void *blah, int id ){ static int st = 0; st = in8(port+2); //sprawdzenie źródła przerwania if (przerwanie od odbiornika){ //wykonaj operacje return &int_event; // zgłoś zdarzenie } if (przerwanie od nadajnika){ //wykonaj operacje return &int_event; // zgłoś zdarzenie

} return NULL; //w przeciwnym wypadku zwróć NULL } W pętli głównej programu: włącz obstugę operacji I/O: // request I/O privity ThreadCtl(_NTO_TCTL_IO, 0 ); Zainicjuj structure zdarzenia: SIGEV_INTR_INIT( &int_event ); Powiąż własnego handler z przerwaniem: id = InterruptAttach(IRQn, handler, NULL, 0, _NTO_INTR_FLAGS_TRK_MSK ); Włącz przerwania w urządzeniu odpowiedni wpis w rejestrze IER. np. out8(port+1, 0x01); W nieskończonej pętli while oczekuj na przerwanie i odpowiednio zareaguj: while (1) { // block here waiting for the event InterruptWait(0, NULL ); // po wystąpieniu przerwania wykowanaj odpowiedni kod // if using a high frequency interrupt, don't print every interrupt printf ("%s: we got an event after 1500 timer ticks and unblocked\n", progname); }