Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 mar 2024, o 19:56


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 5 sty 2017, o 18:51 
Offline
Nowy

Dołączył(a): 08 sty 2016
Posty: 5
Pomógł: 0

Cześć

Mam kłopot, wykonuję ćwiczenia według "Poradnik STM32 v1_9" z elektrody,Chodzi o cykl STM32 bez bibliotek SPL.
Problem jest kiedy staram się odebrać dane w przerwaniu, po wysłaniu jakiegoś znaku z terminala, procesor się zawiesza.
Natomiast jeśli wyłączę przerwania NVIC_EnableIRQ(USART1_IRQn); a całą procedurę obsługi przerwania przeniosę do
głównej pętli while to wszystko śmiga wyśmienicie.
Ktoś ma może jakieś sugestie?

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2017, o 19:03 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 103
Pomógł: 3

pokaż kolego zawartość pliku startup_stm32.s z folderu startup. Bardzo prawdopodobne, że nie masz zdefiniowanych wektorów przerwań.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2017, o 12:44 
Offline
Nowy

Dołączył(a): 08 sty 2016
Posty: 5
Pomógł: 0

Proszę:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2017, o 13:08 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 103
Pomógł: 3

Niech kolega spróbuje zamienić zawartość na taką:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2017, o 13:49 
Offline
Nowy

Dołączył(a): 08 sty 2016
Posty: 5
Pomógł: 0

No i wszystko śmiga, dziękuje Ci bardzo,
Nie rozumiem czemu tylko kompilator nie wygenerował, moim zdaniem tak podstawowych wektorów przerwań jak to Uarta.
Ale jeszcze wiele przede mną do zrozumienia, dziękuje jeszcze raz
Pozrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2017, o 14:10 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 103
Pomógł: 3

Nie ma za co :)

Swego czasu jak zaczynałem swoją naukę STM-ów (też korzystając z tego samego poradnika) miałem ten sam problem. Zakładam, że kolega również używa System Workbench for STM32 ac6 tools? Co ciekawe, gdy wygenerujemy nowy projekt ale korzystając z bibliotek SPL to wektory przerwań wygenerują się poprawnie. Jest to właśnie oryginalny plik z projektu z wykorzystaniem SPL. Przy programowaniu na samych rejestrach, niestety mamy same 0.

Jedyna moja modyfikacja to zakomentowanie linii
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

z tego co pamiętam, to ta funkcja zawiera konfigurację zegara. Zamieniłem ją na swój własny odpowiednik, w którym rozpędzam zegar do moich własnych potrzeb i wywoływana jest jako pierwsza w funkcji main.

Obydwa pliki różnią się jeszcze kilkoma innymi rzeczami oprócz wektorów przerwań, niestety specjalistą nie jestem i nie powiem jakie one mają wpływ na całokształt.

Pozdrawiam :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2017, o 17:57 
Offline
Nowy

Dołączył(a): 08 sty 2016
Posty: 5
Pomógł: 0

Dokładne, STM32 Workbench, Ale Powiem Ci, że również tworzyłem nowe projekty a z wykorzystaniem SPL i startup byl taki sam.

W zasadzie, to postepuje tak,że tworze dwa projekty jeden z bibliotekami SPL a drugi bez.
I do tego drugiego projektu na którym zamierzam pracować kopiuje sobie pliki:
stm32f0x.h
core_cm3.c
core_cm3.h
Nie wiem czy to jest dobre podejście ale wszystko to jakoś smiga, dodatkowo dorzucam sobie jeszcze pliki system_stm32f10x.h oraz system_stm32f10x.h w , których ustawiam sobie w prosty sposób czestotliwośc procesora z jaką chcę pracować.
Ale jeśli właśnie chodzi o plik startup to czy tworzę projekt z SPL czy pusty to mi on generuje się on tak samo biedny.
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2017, o 18:51 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 103
Pomógł: 3

U mnie struktura katalogów wygląda tak: (korzystam z STM32F103RBT6)

Kod:
LinkerScript.ld
inc
   cmsis_gcc.h
   core_cm3.h
   stm32f103xb.h
src
   main.c
startup
   startup_stm32.s
   sysmem.c
+foldery z moimi bibliotekami


z tym, że w pliku core_cm3.h mam:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


ponadto w ustawieniach w C/C++ Build ->Settings w zakładce Dialect dodaję -std=gnu11, gdyż inaczej np. pętla
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

nie kompiluję się, gdyż wymagana jest taka składnia:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


i dodaję projekt w zakładce Run Configurations...

To jest już taki mój rytuał tworzenia nowego projektu :)

A co do generowania wektorów przerwań w SPL to z tego co kojarzę, to mi bezproblemowo wszystko wygenerował do pliku o nazwie startup_stm32f10x_md.S, ale robiłem to dość dawno więc mogło coś już ulec zmianie albo mi się już coś myli.

Co do konfiguracji zegara, to mam własną funkcję, dlatego wywaliłem SystemInit.

Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO