Skocz do zawartości

Oshel

Użytkownicy
  • Zawartość

    3
  • Rejestracja

  • Ostatnio

Reputacja

1 Neutralna

O Oshel

  • Ranga
    1/10

Informacje

  • Płeć
    Mężczyzna
  1. Przepraszam za wprowadzanie bałaganu. Faktycznie, nie powinienem zaczynać wątku jeśli moje problemy pojawiają się z innym zestawem. Jednak mimo wszystko wydaję mi się, że problem nie zależy do sprzętu- w końcu każdy mikrokontroler konfiguruje się w Cubie w ten sam sposób i importuje go dokładnie tak samo. Sprawdziłem dodatkowo jak to wygląda na F7 i F3 i problem sie powtarza. Nawet spróbowałem na TrueStudio i dalej to samo. Więc śmiem twierdzić, że to jakaś dziwna kombinacja systemu i innych zmiennych która występuje bardzo rzadko (jak pisałem wcześniej- znalazłem tylko jeden temat). Reasumując- jeśli program z niewiadomych przyczyn nie chce wyjść z takiego kawałka kodu: if (HAL_XXX_Init(&hxxx) != HAL_OK) { Error_Handler(); } to zmień optymalizację na "None".
  2. Problem może i jest rozwiązany, ale środowisko dalej nie działa jak trzeba i już powoli zniechęcam się do SW4STM32. Następnym problemem jest brak poprawnej inicjalizacji peryferium- ta sama funkcja (HAL_SPI_Init(&hspi1)), tyle, że w strukturze hspi1 nic się nie zmienia podczas jej wykonywania przez co peryferium najzwyczajniej w świecie się nie inicjalizuje... Miał może ktoś z tym problem? @edit Dodam, że pracuję na discovery L4. Podpiąłęm przed chwilą discovery F7 i początkowo był ten sam błąd (zacinanie się na funkcji Init), ale po zmianie optymalizacji jest wszystko ok.
  3. Hej, Specjalnie założyłem konto, żeby poinformować o kolejnym problemie na który natrafiłem. Mianowicie po odpaleniu debugera program nie mógł przeskoczyć żadnej z funkcji inicjalizujących peryferium. Objawiało się to tym, że PC stał na tej funkcji i pomimo operacji run/stop on dalej tam siedział. Nie pomagało przeskoczenie funkcji poprze "run over"- wtedy w konsoli pojawiał się błąd w postaci: "Info : halted: PC: 0x08000f4c" (adres oczywiście może być różny). Na początku myślałem, że to coś związanego z SysTickiem i przerwaniami, potem kombinowałem z WDT- oczywiście cały czas szukałem w internecie informacji których nie było na żadnym forum... I w sumie dalej rozwiązania nie ma. Znalazłem tylko ten temat: http://www.openstm32.org/forumthread943#tiki-top w którym autor mówi o tym, że funkcje inicjalizujące są zadeklarowane jako inline i coś się z tym pierdzieli. Rozwiązaniem jest wyłączenie optymalizacji: PPM na projekt -> Properties -> C/C++ build -> Settings -> MCU/GCC Compiler -> Optimization -> Optimization Level None W moim przypadku pomogło, ale oczywiście jest to obejście problemu, a nie jego wyeliminowanie
×
×
  • Utwórz nowe...