Elektroda.pl
Elektroda.pl
X
Computer Controls
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

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

09 Kwi 2011 15:31 3346 10
  • Poziom 9  
    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]
  • Computer Controls
  • Moderator Mikrokontrolery Projektowanie
    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ę.
  • Computer Controls
  • Poziom 9  
    Dondu: Z tymi punktami to masz rację nie wiedziałem, o czymś takim, mój błąd przepraszam.
  • Specjalista - Mikrokontrolery
    Spróbuj te zmienne zadeklarować jako static
    xHandleTaskLED1, xHandleTaskLED2, xLastFlashTime
  • Poziom 20  
    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).
  • Poziom 9  
    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
    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.
  • Poziom 20  
    Witam
    Czym to kompilujesz , bo codesourcery chyba nie.
  • Poziom 9  
    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.
  • Poziom 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 ..