Skocz do zawartości

GTK i OpenSTLinux na STM32MP157A


FlyingDutch

Pomocna odpowiedź

Cześć,

mam do napisania dużą aplikację z dość skomplikowanym graficznym GUI dla Linuxa (dystrybucja: OpenSTLinux dla STM32MP1) działającego na dedykowanej (własne PCB) płytce z MCU STM32MP157C. Aplikacja ma działać na 12 calowym monitorze z interfejsem dotykowym na płytce opartej na STM32MP157C. Aktualnie piszę ten software w oparciu o zestaw uruchomieniowy STM32MP157C-DK2 - patrz link:

https://kamami.pl/zestawy-uruchomieniowe-stm32/574376-stm32mp157c-dk2-zestaw-startowy-z-mikroprocesorem-stm32mp157c.html

Docelowy hardware będzie opart o moduł "VisionSOM-STM32MP1 (SLS18)" firmy SoMLabs:

https://somlabs.com/product/visionsom-stm32mp1/

z dedykowaną płytką bazową z dodatkowymi peryferiami (własne PCB). Już jakiś czas temu po analizie problemu wybrałem tą platformę sprzętową jako optymalną (według mnie) dla tego projektu.

Do 'develompmentu' używam Debiana 9.4 ze skonfigurowanym kompilatorem skrośnym (ARM) dla OpenSTLinux według  tutoriala firmy STM z tej strony:

https://wiki.st.com/stm32mpu/index.php/STM32MP1_Distribution_Package

Wszystko ładnie działa - przykładowe proste programy z GTK po załadowaniu na zestaw uruchomieniowy z działającym OpenSTLinux wykonują się poprawnie.

Do tworzenia GUI w GTK pragnę używać pakietu Glade na Debiabnie,  chociażby z powodu, że jest bardzo dobry wielo-częściowy tutorial o tworzeniu aplikacji GTK z użyciem Glade na Youtube - patrz link:

Do programowania aplikacji w GTK można używać wielu języków programowania : C, C++, Python, Perl itp. Chociaż znam trochę Pythona i Perl'a dla mnie oczywistym wyborem jest język C lub C++ które znam dużo lepiej niż Python'a czy Perl'a. I tutaj mam dylemat, czy wybrać C (nieobiektowe) czy obiektowe C++. Obiektowe C++ ma dużo zalet, można korzystać z dziedziczenia, polimorfizmu i wszystkich zalet języka obiektowego. Pisanie w stylu C (nieobiektowym) nie ma tych zalet. Obawiam się jednak o problemy wydajnościowe i zajętości pamięci w przypadku C++.

I tutaj mam pytanie do osób, które mają doświadczenie w pisaniu aplikacji z użyciem GTK, czy wybór C++ nie pogorszy wydajności programu. Jednak platforma STM32MP1 ma swoje ograniczenia (chociażby małą ilość pamięci DDR i procesor o ograniczonym taktowaniu. Aplikacja musi bardzo szybko reagować na działania użytkownika na ekranie dotykowym.

Co wybrać C++ czy C?

Będę bardzo wdzięczny za podpowiedź 😉

Pozdrawiam

  • Lubię! 2
Link do komentarza
Share on other sites

 

Moim zdaniem C. Cały GTK+ napisany jest w C, pod spodem nasz biblioteki Glib i GObject czyli coś w rodzaju obiektowości. Ale tak jak zaznaczyłem - to moje zdanie i nie każdy się z tym musi zgodzić.

Przy okazji - nigdy nie lubiłem glade, w C tworzyłem widgety bezpośrednio w kodzie, w Pythonie XML-e też robiłem ręcznie... chyba szybciej to wychodzi, szczególnie jeśli się o jakimś widgecie zapomniało 🙂

  • Lubię! 2
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.