LABORATORIUM UKŁADÓW PROGRAMOWALNYCH

Transkrypt

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH
Politechnika Wrocławska, Wydział Elektroniki Mikrosystemów i Fotoniki
Wydziałowy Zakład Metrologii Mikro- i Nanostruktur
LABORATORIUM UKŁADÓW PROGRAMOWALNYCH
PROCESORY OSADZONE
kod kursu: ETD 7211
SEMESTR ZIMOWY 2015/2016
Prowadzący: dr inż. Daniel Kopiec
Konsultacje: PN godz. 11-13, ŚR godz. 14-16
Miejsce konsultacji: sala 015a budynek C2
Email: [email protected]
Tel.: 71 320 3651
Miejsce odbywania zajęć: sala 108 budynek C2
Spis treści:
1. Zadanie 1 – interfejs JTAG
2. Zadanie 2 – pierwszy program, porty GPIO
3. Zadanie 3 – procedura obsługi portów FGPIO
1. Na podstawie dokumentacji zestawu uruchomieniowego EVBmm oraz modułu
procesora MMlpc23xx za pomocą przewodów pinowych połączyć interfejs
JTAG z wyprowadzeniami płytki mikrokontrolera.
Rys. 1 Moduł mikrokontrolera MMlpc23xx oraz rozmieszczenie poszczególnych
wyprowadzeń
Rys. 2 Opis wyprowadzeń złącza modułu MMlpc23xx z zaznaczeniem tych, które są
używane w interfejsie JTAG. Piny oznaczone kolorem czerwonym – JTAG, niebieskim –
GND, zółty zasilanie +3,3V
Interfejs JTAG stanowi standard diagnostyczny IEEE 1149.1, który umożliwia również
programowanie
oraz
uruchamianie
układów
programowalnych
i
systemów
mikroprocesorowych. Niewątpliwą zaletą standardu JTAG jest fakt, że umożliwia
programowanie układu bezpośrednio w gotowych urządzeniu, co przede wszystkim
umożliwia szybkie tworzenie i modyfikacje prototypowych wersji urządzeń.
Standardowy interfejs JTAG posiada następujące linie wykorzystywane w komunikacji:
TDI (ang. Test Data In)
TDO (ang. Test Data Out)
TCK (ang. Test Clock)
TMS (ang. Test Mode Select)
TRST (ang. Test Reset)
wejście danych
wyjście danych
wejście sygnału zegarowego
wybór trybu pracy
resetowanie interfejsu JTAG (opcjonalne)
Interfejs układów ARM posiada kilka dodatkowych linii jak np.
VREF (ang. Voltage Reference)
RTCK (ang. Return Test Clock)
SRST (ang. System Reset)
DBGRQ (ang. Debug Request)
DBGACK (ang. Debug Acknowledge)
pomiar napięcia zasilającego układ, kontrola
działania interfejsu cyfrowego
sygnał umożliwiający negocjację szybkości
transmisji danych pomiędzy interfejsem JTAG a
układem ARM
reset systemu, całego układu mikrokontrolera,
stan aktywny – niski, czasem oznaczony nSRST
sygnał żądania pracy krokowej procesora, stan
wysoki oznacza wejście w tryb debugowania
potwierdzenie wejścia w tryb debugowania, stan
aktywny wysoki
Rys. 3 J-Link Edu, programator, debuger działający w standardzie JTAG oraz opis
wyprowadzeń złącza IDC 20
Podczas łączenie przewodów pinowych należy również pamiętać o podłączeniu zasilania
+3,3V do modułu procesora oraz wszystkich pinów GND do masy płyty głównej.

Poprawność połączeń można sprawdzić uruchamiając środowisko Keil µVision 5
przechodząc do zakładki Flash a następnie Configure Flash Tools… następnie zakładka
DEBUG i w części J-Link klikamu Settings
- w momencie kiedy zależy nam na
pracy z rzeczywistym układem należy
wybrać pracę z odpowiednim
układem debugera/programatora, w
naszym wypadku stosujemy debuger
J-Link EDU.
Po wybraniu opcji Target w częsci Info wyświetlonego okna otrzymamy kilka ważnych informacji
dotyczących naszego mikrokontrolera jak np. sygnatura - inaczej ID w zapisie hex. Wartość ta powinna
być różna od 0. Wystąpienie wartości 0 lub 1 może sugerować:
 błędne podłączenie programatora pod interfejs JTAG (najczęściej),
 nadpisanie ważnych obszarów pamięci mikrokontrolera i tym samym brak dostępu do obszaru
bootloadera. Wówczas konieczne staje się skasowanie pamięci procesora za pomocą
interfejsu
szeregowego
(opis
procedury
zawarty
jest
w
pliku
http://w12.pwr.wroc.pl/mikro/laboratorium/Procesory%20osadzone%20lab%20%20Wprowadzenie.pdf).
2. W środowisku Keil µVision 5 stworzyć nowy projekt, gdzie kod źródłowy
pisany będzie w języku C, następnie:
 stworzyć szkielet programu – biblioteki, pętla główna itp.
 wykorzystując pin P1.20 portu GPIO układu LPC2368 stworzyć
program tzw. migającej diody. W programie pętla opóźniająca
powinna być zapisana jako osobna funkcja wywoływana z pętli
głównej programu,
 w kolejnym kroku, pętlę opóźniającą pisaną w języku C zastąpić
funkcją napisaną w asemblerze z wykorzystaniem dowolnych
rozkazów
3. Na podstawie dokumentu USER MANUAL LPC2368 [2] zaproponować
procedurę obsługi portów FGPIO. Jaka jest różnica pomiędzy portem GPIO a
portem FGPIO ?
Literatura:
[1] http://www2.lauterbach.com/pdf/arm_app_jtag.pdf
[2] http://www.nxp.com/documents/user_manual/UM10211.pdf

Podobne dokumenty