Aplikacje Systemów Wbudowanych

Transkrypt

Aplikacje Systemów Wbudowanych
Aplikacje
Systemów Wbudowanych
Laboratorium
STR910-EVAL
Evaluation Board
(STR912FW47)
Politechnika Gdańska
Wydział Elektroniki, Telekomunikacji i Informatyki
Katedra Systemów Geoinformatycznych
Gdańsk 2013
1
2
Spis treści
Programowanie mikrokontrolera z rdzeniem ARM (STR912F) ....................................... 5
Dodatek A
Otwieranie, kompilacja, wgrywanie oraz uruchamianie istniejących projektów w
środowisku Ride7 z dodatkiem Rkit-ARM ......................................................................... 7
Dodatek B
Tworzenie nowego projektu dla mikrokontrolerów z rdzeniem ARM w środowisku
Ride7 z dodatkiem Rkit-ARM ............................................................................................. 12
Dodatek C
Wgrywanie pliku binarnego (.hex) do pamięci mikrokontrolera za pomocą
środowiska RFlasher7 ........................................................................................................... 14
3
4
Programowanie mikrokontrolera z rdzeniem ARM (STR912F)
Wykorzystywany sprzęt
• Układ ewaluacyjny STR910-Eval z mikrokontrolerem STR912F
• Programator i debugger Rlink w wersji standard
• Kabel RS232
• Kabel USB x 2
• Kabel ethernetowy
Cel ćwiczenia
Zapoznanie się środowiskiem do tworzenia projektów oraz programowania
mikrokontrolerów z rdzeniem ARM. Tworzenie projektów oraz programowanie
mikrokontrolera STR912F z wykorzystaniem układu ewaluacyjnego STR910-Eval.
Szczegółowe zagadnienia
• Porty wejścia/wyjścia
• Watchdog
• Przerwania
• Zegar czasu rzeczywistego
• Magistrala CAN
• Interfejs UART
• Wyświetlacz graficzny (122x32 piksele)
• Modyfikacja kodu, kompilacja i uruchamianie zmodyfikowanych projektów
na układzie ewaluacyjnym STR10-Eval
• Tworzenie aplikacji, kompilacja i uruchamianie ich na układzie ewaluacyjnym
STR10-Eval
Przygotowanie stanowiska
• Skopiować
zawartość
katalogu
d:\materialy\Aplikacje
Systemów
Wbudowanych\STR910-Eval do katalogu roboczego d:\lab\STR910-Eval
• Podłączyć Rlink do układu STR910-Eval (JTAG) oraz komputera PC (USB)
• Podłączyć kabel RS232 do układu STR910-Eval (UART1) oraz komputera PC
(com4)
• Podłączyć kabel USB do układu STR910-Eval (USB) oraz komputera PC (USB)
• Podłączyć kabel ethernetowy do układu STR910-Eval (ETHERNET) oraz
komputera PC (ETHERNET)
• Podłączyć zasilanie do układu STR910-Eval
5
Zadania do wykonania (1 tydzień)
• Uruchomić Demo oraz sprawdzić działanie poszczególnych aplikacji
(STR91x_demonstration_software_user_manual.pdf)
• Otworzyć wszystkie przykładowe projekty z katalogu …\STR910Eval\Examples. Przeanalizować kod (wskazane wprowadzić własne
poprawki), skompilować projekt, wgrać do układu ewaluacyjnego STR910Eval oraz przeanalizować ich działania w trybie debugowania (dodatek A)
o Porty wejścia/wyjścia – GPIO
o Watchdog – WDG
o Przerwania – WIU
o Zegar czasu rzeczywistego – RTC
o Magistrala CAN – CAN
o Interfejs UART – UART
o Wyświetlacz graficzny (122x32 piksele) – LCD
• Wgrać aplikację Demo do układu STR910-Eval za pomocą aplikacji RFlasher7
(dodatek C)
Zadania do wykonania (2 tydzień)
• Utworzyć nowy projekt oraz napisać dowolną aplikację demonstrującą
moŜliwości układu ewaluacyjnego STR910-Eval (dodatek B)
• Wgrać aplikację Demo do układu STR910-Eval za pomocą aplikacji RFlasher7
(dodatek C)
Potrzebne informacje (d:\materialy\aplikacje systemów wbudowanych\STR910Eval)
• Otwieranie, kompilacja, wgrywanie oraz uruchamianie istniejących projektów
w środowisku Ride7 z dodatkiem Rkit-ARM – dodatek A
• Tworzenie nowych projektów – dodatek B
• Wgrywanie pliku binarnego do pamięci mikrokontrolera za pomocą
środowiska RFlasher7 – dodatek C
• Opis układu ewaluacyjnego STR910-Eval - STR910-Eval_User_Manual.pdf
• Mikrokontrolery z rdzeniem ARM w środowisku Ride7 –
Getting_Started_ARM_Ride7.pdf
• Opis programu demonstracyjnego dla układu STR910-Eval –
STR91x_demonstration_software_user_manual.pdf
• Programowanie wyświetlacza LCD - Wyswietlacz_LCD.pdf
6
Dodatek A
Otwieranie, kompilacja, wgrywanie oraz uruchamianie
istniejących projektów w środowisku Ride7 z dodatkiem RkitARM
Oprogramowanie Ride7 wraz z dodatkiem Rkit-ARM jest zintegrowanym
środowiskiem typu IDE (Integrated Development Environment) pozwalającym na
edytowanie projektów, kompilacje kodu, wgrywanie oraz debugowanie wgranego
do układu oprogramowania (programator/debugger Rlink). Rkit-ARM to zestaw
dedykowanych narzędzi dla mikrokontrolerów z rdzeniem ARM z kompilatorem
języka C (GCC).
Przykładową zawartość katalogu z projektem przedstawiono na rysunku 1.
Rys.1. Zawartość katalogu z projektem
Plik z rozszerzeniem .rprj jest głównym plikiem projektu. Na rysunku 2
przedstawiono domyślny widok okna głównego projektu, w skład którego wchodzi:
• Pasek narzędzi (rysunek 3)
• Lista plików projektu
• Ustawienia dla projektu
• Kod aktualnie edytowanego pliku
• Wyniki kompilacji projektu
• Lista dokumentacji
7
Rys. 2. Okno główne projektu
Kolejny etap to kompilacja projektu. W tym celu naleŜy kliknąć ikonkę Make all
project (rysunek 3).
Rys. 3. Kompilacja projektu
JeŜeli proces ten zakończył się sukcesem (powstanie między innymi plik z
rozszerzeniem .hex), moŜna przystąpić do debugowania programu. W tym celu
naleŜy kliknąć ikonkę Start debugging (rysunek 4).
Rys. 4. Włączanie debugowania projektu
Efektem będzie wyczyszczenie pamięci mikrokontrolera oraz wgranie nowego
programu do pamięci mikrokontrolera z pliku binarnego z rozszerzeniem .hex. Okno
główne projektu zmieni swoją konfigurację na dedykowaną debugowaniu kodu
programu. W nowej domyślnej konfiguracji będzie moŜna:
• Oglądać i edytować zawartość pamięci programu (rysunek 5)
• Oglądać i edytować zawartość rejestrów związanymi z poszczególnymi
peryferiami mikrokontrolera (rysunek 5)
• Oglądać i edytować zmienne lokalne (rysunek 6)
• Zobaczyć wynik disassemblacji kodu (rysunek 7)
8
• Kod programu
• Menu debugowania (rysunek 8)
Rys. 5. Okno z wyborem pamięci/rejestrów do podglądu/edycji
Rys.6. Zmienne lokalne
Rys. 7. Wynik disassemblacji kodu programu
Rys.8. Menu debugowania
9
Program moŜna wystartować do pracy ciągłej (Run), pauzować (Pause) resetować
(Reset), wykonywać krokowo, stawiać/usuwać pułapki programowe (Breakpoints).
KaŜdy z projektów posiada:
• opis działania oraz niezbędne pliki z funkcjami bibliotecznymi (plik
Redme.txt)
• dedykowaną funkcję główną main znajdującą się w pliku main.c
• dedykowany plik nagłówkowy 91x_conf.h z definicją nazw rejestrów
• dedykowaną implementację funkcji obsługi przerwań w pliku 91x_it.c
zdefiniowanych w pliku nagłówkowym 91x_it.h
• zestaw funkcji bibliotecznych wykorzystywanych w danym projekcie z
definicją w plikach z rozszerzeniem .h oraz ich implementacją w plikach z
rozszerzeniem .c
o 91x_adc – przetwornik analogowo-cyfrowy ADC
o 91x_can – magistrala CAN
o 91x_dma – bezpośredni dostęp do pamięci DMA
o 91x_fmi – interfejs pamięci flash FMI
o 91x_gpio – porty wejścia/wyjścia GPIO
o 91x_i2c – magistrala I2C
o 91x_rtc – zegar czasu rzeczywistego RTC
o 91x_scu – zegar
o 91x_ssp – magistrala SPI
o 91x_tmi – liczniki
o 91x_uart – magistrala UART
o 91x_vic – kontrola przerwań
o 91x_wdg – watchdog
o 91x_wiu – przerwania wektoryzowane
• inne funkcje realizujące funkcjonalność danego programu
Skrócony opis działania programów dla poszczególnych projektów (szczegóły w
plikach Readme.txt):
• Porty wejścia/wyjścia (GPIO) – generowanie sekwencji błysków diod LD2LD5 podłączonych do pinów 0-3 portu GPIO9.
• Watchdog (WDG) – program po resecie układu zapala na pewien czas diodę
LD3, a następnie ją gasi. Zadaniem watchdoga jest ciągłe resetowanie układu
w odstępach 1 sekundowych. Po wgraniu programu do układu opcja Run jest
nieaktywna. Aby ją aktywować naleŜy zresetować układ klikając Reset, lub
wciskając przycisk Reset na płytce układu.
• Przerwania (WIU) – dla kaŜdego zbocza opadającego sygnału wymuszającego
przerwanie sygnał dla diody LD2 zmienia swój stan. Sygnałem
wymuszającym przerwanie są przyciski na płycie układu (KEY, TAMPER)
oraz Joystick.
• Zegar czasu rzeczywistego (RTC) – po zadanym czasie (5 sekund)
generowany jest alarm w postaci nieskończonej sekwencji błysków diody
LD4.
10
•
•
•
Magistrala CAN (CAN) – program testuje w pętli nieskończonej magistralę
CAN wystawiajać paczkę danych, która jest następnie odbierana z powrotem.
W przypadku prawidłowej pracy diody LD3 (odbiór danych nie
wykorzystujący przerwań) i LD4 (odbiór danych z wykorzystaniem
przerwania z pliku 91x_it.c) powinny sięzapalć
Interfejs UART (UART) – transmisja danych z wykorzystaniem interfejsu
RS232 (parametry konfiguracji poru komputera PC w pliku Readme.txt). Po
resecie układu do terminala na komputerze PC wysyłany jest napis „Aplikacje
Systemow Wbudowanych”. Teraz układ czeka na dane z terminala
komputera PC. Gromadzi je w buforze (rozmiar 255 znaków) do czasu
wciśnięcia przycisku Enter na klawiaturze, po czym odsyła do terminalna
komputera PC zawartość bufora.
Wyświetlacz graficzny (LCD) – po resecie układu wyświetlana jest animacja, a
następnie pojawia się napis „Aplikacje Systemów Wbudowanych”.
NajwaŜniejsze funkcje, to:
o LCD_Init – inicjalizacja wyświetlacza
o LCD_Picture – wyświetlenie grafiki o rozmiarze 122x32 z tablicy o
rozmiarze 488 bajtów (4 x 122 linie wyświetlacza). Do wygenerowania
danych do wyświetlenia moŜna wykorzystać aplikację AsystentLCD.
o LCD_PictureSC – wyświetlenie grafiki o rozmiarze 122x32 z tablicy o
rozmiarze 488 bajtów (4 x 122 linie wyświetlacza) przesuniętą w prawo
o zadaną liczbę pikseli. Do wygenerowania danych do wyświetlenia
moŜna wykorzystać aplikację AsystentLCD.
11
Dodatek B
Tworzenie nowego projektu dla mikrokontrolerów z rdzeniem
ARM w środowisku Ride7 z dodatkiem Rkit-ARM
Utworzenie nowego projektu dla układu STR910-Eval z mikrokontrolerem STR912F w
środowisku Ride7 z dodatkiem Rkit-ARM odbywa się w następujących krokach:
• Uruchomienie środowiska Ride7
• Z menu Project wybrać New Project
• W nowym oknie (rysunek 9) wybrać właściwy mikrokontroler, podać nazwę
projektu oraz jego lokalizację na dysku (d:\lab\...)
Rys. 9. Okno tworzenia nowego projektu
• Z katalogu d:\lab\STR910-Eval\lib przegrać pliki:
o plik main.c z funkcją główną main
o plik nagłówkowy 91x_conf.h z definicją nazw rejestrów (moŜna go
pozostawić bez zmian, lub przystosować do specyfiki tworzonego
projektu)
12
o plik 91x_it.c z implementację funkcji obsługi przerwań (domyślnie
wszystkie funkcje obsługi przerwań są puste)
o inne pliki z funkcjami biblioteczne wymagane do realizacji projektu
(d:\lab\STR910-Eval\lib\include, d:\lab\STR910-Eval\lib\source)
• dodać skopiowane pliki do projektu (rysunek 10)
Rys. 10. Dodawanie plików do projektu
• wybrać plik main.c do edycji i uzupełnić o kod realizujący funkcjonalność
tworzonej aplikacji
• skompilować projekt, wgrać program do pamięci mikrokontrolera oraz
uruchomić go zgodnie z instrukcją z dodatku A
13
Dodatek C
Wgrywanie
pliku
binarnego
(.hex)
do
mikrokontrolera za pomocą środowiska RFlasher7
pamięci
Wgranie pliku binarnego z rozszerzeniem .hex do pamięci mikrokontrolera STR912F
odbywa się w następujących krokach:
• Uruchomienie środowiska RFlasher7
• Z menu Project wybrać New Project
• W nowym oknie (rysunek 11) wybrać właściwy mikrokontroler, podać nazwę
projektu oraz jego lokalizację na dysku (d:\lab\...)
Rys. 11. Okno tworzenia nowego projektu
• W oknie memory wybieramy opcje Fill/Save (rysunek 12)
14
Rys. 12. Widok okna memory
• Wskazać plik demo.hex (d:\lab\STR910-Eval\) i kliknąć Fill (rysunek 13) - w
oknie memory pojawi się zawartość pliku binarnego
Rys. 13. Wybór pliku binarnego
15
• Wyczyścić pamięć mikrokontrolera za pomocą komendy Erase, a następnie
zaprogramować mikrokontroler za pomocą komendy Program (rysunek 14)
Rys. 14. Lokalizacja komend Erase i Program
16

Podobne dokumenty