GUIX Studio: mikrokontrolery Renesas Synergy w aplikacjach graficznych [1]
Nowy projekt musi być spersonalizowany: trzeba mu nadać nazwę – w naszym przypadku będzie to GUIApp, następnie wybieramy kompilator (GCC ARM Embeded), oraz podajemy ścieżkę dostępu do pliku licencyjnego kompilatora (jeżeli wcześniej nie była podana). W kolejnym kroku zostanie wybrany z listy wspieranych modułów ewaluacyjnych: moduł S7G2 SK oraz debuger J-Link ARM. Następnie w konfiguracji wybieramy opcję S7G2-SK BSP – rysunek 6. Teraz konfigurator utworzy szablon projektu pokazany na rysunku 7.
W tym momencie możemy przystąpić do konfigurowania projektu nazwanego przez nas GUIApp. Jest to wykonywane w oknie Synergy Configuration GUIApp. To okno otwiera się automatycznie po wygenerowaniu szablonu, ale można je otworzyć klikając na plik configuration.xml umieszczony w oknie projektu (rysunek 7) lub klikając na przycisk Synergy Configuration.
Okno konfiguracji ma kilka zakładek: Summary, BSP, Clock, Pins itd. Konfiguracja jest dość skomplikowana i będzie się odbywała w wielu krokach. Musimy skonfigurować cały driver sterowania wyświetlaczem począwszy od warstwy najwyższej, a skończywszy na warstwie sprzętowej. Obsługa wyświetlacza będzie realizowana pod kontrolą RTOS ThreadX.
Nasza aplikacja ma budowę warstwową. Najwyższa warstwa aplikacji będzie zwierała procedury wygenerowane przez aplikację GUIX Studio, oraz procedury użytkownika odpowiedzialne za synchronizację działania całej aplikacji. Kolejna niższa warstwa, to warstwa HAL (Hardware Abstraction Layer) zawierająca procedury – drivery przeznaczone do obsługi peryferiów mikrokontrolerów Synergy MCU. Jednak HAL jest warstwą niezależną od szczegółowych rozwiązań sprzętowych (hardware) różnych dla różnych typów mikrokontrolerów. Ta niezależność pozwala na użycie takich samych procedur na przykład obsługi timerów dla wszystkich typów mikrokontrolerów.
Na rysunku 8 jest pokazana schematycznie warstwa HAL w otoczeniu warstw wyższych i niższej BSP.
Najniższa warstwa BSP (Board Support Package) zapewnia współpracę aplikacji z konkretnym typem mikrokontrolera i jej procedury muszą być napisane dla każdego z nich osobno. SSP zawiera warstwę BSP dla modułów ewaluacyjnych DK-S7G2, PE-HMI1 i SK-S7G2.
Na rysunku 9 jest pokazana modułowa budowa biblioteki SSP z umiejscowieniem warstwy BSP. Jak widać na rysunku 8 SSP dostarcza gotowe rozwiązania do obsługi biblioteki graficznej, interfejsu USB, rozwiązań sieciowych i systemu plików oraz własny system wielozadaniowy RTOS ThreadX.
Projekt interfejsu będzie się opierał na module portu GUIX Synergy umieszczonego w warstwie framework biblioteki SSP. Moduł portu i jego współpraca z warstwami niższymi HAL i warstwą fizyczną został schematycznie pokazany na rysunku 10. Port umożliwia współpracę aplikacji Express Logic GUIX z warstwami Framework i niższymi.