logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[stm32]Zawieszanie się FreeRTOS'a pod Eclipsem dla STM32

goral24061988 09 Kwi 2011 15:31 3847 10
REKLAMA
  • #1 9379226
    goral24061988
    Poziom 10  
    Posty: 29
    Pomógł: 1
    To ja tak jeszcze raz:
    Drogi moderatorze _Robak_ jak w treści poprzedniego posta wpisałem linki do miejsca skąd można pobrać projekty to zostały one usunięte jako niezgodne z regulaminem forum. Jak załadowałem projekty w treść wiadomości to znów zostały usunięte, gdyż angażują punkty innych czytelników forum "nikt nie chce poświęcać punktów na moje wypociny". Prosiłbym abyście się zastanowili jaka jest ogólna zasada forum bo myślę, że chyba pomaganie innym. Nie wiem dlaczego mój post wylądował w koszu.

    Kolego Nsvinc, nie wymagam od nikogo pomocy i jak nie chcesz pomóc i poświęcać swoich "cennych punktów" no to po prostu tego nie rób. Zadałem sobie tyle trudu, że zanim wstawiłem swój post na forum zrobiłem to wszystko co radzisz. Doczytałem co może powodować hard fault exception zanim wstawiłem post. Nie bardzo rozumiem jaki jest powód błędów gdyż bliźniacze projekty pod keilem działają i sądzę, że coś innego jest ich przyczyną. Gdybym sam umiał sobie poradzić ze swoim problemem to nie rozpoczynałbym dyskusji i nie wstawiał bym projektów, które angażują "cenne" punkty innych użytkowników.
    Zrobiłem to bo moim zdaniem odpaleni gotowego projektu wymaga jak najmniej własnego zaangażowania osób, które ewentualnie chcą pomóc.

    Zamieszczam mój post jeszcze raz. Prosząc o pomoc osoby które naprawdę chcą pomóc. Spodziewam się, że i tak post pewnie znowu wyląduje w koszu,
    albo zostanie napiętnowany.

    //------------------------------------------------------------------------

    Witam,

    Próbuję napisać 1 program dle FreeRTOS'a i STM32f1007CL pod Eclipsem i mam taki problem, że aplikacja się zawiesza, gdyż następuje Hard Fault Exception.
    Program ma migać 2 diodami w 2 osobnych taskach z różną częstotliwością. Robiłem już to pod Keilem i wszystko było ok. Teraz próbuje zrobić to samo pod Eclipsem i po wejściu już do Tasków program się zawiesza. Poniżaj zamieszczam linki do spakowanych projektów. działającego dla Keila, (działającego dla AVRstudio na mikrokontroler ATmega128) i niedziałającego dla Eclipsa. Ma ktoś jakieś pomysły? Proszę o pomoc bo walczę z tym już od 3 dni. Uważam, że powodem zawieszania się programu nie jest przepełnienie stosu, gdyż przydzielenie większej ilości stosu dla zadania wcale nie wydłuża poprawności jego działania. Program wchodzi do każdego z Tasków, w każdym zapala diodę ale już nie następuje wygaszenie żadnej z diod.
    [/code]
    Załączniki:
    • projktyFreeRTOS.zip (2.57 MB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 9379378
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    Początki zawsze są trudne, także i na forum, i zapewne nikt nie chce się nad Tobą pastwić usuwając temat czy moderując posty. Ale powinieneś dołożyć starań i dostosować się do panujących na forum reguł (każdy z nas musiał), a rolą moderatorów jest trzymanie poziomu, co w znakomitej większości przypadków robią poprawnie.

    goral24061988 napisał:
    Prosiłbym abyście się zastanowili jaka jest ogólna zasada forum bo myślę, że chyba pomaganie innym.

    My i wiele osób, którym pomagamy wiemy jaka jest cyt. "ogólna zasada forum", ale Ty jeszcze nie.

    goral24061988 napisał:
    ... jak załadowałem projekty w treść wiadomości to znów zostały usunięte, bo nikt nie chce poświęcać punktów na moje wypociny.

    To może wykorzystasz odpowiednią opcję i usuniesz punkty, zamiast użalać się nad sobą?


    A jeżeli masz problem z usunięciem punktów (ja kiedyś miałem) to usuń załącznik i wstaw go jeszcze raz w tym samym poście zaznaczając odpowiednią opcję.
  • REKLAMA
  • #3 9379412
    goral24061988
    Poziom 10  
    Posty: 29
    Pomógł: 1
    Dondu: Z tymi punktami to masz rację nie wiedziałem, o czymś takim, mój błąd przepraszam.
  • #5 9381601
    michalko12
    Specjalista - Mikrokontrolery
    Posty: 3394
    Pomógł: 462
    Ocena: 321
    Spróbuj te zmienne zadeklarować jako static
    xHandleTaskLED1, xHandleTaskLED2, xLastFlashTime
  • REKLAMA
  • #6 9382289
    Smashing
    Poziom 20  
    Posty: 513
    Pomógł: 18
    Ocena: 12
    Witam
    Może używasz innego skryptu linkera lub StarUp dla Keil i Ecpilse.
    W main.c masz dwa vTickTask1 i vTickTask2.
    Zobacz czy to ci działa (cały Setup procesora dałem od kolegi Freddie Chopin)
    + Rtos611 (ostatni ze strony).
    Załączniki:
    • Stm32Rtos.zip (334.32 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #7 9383064
    goral24061988
    Poziom 10  
    Posty: 29
    Pomógł: 1
    michalko12:

    Zmieniłem xHandleTaskLED1, xHandleTaskLED2 na static, ale nic to nie pomogło.
    xLastFlashTime nie można: error "initializer element is not constant".
    W keilu żadnej tej zmiennej nie miałem jako static a program działał więc podejrzewam, że nie tu jest problem.

    Dodano po 4 [godziny] 40 [minuty]:

    Smashing:

    Jak wrzucam Twój program do Eclipsa to się nawet nie kompiluje "no rule to build target".

    Dodano po 6 [minuty]:

    Podejrzewam, że błąd w moim programie jest gdzieś w pliku startup.c

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Są tu wektory przerwań. Trzeba było zdefiniować 3:
    vPortSVCHandler
    xPortPendSVHandler
    xPortSysTickHandler

    Jako, że nie mogłem użyć wektorów z pliku port.c bo mi ich plik startup.c nie widział to je poprostu przekleiłem z pliku port.c do startup.c wraz z niezbędnymi
    definicjami #define. Myślę, że coś tu jeszcze jest nie tak.
  • #8 9386057
    Smashing
    Poziom 20  
    Posty: 513
    Pomógł: 18
    Ocena: 12
    Witam
    Czym to kompilujesz , bo codesourcery chyba nie.
  • #9 9389189
    goral24061988
    Poziom 10  
    Posty: 29
    Pomógł: 1
    Oczywiście, że tak.
    Mam stanowisko skonfigurowane według Lucjana Bryndzy
    Załączniki:
    • wolne-narzędzia-prog-sprzętowe.pdf (1.21 MB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #10 9392428
    goral24061988
    Poziom 10  
    Posty: 29
    Pomógł: 1
    Rozwiązałem w końcu problem. Dodaje działający projekt FreeRTOS Eclipse dla STM32F107, który miga dwiema diodami w dwóch niezależnych zadaniach.
    Wszystkim, którzy mieli podobny problem załączam gotowy projekt który należy tylko skompilować. Może nie jest on kunsztem programistycznym ale działa. Pozdrawiam.
    Załączniki:
    • ProjectSTM32EclipseFreeRTOS.zip (346.57 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #11 9580236
    Ratoll
    Poziom 1  
    Posty: 1
    Witam,

    Czy mógłbyś w 2 zdaniach napisać, na czym polegał problem, poza zmianą nazw wywoływanych handlerów w tablicy wektorów ?
    Sam walczę z właśnie FreeRTOS'em i zachowuje się on bardzo dziwnie. Raz działa, raz nie działa, raz uruchamia się prawidłowo tylko jeden wątek ..

Podsumowanie tematu

✨ Dyskusja dotyczy problemów z FreeRTOS w środowisku Eclipse dla mikrokontrolerów STM32. Użytkownik zgłasza trudności z usuwaniem postów oraz zrozumieniem zasad forum. W odpowiedziach poruszane są kwestie związane z deklaracją zmiennych jako static, różnicami w skryptach linkera oraz problemami z kompilacją projektów. Użytkownik ostatecznie rozwiązuje problem, udostępniając działający projekt FreeRTOS dla STM32F107, który realizuje miganie diodami w niezależnych zadaniach.
REKLAMA