[Źródło: https://riverdi.com/wp-content/uploads/datasheet/Revelation_Board_Datasheet_Rev.1.1.pdf]
Pobranie projektu:
Na samym początku należy postępować zgodnie z instrukcją udostępnioną przez autora projektu na stronie GitHub:
- git clone https://github.com/riverdi/riverdi-eve.git
Następnie należy załadować projekt do programu System Workbench:
- File -> New -> Other -> C/C++ -> Makefile Project with Existing Code
Ostatnim elementem jest zmiana nazwy bądź zmiana komendy budującej program czyli zmiana nazwy pliku Makefile.stm32 na Makefile.
Teraz po kliknięciu przycisku Build All program powinien zbudować pliki wykonywalne w postaci *.hex oraz *.bin. Można je wgrywać na płytkę za pomocą programatora oraz programu STLink Utility.
Program po kliknięciu na poszczególne pliki projektu zacznie generować błędy. Można je pominąć ponieważ w ich przypadku kompilacja zakończy się powodzeniem. Dopiero jeśli w projekcie zostanie użyte elementy faktycznie powodujące błędy to nastąpi przerwanie kompilacji.
Jednak takie ilości wygenerowanych błędów mogą trochę zaciemniać obraz całego projektu. Wobec tego poniżej krótka instrukcja pozwalający na usunięcie wszystkich błędów zgłaszanych przez System Workbench.
Zanim jednak taka możliwość nastąpi należy zmodyfikować kilka ustawień w projekcie.
Na samym początku należy wprowadzić ustawienia wyświetlacza:
W moim przypadku do testów wykorzystuje wyświetlacz 4'3 cale z sterownikiem FT801. W tym przypadku ustawienia będą następujące:
Następnym elementem jest wybór sterownika graficznego:
Teraz po kliknięciu przycisku Build All program powinien zbudować pliki wykonywalne w postaci *.hex oraz *.bin. Można je wgrywać na płytkę za pomocą programatora oraz programu STLink Utility.
Program po kliknięciu na poszczególne pliki projektu zacznie generować błędy. Można je pominąć ponieważ w ich przypadku kompilacja zakończy się powodzeniem. Dopiero jeśli w projekcie zostanie użyte elementy faktycznie powodujące błędy to nastąpi przerwanie kompilacji.
Jednak takie ilości wygenerowanych błędów mogą trochę zaciemniać obraz całego projektu. Wobec tego poniżej krótka instrukcja pozwalający na usunięcie wszystkich błędów zgłaszanych przez System Workbench.
Zanim jednak taka możliwość nastąpi należy zmodyfikować kilka ustawień w projekcie.
Na samym początku należy wprowadzić ustawienia wyświetlacza:
- #else
- #error "Please define timings in riverdi/modules.h file for custom displays"
- #define DispWidth xxxL
- #define DispHeight xxxL
- #define DispHCycle xxxL
- #define DispHOffset xxxL
- #define DispHSync0 xxxL
- #define DispHSync1 xxxL
- #define DispVCycle xxxL
- #define DispVOffset xxxL
- #define DispVSync0 xxxL
- #define DispVSync1 xxxL
- #define DispPCLK x
- #define DispSwizzle x
- #define DispPCLKPol x
- #define DispCSpread x
- #define DispDither x
- #endif
W moim przypadku do testów wykorzystuje wyświetlacz 4'3 cale z sterownikiem FT801. W tym przypadku ustawienia będą następujące:
- #else
- #define DispWidth 480L
- #define DispHeight 272L
- #define DispHCycle 548L
- #define DispHOffset 43L
- #define DispHSync0 0L
- #define DispHSync1 41L
- #define DispVCycle 292L
- #define DispVOffset 12L
- #define DispVSync0 0L
- #define DispVSync1 10L
- #define DispPCLK 5
- #define DispSwizzle 0
- #define DispPCLKPol 1
- #define DispCSpread 0
- #define DispDither 1
- #endif
Następnym elementem jest wybór sterownika graficznego:
- #if defined (EVE_1)
- #define FT80X_ENABLE
- #elif defined (EVE_2)
- #define FT81X_ENABLE
- #elif defined (EVE_3)
- #define BT81X_ENABLE
- #define FT81X_ENABLE
- #else
- #error "Please choose generation of Embedded Video Engine (EVE_1, EVE_2, EVE_3)"
- #endif
Wobec tego do projektu dołączam:
- #define EVE_1
Dalej należy dołożyć definicję biblioteki w pliku stm32:
- #include "stm32f031x6.h"
Następnie należy dołożyć definicję biblioteki dla STM32 w pliku stm32/platform.h:
- #include "stm32f0xx_hal.h"
Kolejnym krokiem jest podanie ścieżek do bibliotek:
Po tej operacji należy przebudować indeks, wyczyścić projekt oraz najlepiej przed ponownym zbudowaniem projektu jeszcze raz uruchomić program. Po tych operacjach ilość zgłaszanych błędów powinna zostać zredukowana do zera.
W kolejnych postach postaram się przenieść projekt do obsługi innych procesorów STM32.