Ankieta: Jaki system operacyjnym preferujesz
Ankieta jest zamknięta.
Windows 60.78% 31 60.78%
Linux 31.37% 16 31.37%
MAC/OS 7.84% 4 7.84%
Inny 0% 0 0%
Razem 51 głosów 100%
*) odpowiedź wybrana przez Ciebie [Wyniki ankiety]

Odpowiedz 
 
Ocena wątku:
  • 1 Głosów - 5 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Programowanie ARM, nauka, środowiska programistyczne IDE
SQ8MVY Offline
Paweł
****

Liczba postów: 724
Dołączył: 30-07-2011
Post: #158
RE: Programowanie ARM, nauka, środowiska programistyczne IDE
Witaj,

Ja też początkujący jestem......

(19-08-2016 9:13)QRP73 napisał(a):  ... w pliku stm32f4xx brakuje deklaracji pod LTDC...

Tak, obecna wersja EmBitz-a bazuje na starych wersjach bibliotek, i w przypadku nowszych STM-ów brakuje deklaracji (opisu) peryferii. Można dodać je ręcznie samemu, lub podmienić pliki na nowsze wersje. Dlatego właśnie należy wklejać kompletne archiwum projektu. W naszych przykładach, które udostępniliśmy do tej pory, brakujące definicje są dodane, ale tylko te które tyczą się użytego peryferiala np. SPI5 w przykładach obsługi LCD przez SPI.

Z ciekawości zaglądnąłem do Twojej paczki i zauważyłem, że dodałeś nowe wersje plików stm32f4xx.h oraz stm32f429xx.h zastępując te defaultowe z Embitza. Jak zauważyłes zapewne, w tym podmienionym stm32f4xx.h jest przyjęta inna zasada. To za pomocą niego inkludowane są odpowiednie pliki nagłówkowe z definicjami rejestrów - w tym przypadku jest dodatkowo dołączany stm32f429xx.h dotyczący STM-a na naszej płytce Discovery. W pliku dostarczanym przez EmBitza (stm32f4xx.h) już są zawarte takie definicje, ale "wybrakowane" -jak sam zauważyłeś.

I tu mała uwaga. Do większości Twoich plików dodawałeś na początku dyrektywę preprocesora #define STM32F429xx. Oczywiście jest ona potrzebna, aby poprzez plik nagłówkowy stm32f4xx.h został dodatkowo dołączony stm32f429xx.h.
Ale tego się tak nie robi, bo jak miałbyś w projekcie np. 500 plików żródłowych to do wszystkich byś musiał dodać to #define STM32F429xx.
A co byś zrobił, jak chciałbyś część plików z tego projektu użyć w innym projekcie z innym modelem STM-a - dla przykładu stm32f439 ? Trzeba by wszystko edytować i zmieniać na np #define STM32F439xx !!!

Te definicja dla preprocesora #define STM32F429xx musi być widziana globalnie w projekcie. Dlatego też nie umieszcza się jej w plikach źródłowych projektu, TYLKO dopisuje się do parametrów kompilatora w postaci STM32F429xx. A pole do dopisania znajduje się w Build options. Prawy klawisz na nazwie aktywnego projektu w oknie z drzewem projektów. Należy ten wpis dodać do obu profili projektu: Debug oraz Release.

İmage


Generalnie o prawidłowe wpisy powinien zadbać kreator projektu EmBitza, ale że bazuje na starych wersjach bibliotek, nie robi tego. Nowa wersja EmBitza ma mieć już to poprawione, bo i będzie mieć nowsze biblioteki.
W innym środowisku IDE konfiguracja będzie w innym miejscu. Dla przykładu IDE CodeLite:

İmage

(19-08-2016 9:13)QRP73 napisał(a):  Nie moglem sobie poradzic z naglowkiem pod procesor stm32f429, poniewaz EmBitz nie ma mozliwosci wybrania tego modelu.......

Jestem pewien, że stm32f429 jest wspierany w kreatorze projektu EmBitz.
İmage


Trochę z innej "beczki"...

Zauważyłem jeszcze jedną niepokojącą praktykę. Naszym językiem jest język polski, którym się na co dzień posługujemy. Jeżeli do pisanego kodu dodawane są opisy, to niech będą w naszym ojczystym języku, a nie jak można zauważyć w modzie od kolegi BUBAMUBA, jakąś łamaną angielszczyzną ! To ma być dla nas zrozumiałe...
Oczywiście uwaga ta nie dotyczy się kodu / bibliotek, które importujemy od kogoś ( cmsis, hal, spl oraz inne.....) bo szkoda czasu na tłumaczenie, tylko tych, które sami piszemy. Komentujmy nasze przykłady, programy, biblioteki, które będą zamieszczane na forum w naszym ojczystym języku.

73 Paweł
(Ten post był ostatnio modyfikowany: 19-08-2016 18:32 przez SQ8MVY.)
19-08-2016 11:15
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Wiadomości w tym wątku
RE: Programowanie ARM, nauka, środowiska programistyczne IDE - SQ8MVY - 19-08-2016 11:15

Skocz do:


Użytkownicy przeglądający ten wątek: 2 gości