22
Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014 Podstawowe zasady tworzenia projektu dla STM32F4 w środowisku uVision 5, z wykorzystaniem zestawu STM32F4-Discovery i bibliotek do obsługi peryferiów dla STM32F4 (Cortex –M4), Opis z dnia 06.04.2014 1. Czynności związane z instalacją środowiska MDK, ST Link i biblioteki Zainstalować najnowszą wersję środowiska uVision MDK, firmy Keil dla układów typu ARM. Standardowo pakiet instaluje się na dysku, C:\Keil. UWAGA !! proszę nie używać polskich liter i znaku spacji przy nazwach katalogów (folderów) i plików, które będą używane przez projekt i środowisko uVision. Pobrać i uruchomić instalację sterownika USB dla programatora/debugera STLink (st- link_v2_usbdriver.exe) (http://www.st.com/web/en/catalog/tools/PF258167). Pobrać i zainstalować program STM32 ST-LINK Utility, który służy do programowania mikrokontrolera za pomocą programatora/debugera STLink (stm32_st-link_utility.exe) (http://www.st.com/web/en/catalog/tools/PF258168). Standardowo program się instaluje w katalogu "C:\Program Files\STMicroelectronics\STM32 ST-LINK Utility\". Podkatalog Docs zawiera opis obsługi programu i programatora ST Link. Po poprawnej instalacji i uruchomieniu programu powinno się pojawić okienko jak na rysunku 1. Rys. 1. Okienko programu STM32 ST-Link Podłączyć płytkę STM32F4-Discovery do portu USB komputera za pomocą kabla typu USB A na USB mini B. Komputer wykryje nowe urządzenie i zacznie instalować sterowniki dla ST-Link-a. Jeżeli nie znajdzie sterowników należy wskazać ich miejsce. Jest to katalog, który powstał po uruchomieniu st- link_v2_usbdriver.exe. Po poprawnej instalacji sterowników w menedżerze urządzeń powinno się pojawić nowe urządzenie typu STMicroelectronics STLink dongle , jak na rysunku 2.

Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

  • Upload
    lebao

  • View
    225

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

Podstawowe zasady tworzenia projektu dla STM32F4 w środowisku

uVision 5, z wykorzystaniem zestawu STM32F4-Discovery i bibliotek do

obsługi peryferiów dla STM32F4 (Cortex –M4),

Opis z dnia 06.04.2014

1. Czynności związane z instalacją środowiska MDK, ST Link i biblioteki

• Zainstalować najnowszą wersję środowiska uVision MDK, firmy Keil dla układów typu ARM.

Standardowo pakiet instaluje się na dysku, C:\Keil.

• UWAGA !! proszę nie używać polskich liter i znaku spacji przy nazwach katalogów (folderów) i

plików, które będą używane przez projekt i środowisko uVision.

• Pobrać i uruchomić instalację sterownika USB dla programatora/debugera STLink (st-

link_v2_usbdriver.exe) (http://www.st.com/web/en/catalog/tools/PF258167).

• Pobrać i zainstalować program STM32 ST-LINK Utility, który służy do programowania

mikrokontrolera za pomocą programatora/debugera STLink (stm32_st-link_utility.exe)

(http://www.st.com/web/en/catalog/tools/PF258168).

• Standardowo program się instaluje w katalogu "C:\Program Files\STMicroelectronics\STM32 ST-LINK

Utility\". Podkatalog Docs zawiera opis obsługi programu i programatora ST Link. Po poprawnej

instalacji i uruchomieniu programu powinno się pojawić okienko jak na rysunku 1.

Rys. 1. Okienko programu STM32 ST-Link

• Podłączyć płytkę STM32F4-Discovery do portu USB komputera za pomocą kabla typu USB A na USB

mini B.

• Komputer wykryje nowe urządzenie i zacznie instalować sterowniki dla ST-Link-a. Jeżeli nie znajdzie

sterowników należy wskazać ich miejsce. Jest to katalog, który powstał po uruchomieniu st-

link_v2_usbdriver.exe.

• Po poprawnej instalacji sterowników w menedżerze urządzeń powinno się pojawić nowe urządzenie

typu STMicroelectronics STLink dongle, jak na rysunku 2.

Page 2: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

• Na płytce STM32F4-Discovery powinna świecić dioda od zasilania (PWR), dioda od debugera (COM) i

powinny mrugać cztery diody (zielona, czerwona, niebieska, pomarańczowa). Działa wtedy

oryginalny program zainstalowany na płytce.

Rys.2. Widok menedżera urządzeń po zainstalowaniu STLink

Po uruchomieniu programu ST Link i wybraniu z menu Target -> Connect, program łączy się z płytką i

wykrywa typ mikrokontrolera i odczytuje zawartość pamięci (rysunek 3).

Rys.3. Okienko programu STM32 ST-Link po wykryciu mikrokontrolera na płytce

Może się okazać, że oprogramowanie debugera na płytce Discovery wymaga uaktualnienia.

• Wtedy wybieramy z menu ST-LINK->Firmware update i pojawi się okienko ST-Link Upgrade.

• Naciskamy Device Connect i program odczyta wersję zainstalowanego oprogramowania (tzw.

firmware) oraz wersję, która jest dostępna w programie STM32 ST-Link Utility.

Page 3: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

• Jeżeli pojawią się problemy z połączeniem i odczytanie wersji (program zgłosi, że należy zresetować

urządzenie), należy odłączyć kabel od płytki USB i ponownie podłączyć.

• Jeżeli wersja firmware Version jest niższa od dostępnej, naciskamy Yes. Komputer PC poprzez port

USB wgra nowszą wersję i powinno się pojawić okienko Upgrade is succesful. Wtedy obie wersje

firmware są jednakowe (rysunek 4).

Rys.4. Okienko do aktualizacji oprogramowania debugera ST Link

Wgrywanie nowego firmware jest typową procedurą po zakupie płytki STM32F4-Discovery i jej

pierwszym uruchomieniu. Aktualne firmware dla ST-Link-a jest zawsze dostępne na stronie www.st.com.

Po aktualizacji oprogramowania może się pojawić problem z połączeniem (komunikat No STLink detected)

wtedy należy odłączyć kabel od płytki USB i ponownie podłączyć i wybrać z menu Target -> Connect.

Ważne, aby w ST-Link był ustawiony w tryb SWD, można to sprawdzić w Target -> Settings (rysunek 5). Jeżeli

jest połączenie pomiędzy płytką a programem to można, np. odczytać zawartość rejestrów, z menu Target ->

MCU Core (rysunek 5).

Rys.5. Okienko trybu pracy ST Link-a i okienko Core panel

Poprawne działanie programu STM32 ST-Link Utility i debugera na płytce wraz podłączonym

mikrokontrolerem STM32 F4 umożliwia pracę (programowanie, debugowanie) w środowisku uVision.

Jeżeli używamy najnowszej wersji środowiska MDK-ARM, firmy Keil to też należy sprawdzić czy jest

zainstalowana najnowsza wersja drivera i oprogramowania debugera ST Link.

Driver do ST-Link-a działa poprawienie pod WIN XP, Vista i WIN7. Dla WIN8 należy pobrać osobny driver ze

strony http://www.st.com/web/en/catalog/tools/PF251168.

Page 4: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

2. Przygotowanie katalogów i plików do projektu

Aby skorzystać z środowiska uruchomieniowego uVision, firmy Keil do programowania mikrokontrolerów

STM32 w języku C (lub asemblerze) należy stworzyć tzw. projekt, do którego będą dołączone różnego typu

pliki. Przed rozpoczęciem pracy z uVision lepiej wcześniej przygotować katalogi i niektóre pliki dla projektu.

Przedstawiona poniżej procedura przygotowania projektu jest jedną z możliwych propozycji ustawienia

katalogów i plików dla projektu. Można też skorzystać z gotowych ustawień zawartych w katalogach

biblioteki lub ustawić według swoich wymagań. Procedura przygotowania ma na celu uporządkowanie

katalogów i podkatalogów projektu aby można było łatwo odnajdywać pliki i pisać bardziej zaawansowane

projekty oraz łatwo przenosić projekty pomiędzy komputerami. Założeniem zaproponowanej konfiguracji

jest to, aby wszystkie potrzebne pliki do projektu znajdowały się w katalogu projektu. Dzięki temu można

pracować nad projektem, który jest zapisany np. na pamięci przenośnej.

• Na wybranym dysku utworzyć nowy katalog dla projektów np. d:\STM32F4.

• Pobrać bibliotekę STM32F4xx_DSP_StdPeriph_Lib_V1.3 dla STM32F4 z

http://www.st.com/web/en/catalog/tools/PF257901 i rozpakować bibliotekę do katalogu

d:\STM32F4.

• Pobrać przykładowe projekty STM32F4-Discovery_FW_V1.1.0 dla płytki STM32F4-Discovery

(STM32F4DISCOVERY board firmware package) z

http://www.st.com/web/en/catalog/tools/PF257904 i rozpakować do katalogu d:\STM32F4.

• W katalogu projektów utworzyć nowy katalog np. projekt2. Następnie utworzyć podkatalogi inc,

libraries, lst, obj, src, utilities.

• W katalogu obj będą umieszczane wszystkie pliki po kompilacji, np. plik hex. W inc umieszczamy

wszystkie niezbędne plik nagłówkowe typu *.h. Pliki źródłowe w C lub w asemblerze będą w

podkatalogu src. Pliki biblioteczne będą w podkatalogu libraries. W lst kompilator umieści pliki z tzw.

listingiem. W podkatalogu utilities można wstawić pliki z funkcjami np. do obsługi wyświetlacza LCD.

• Do tworzenia nowego projektu wykorzystamy gotowe pliki, które są umieszczone w podkatalogach

biblioteki STM32F4xx_DSP_StdPeriph_Lib i oprogramowania STM32F4-Discovery_FW i są

przewidziane dla środowiska uVision.

• Z katalogu biblioteki STM32F4xx_DSP_StdPeriph_Lib_V1.3.0\Project\

STM32F4xx_StdPeriph_Templates kopiujemy pliki: main.h, stm32f4xx_it.h i stm32f4xx_conf.h do

naszego podkatalogu projekt2\inc, pliki main.c, stm32f4xx_it.c i system_stm32f4xx.c kopiujemy do

podkatalogu projektu projekt2\scr.

• Z katalogu biblioteki STM32F4xx_DSP_StdPeriph_Lib_V1.3.0\Libraries\-

CMSIS\Device\ST\STM32F4xx\Include) kopiujemy pliki: stm32f4xx.h i system_stm32f4xx.h do

naszego katalogu projekt2\inc.

• Z katalogu biblioteki STM32F4xx_DSP_StdPeriph_Lib_V1.3.0\Libraries\CMSIS\Include kopiujemy

cały podkatalog \CMSIS\Include do naszego podkatalogu projekt1\libraries\CMSIS\Include.

• Z katalogu biblioteki STM32F4xx_DSP_StdPeriph_Lib_V1.0.1\Libraries\

STM32F4xx_StdPeriph_Driver kopiujemy cały podkatalog STM32F4xx_StdPeriph_Driver do naszego

podkatalogu projekt2\libraries\STM32F4xx_StdPeriph_Driver. Katalog zawiera podkatalogi inc i src,

w których są pliki typu h i c zawierające podstawowe funkcje (procedury) do konfiguracji i obsługi

urządzeń peryferyjnych w mikrokontrolerze STM32. Aby zmniejszyć zajętość pamięci na dysku w

projekcie można pozostawić tylko te pliki z których się korzysta.

Page 5: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

• Z katalogu biblioteki STM32F4xx_DSP_StdPeriph_Lib_V1.3.0\Libraries\CMSIS\Device\ST\

STM32F4xx\Source\Templates\arm skopiować tzw. plik startowy startup_stm32f40xx.s do katalogu

głównego projekt2.

• UWAGA !! proszę nie używać polskich liter i znaku spacji przy nazwach katalogów (folderów) i

plików, które będą używane przez projekt i środowisko uVision.

• UWAGA !! przykładowe projekty (gotowe programy) zawarte w katalogu biblioteki

STM32F4xx_DSP_StdPeriph_Lib_V1.3.0\Project\STM32F4xx_StdPeriph_Examples są przewidziane

głównie dla modułu STM32 EVAL a nie dla STM32F4 Discovery. Moduł EVAL jest lepiej wyposażony

w różnego typu peryferia i ma zainstalowany kwarc o częstotliwości 25MHz. Na płytce Discovery

jest rezonator kwarcowy 8MHz dla mikrokontrolera, z tego powodu należy uważać przy

kopiowaniu plików z przykładów.

W skopiowanych plikach main.c, main.h, stm32f4xx_it.c i stm32f4xx_it.h z biblioteki jest już

skonfigurowany i uruchomiony licznik typu SysTick, który jest wykorzystany do generowania opóźnień

czasowych. Należy pozostawić zmienne i funkcje dla tego licznika, przyda się on w kolejnych programach.

Przy pisaniu programu użytkownika pliki main.c, main.h, stm32f4xx_it.c i stm32f4xx_it.h będą

wymagały napisania własnych funkcji i kodu. Z tego powodu należy je zmodyfikować przy pisaniu programu.

Projekt jest tak skonfigurowany że główna funkcja programu main() musi się znajdować w pliku o nazwie

main.c.

Zmiany w plikach aby ustawienia pasowały do STM32F4-Discovery

Skopiowane pliki konfiguracyjne z biblioteki są przewidziane dla rezonatora kwarcowego 25MHz. W

module Discovery jest zainstalowany rezonator kwarcowy 8MHz. Aby poprawnie można było konfigurować

sygnały zegarowe dla poszczególnych fragmentów mikrokontrolera należy wprowadzić drobne zmiany w

niektórych plikach.

W pliku stm32f4xx_conf.h (podkatalog inc) używając edytora w okolicy 32 wiersza wpisać tekst:

#if defined (HSE_VALUE) /* Redefine the HSE value; it's equal to 8 MHz on the STM32F4-DISCOVERY Kit */ #undef HSE_VALUE #define HSE_VALUE ((uint32_t)8000000) #endif /* HSE_VALUE */

Ma to na celu zmianę wartości symbolu HSE_VALUE na wartość rezonatora kwarcowego (8MHz)

zainstalowanego w module STM32F4-Discovery.

Otworzyć plik system_stm32f4xx.c (podkatalog src).

W 57 wierszu zamienić tekst:

* HSE Frequency(Hz) | 25000000 na * HSE Frequency(Hz) | 8000000

W 58 wierszu zamienić tekst:

* PLL_M | 25 na * PLL_M | 8

W 254 wierszu zmienić tekst:

#define PLL_M 25 na #define PLL_M 8

Page 6: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

Najważniejsza jest ostatnia podmiana wartości symbolu PLL_M na 8. Z powoduje to zmianę wartości

podzielnika w systemie zegarowym mikrokontrolera i wtedy częstotliwość taktowania jednostki centralnej

wyniesie 168MHz.

Do dowolnego konfigurowania sygnałów zegarowych w STM32F4, najlepiej użyć aplikacji „Clock

configuration tool for STM32F40x/41x microcontrollers (AN3988)”, która wygeneruje prawidłowy plik

system_stm32f4xx.c.

Page 7: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

3. Tworzenie projektu w środowisku uVision 5

Po utworzeniu katalogu projektu i skopiowaniu wybranych plików z biblioteki do projektu uruchomiamy

program uVision.

Widok ekranu po uruchomieniu programu uVision5 i zamknięciu wszystkich projektów

• Jeżeli jest otwarty jakiś projekt, zamknąć go, w menu Project-Close Project.

• Z menu Project wybrać New uVision Project – pojawi się okienko, wejść do katalogu projektu

projekt2 i wpisać nazwę nowego projektu np. gpio_test.

• Po wpisaniu nazwy i naciśnięciu przycisku Zapisz pojawi się okienko do wyboru firmy i konkretnego

typu mikrokontrolera. Wybieramy firmę STMicroelectronics i układ typu STM32F407VG.

• Po wyborze mikrokontrolera program uVision wie jakie układ posiada parametry. Jest to niezbędne

dla debugera w środowisku uVision.

Następnie pojawia się okienko do wyboru Run Time Environment, naciskamy Cancel.

Page 8: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

Okienko do wyboru Run Time Environment z firmy Keil

Okienko projektu po wstępnym utworzeniu projektu

W okienku Project wybieramy Target1 i klikamy prawym przyciskiem myszki, wybieramy Options for Target1

lub naciskamy ikonkę tzw. czarodzieja na pasku. Pojawi się okienko do ustawiania parametrów i opcji

projektu. Wybieramy zakładkę Target i zmieniamy ustawienia Xtal na 8.0MHz, (taki rezonator kwarcowy jest

zainstalowany na płytce STM32F4-Discovery). Wybieramy opcję „Use MicroLIB” i „Used FPU”.

Page 9: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

Ustawienie częstotliwości rezonatora kwarcowego

Następnie wybieramy zakładkę Output i przyciskiem Select Folder for Objects wskazujemy podkatalog obj w

naszym projekcie.

Przechodzimy do zakładki Listing i przyciskiem Select Folder for Listings wybieramy podkatalog lst w naszym

projekcie.

Page 10: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

Wybieramy zakładkę C/C++ i w okienku Define należy wpisać USE_STDPERIPH_DRIVER, STM32F4XX

Zmuszamy kompilator do wyboru użycia biblioteki do obsługi peryferiów mikrokontrolera. W tej samej

zakładce należy wskazać ścieżki dostępu do biblioteki, plików źródłowych i plików nagłówkowych

wymaganych do projektu. Dokonuje się tego przy pomocy przycisku okienka Include Paths.

Należy wskazać ścieżki dostępu do podkatalogów w projekcie. Jako pierwsze wskazujemy dostęp do

katalogu głównego projektu poprzez symbol kropki „.” (kropka oznacza bieżący katalog), następnie do

podkatalogów biblioteki i podkatalogu inc w projekcie. Wygląd okienka jak na rysunku poniżej.

Page 11: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

Jeżeli będziemy dodawać jakieś pliki do projektu to za pomocą tego okienka wskazujemy kompilatorowi

ścieżkę dostępu do plików.

Przechodzimy do zakładki Linker i wybieramy opcję „Use Memory Layout from Target Dialog”.

W zakładce Debug i wybieramy Use z listy debuger typu ST-Link Debugger. Po naciśnięciu przycisku Settings

pojawia się nowe okienko z trzema zakładkami. Jeżeli połączenie po USB z płytką jest poprawne, to w

zakładce Debug program wykrywa urządzenie Unit (ST LINK/V2) i typ mikrokontrolera SW Device (ARM

CoreSight SW-DP). Należy ustawić tryb pracy debugera Port na SW.

Page 12: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

Po przejściu do zakładki Flash Download w okienku Programming Algoritm dodajemy typ układu (jeżeli go

nie ma), który będzie programowany. Naciskamy przycisk Add i z listy wybieramy STM32F4xx Flash.

Zaznaczamy też opcję Reset and Run. Ustawienia debugera ST-Link potwierdzamy przyciskiem OK.

Page 13: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

Przechodzimy do zakładki Utilities i wybieramy opcję Use Target Driver for Flash Programming.

Page 14: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

Po przygotowaniu parametrów i opcji, kolejnym etapem będzie dołączenie skopiowanych plików i biblioteki

do projektu.

Dołączanie grup i plików do projektu najlepiej wykonać za pomocą okienka Manage Project Items, które

otwiera się ikonką na pasku lub w okienku Project wybieramy Target1 i klikamy prawym przyciskiem myszki,

wybieramy Manage Project Items.

Okienko do konfiguracji grup i plików w projekcie

• Po otwarciu managera w okienku Groups, wybieramy ikonkę New (Insert) i dodajemy grupę o

nazwie StdPeriphDrv, CMSIS i MDK-ARM.

Page 15: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

• Grupę o nazwie Source Group 1 zmieniamy na nazwę UserCode klikając dwa razy lewym przyciskiem

myszki.

• W okienku Groups wybieramy grupę UserCode i wybieramy Add Files to UserCode i wskazujemy na

plik main.c w katalogu projekt2/src i naciskamy przycisk Add. Podobnie postępujemy z plikiem

stm32f4xx_it.c.

• Do grupy CMSIS należy dodać plik system_stm32f4xx.c z podkatalogu src,

• Do grupy StdPeriphDrv należy dodać pliki misc.c, stm32f4xx_gpio.c, stm32f4xx_rcc.c z katalogu

libraries/STM32F4xx_StdPeriph_Driver/src.

• Do grupy MDK-ARM dodajemy plik startup_stm32f4xx.s

• Pliki pomiędzy grupami można przesuwać metodą drag and drop.

Page 16: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

Po zakończeniu operacji kopiowania plików wygląd okienka Project w środowisku uVision przedstawia

rysunek poniżej. Jeżeli na symbolu pliku jest znaczek kluczyka, to oznacza że plik jest tylko do odczytu. Nie

jest możliwa jego edycja (modyfikacja i zapis) w środowisku uVision.

Okienko projektu po dołączeniu podstawowych plików i ikonka do modyfikacji paska Project.

Rozmieszczenie plików w poszczególnych katalogach projektu2 przedstawiono poniżej.

Struktura katalogu projekt2

Struktura podkatalogu projekt2/inc

Struktura podkatalogu projekt2/libraries

Page 17: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

Struktura podkatalogu projekt2/scr

Page 18: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

4. Pierwszy program dla STM32F4

Po dodaniu grup i plików do poszczególnych grup, projekt jest prawie gotowy. Główny plik programu,

main.c zawiera funkcję main() od, której zaczyna się program użytkownika. Otwieramy ten plik klikając na

nazwę pliku w okienku Project. Z powodu, że pliki main.c i main.h zostały skopiowane z biblioteki zawierają

już jakiś kawałek programu w języku C. Musimy tylko dodać swój własny kod aby napisać pierwszy program

na mikrokontroler STM32F4 zamontowany na płytce.

Można też całkowicie skasować zawartość pliku main.c i main.h i wpisać wszystko od początku.

Przy pisaniu programu przydane będą:

• schemat ideowy płytki Discovery,

• plik pomocy dla biblioteki,

• materiały szkoleniowe dla układu STM32F4

Zadaniem programu będzie mruganie diodami LED, które są zamontowane na płytce i są podłączone do

końcówek portu D. Dioda LD4 do PD12, LD5 do PD13, LD6 do PD14 i LD7 do PD15. Aby zaświecić diodę należy

ustawić stan 1 na wybranym wyjściu portu. Funkcja Delay(), która zapewnia opóźnienie czasowe, korzysta z

licznika SysTick (przerwania od tego licznika), który znajduje się w każdym mikrokontrolerze typu Cortex, bez

względu na producenta układu.

Należy dopisać fragmenty kodu w pliku: main.c, a następnie wybieramy Project -> Rebuilt All Target

Files lub naciskamy ikonkę Rebuilt. Po poprawnej kompilacji w okienku Build Output nie powinno być

błędów ani ostrzeżeń. Następnie wybieramy z menu Flash -> Download lub naciskamy ikonkę LOAD i

program zostanie wgrany do mikrokontrolera na płytce. Diody LED powinny mrugać.

Jeżeli jest wszystko w porządku teraz można modyfikować program dopisując własny kod.

Konfigurację licznika SysTick i program do obsługi przerwania od tego licznika można zostawić, przyda się on

w kolejnych programach.

Kopiowanie projektu

Cały projekt wraz z wszystkimi plikami znajduję się w katalogu projekt1, dzięki temu można przenieść

projekt do innego katalogu lub na inny napęd. Po otwarciu projektu z innej lokalizacji nie powinno być

błędów w trakcie kompilacji.

Przed kopiowaniem projektu warto usunąć niepotrzebne tymczasowe pliki, które powstają w trakcie

kompilacji. Najlepiej do tego nadaję się gotowa procedura, Clean Target w menu Project. Dzięki takiej

operacji znacznie zmniejsza się zajętość projektu na dysku.

Page 19: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

5. Dodatkowe materiały i narzędzia

Można pobrać aplikację w Excel-u do konfiguracji mikrokontrolera „Clock configuration tool for

STM32F40x/41x microcontrollers (AN3988)” ze strony http://www.st.com/web/en/catalog/tools/PF257927.

Uruchomienie aplikacji wymaga programu Excel i służy do konfiguracji sygnałów zegarowych w

mikrokontrolerze. Aplikacja generuje gotowy plik system_stm32f4xx.c , który należy skopiować do projektu.

Jeżeli zamierzamy ustawić inną częstotliwość rezonatora kwarcowego lub zmienić niektóre podzielniki

częstotliwości np. dla systemu liczników można do tego celu wykorzystać tą aplikację.

Page 20: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

6. Stworzenie projektu dla STM32F4 w środowisku uVision 5 z

wykorzystaniem przykładu Blinky dla modułu STM32F4 - Discovery

Do stworzenia własnego projektu można też wykorzystać gotowy projekt, który jest dostępny po

zainstalowaniu środowiska uVision 5.1, firmy Keil.

Po uruchomieniu programu uVision, wybieramy ikonkę Pack Installer. Jeżeli nie są jeszcze

zainstalowane pliki dotyczące mikrokontrolerów STM32F4, to należy doinstalować te pliki (wymagany jest

dostęp do Internetu). Po instalacji powinny być widoczne przykłady projektów dla tego mikrokontrolera.

Następnie wybieramy zakładkę Examples i kopiujemy projekt Blinky (STM32F4-Discovery)

Page 21: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

Przy kopiowaniu wybieramy katalog do którego ma być skopiowany projekt. Można też wybrać opcję Launch

uVision (uruchom program uVision po skopiowaniu) lub opcję Use Pack Folder Structure.

Page 22: Podstawowe zasady tworzenia projektu dla STM32F4 w ...ktc.wieik.pk.edu.pl/.../2014/04/...STM32F4-w-środowisku-uVision-5.pdf · W podkatalogu utilities można wstawić pliki z funkcjami

Tworzenie projektu w uVision 5.1 dla STM32F4, wersja z 06.04.2014

Następnie przechodzimy do edytora uVision i z menu Project wybieramy Open Project i wskazujemy na plik

Blinky.uvprojx. Po otwarciu projektu wybieramy Project i Build Project (lub klawisz F7). Projekt powinien się

skompilować bez błędów i można go wgrać do mikrokontrolera na płytce.

Na podstawie tego projektu można pisać własne programy korzystając ze struktury projektu i ustawień

plików konfiguracyjnych. Ustawienia projektu są dla rezonatora kwarcowego XTAL= 8.00MHz i częstotliwości

taktowania SYSCLK = 168.00 MHz oraz częstotliwości HCLK = SYSCLK = 168.00 MHz.