Skocz do zawartości
FlyingDutch

GTK i OpenSTLinux na STM32MP157A

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

Udostępnij ten post


Link to post
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

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...