Z czym to się je ?
Właśnie, czym jest to magiczne urządzenie? W zasadzie jest to w pełni wyposażony komputer, uzupełniony o kilka dodatkowych peryferiów. Przede wszystkim na pokładzie znajdziemy procesor ARM (Cortex M4) pracujący z częstotliwością 168 MHz. Dodatkowym atutem jest tutaj także jednostka FPU, sprzętowo wspomagająca obliczenia na liczbach zmiennoprzecinkowych. Pamięci RAM nie mamy dużo - do 192 kB (zależnie od wersji urządzenia). Na pokładzie znajdziemy jeszcze DSP, akcelerometr, mikrofon, wyjście audio, SDIO (Secure Digital Card Input/Output), USB, UART, cztery programowalne diody led i przycisk. Dodatkowo masa złącz GPIO (General Purpose Input/Output). Całość w bardzo przystępnej cenie. Nic tylko brać i programować!
Narzędzia
Żeby móc komunikować się z evalem (i jednocześnie go zasilić), potrzebujemy kabla mini USB (nie mylić z mikro). Niestety, nie jest on dołączany do zestawu. Na szczęście płytka wyposażona jest w programator (ST-LINK/V2), więc nie jesteśmy narażeni na dodatkowe koszta. Sterowniki do niego, można ściągnąć tu.
Zostało zatem wybranie IDE. Wybór mamy bardzo szeroki, ja jednak skupię się tylko na jednym - CooCox. Jest to darmowe, oparte na Eclipsie środowisko, z wbudowanym debugerem i bezpośrednią możliwością programowania płytki. Do naszych celów wystarczy w zupełności. Musimy także zaopatrzyć się w dedykowane GCC. Pozostaje nam więc tylko instalacja i krótki kurs pilotażu.
Pierwsze kroki
Mając wszystko przygotowane, możemy wnieść trochę więcej życia, w ten skostniały sprzęt. Po instalacji wszystkich wyżej wymienionych programów, uruchamiamy CoIDE. Naszym oczom ukaże się znana sylwetka Eclipsowego środowiska. Przechodzimy do menu Project. Wybieramy Select Toolchain Path i tam wklejamy ścieżkę do folderu bin, pakietu GCC (domyślnie jest to C:\Program Files\GNU Tools ARM Embedded\4.7 2012q4\bin). Następnie tworzymy nowy projekt, korzystając z przycisku na ekranie powitalnym. Podajemy nazwę projektu a później chip na którym bazowany jest eval - STM32F4x (gdzie x oznacza konkretną rewizję urządzenia, opisaną na procesorze). Kolejnym krokiem będzie wybranie komponentów. Z dostępnej listy zaznaczamy RCC. Automatycznie powinny dodać się CMSIS BOOT oraz M4 CMSIS Core. Do tego dodajemy jeszcze GPIO i jesteśmy gotowi by uruchomić pierwszy program. W liście plików (dodanych automatycznie podczas wyboru komponentów) znajdujemy main.cpp i wklejamy poniższy kod:
Następnym razem zajmiemy się dokładną analizą powyższego przykładu. Tymczasem to tyle.
Solucja, a właściwie workspace, do pobrania tu.
#include "stm32f4xx.h" #include "stm32f4xx_gpio.h" #include "stm32f4xx_rcc.h" GPIO_InitTypeDef GPIO_InitStructure; void delay(volatile unsigned int uTime) { while((uTime--) > 0) { } } void main(void) { RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13| GPIO_Pin_14| GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOD, &GPIO_InitStructure); while(1) { GPIO_ToggleBits(GPIOD, GPIO_Pin_12); delay(100000); GPIO_ToggleBits(GPIOD, GPIO_Pin_13); delay(100000); GPIO_ToggleBits(GPIOD, GPIO_Pin_14); delay(100000); GPIO_ToggleBits(GPIOD, GPIO_Pin_15); delay(100000); } }Po kompilacji (Project -> Build albo F7) i wlaniu softu na płytkę (Flash -> Program Download), nasz STM powinien pociesznie zamrugać do nas swoimi wszystkimi kolorowymi diodami.
Następnym razem zajmiemy się dokładną analizą powyższego przykładu. Tymczasem to tyle.
Solucja, a właściwie workspace, do pobrania tu.
Brak komentarzy:
Prześlij komentarz