Skocz do zawartości

Forbot Kurs STM32 F1- problem z kompilacją w System Workbench for STM32


Pomocna odpowiedź

Napisano

Dobry wieczór 🙂

 

Pobrałam środowisko System Workbench for STM32 i postępowałam wg instrukcji zawartych w kursie. Upewniłam się, że domyślna ścieżka dostępu do projektu nie ma polskich liter - zapisałam na C:/ zgodnie z opisem i nadałam folderowi prawa do zapisu. Niestety podczas kompilacji pierwszego programu pojawiają mi się dwa błędy

 

Cytat

 

Program "arm-none-eabi-g++" not found in PATH  

Program "arm-none-eabi-gcc" not found in PATH 

 

 Weszłam do zmiennych środowiskowych w systemie i dodałam ręcznie ścieżki do kompilatorów w folderze arm-none-eabi, które były zainstalowane ze środowiskiem. Dodałam je do zmiennych PATH użytkownika oraz systemowej, następnie ponownie uruchomiłam środowisko eclipse Workbench. Niestety, nie pomogło, problem dalej występuje. Pobrałam więc osobno oba kompilatory, g++ w wersji 32 bitowej (tylko taka jest dostępna) oraz gcc w wersji 64 bitowej. Oba zainstalowałam i postąpiłam, jak powyżej. Nie pomogło, problem nadal występuje. Zakupiłam w sklepiku na botland zestaw rozszerzony kursu STM32 F1 i chciałabym uczyć się z dostępnego kursu online. 

W jaki sposób naprawić błąd w środowisku, by móc skompilować i wgrać program? Czy przechodząc na inne środowisko, np. STM32Cube, będą działały wszystkie kody podane w przykładach kursu forbot? Jestem trochę zielona w tym temacie, wcześniej pracowałam na Arduino UNO. Zamierzam zrobić sobie święta z STM32 Nucleo 🙂

 

Pozdrawiam 

 

zdjecie.jpg

W pierwszej kolejności sprawdź poprawność wpisanych ścieżek w ustawieniach projektu (prawy przycisk myszy na nazwie projektu w oknie Project Explorer -> Properties lub skrót klawiaturowy Alt + Enter):

image.thumb.png.f6fde867cd825e1a43e3dea5896566af.png

(edytowany)

Ścieżki dostępu zgadzają się. W zawartości PATH chyba jest przekierowanie na kompilator.

Zawartość PATH:

Cytat

C:\Ac6\SystemWorkbench\plugins\fr.ac6.mcu.externaltools.arm-none.win32_1.17.0.201812190825\tools\compiler\bin;
C:\Ac6\SystemWorkbench\plugins\fr.ac6.mcu.externaltools.arm-none.win32_1.17.0.201812190825\tools\make;
C:/Ac6/SystemWorkbench/jre/bin/server;
C:/Ac6/SystemWorkbench/jre/bin;
C:/Ac6/SystemWorkbench/jre/lib/amd64;
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;
C:\Program Files (x86)\Common Files\Oracle\Java\javapath;
C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Windows\System32\OpenSSH\;
C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;
C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
C:\WINDOWS\System32\OpenSSH\;
C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;
C:\Program Files\Polyspace\R2019b\runtime\win64;
C:\Program Files\Polyspace\R2019b\bin;
C:\Program Files\Polyspace\R2019b\polyspace\bin;
C:\Program Files\Common Files\Autodesk Shared\;
C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;
C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\;
C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\;
C:\Program Files\Microsoft SQL Server\120\DTS\Binn\;
C:\Users\joann\AppData\Local\Microsoft\WindowsApps;;
C:\Ac6\SystemWorkbench

Myślę, że on ma problem z zaznaczoną opcją z tego zdjęcia. Wynikałoby to z komunikatu, ale nie wiem, czy da się ją jakoś edytować.

zdjecie 3.jpg

Edytowano przez yukimikoto

A po której dokładnie części komunikatu wnioskujesz, że jest to problem z zaznaczoną na zdjęciu opcją?

Przeczytaj może też wątek poświęcony temu problemowi na forum środowiska System Workbench. Z niego wynika, że jeżeli ścieżki dostępu zgadzają się z rzeczywistością, to możesz spróbować skasować ręcznie błędy – czasem pomimo ich wyświetlenia, kompilacja może się zakończyć powodzeniem – sprawdź to.

Udało mi się rozwiązać ten problem. Pomogła ponowna instalacja sterownika oraz dodatek do eclipse.

 

Chciałam uruchomić pierwszy program z kursu "świecenie diody". Build przeszło bez problemu, lecz po kliknięciu RUN i wcześniejszym podłączeniu nucleo, ukazał się błąd:

Cytat

Unplugged target during debug session
  Open On-Chip Debugger 0.10.0+dev-00021-g524e8c8 (2019-04-12-08:48)
  Licensed under GNU GPL v2
  For bug reports, read
     http://openocd.org/doc/doxygen/bugs.html
  srst_only separate srst_nogate srst_open_drain connect_assert_srst
  Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
  adapter speed: 8000 kHz
  adapter_nsrst_delay: 100
  Info : clock speed 8000 kHz
  Info : STLINK v2.1 JTAG v36 API v2 M26 VID 0x0483 PID 0x374B
  Info : using stlink api v2
  Info : Target voltage: 3.258498
  Info : Unable to match requested speed 8000 kHz, using 4000 kHz
  Info : Stlink adapter speed set to 4000 kHz
  Info : STM32L073RZTx.cpu: hardware has 4 breakpoints, 2 watchpoints
  Info : Listening on port 3333 for gdb connections
  target halted due to debug-request, current mode: Thread 
  xPSR: 0xf1000000 pc: 0x080008a4 msp: 0x20005000
  STM32L0: Enabling HSI16
  Info : Unable to match requested speed 8000 kHz, using 4000 kHz
  Info : Stlink adapter speed set to 4000 kHz
  Info : Unable to match requested speed 8000 kHz, using 4000 kHz
  adapter speed: 4000 kHz
  ** Programming Started **
  auto erase enabled
  Info : Device: STM32L0xx (Cat.5)
  Info : STM32L flash has dual banks. Bank (0) size is 96kb, base address is 0x8000000
  target halted due to breakpoint, current mode: Thread 
  xPSR: 0x61000000 pc: 0x2000000e msp: 0x20005000
  wrote 4096 bytes from file Debug/asia.elf in 0.840929s (4.757 KiB/s)
  ** Programming Finished **
  ** Verify Started **
  Error: jtag status contains invalid mode value - communication failure
  Error: error executing cortex_m crc algorithm
  embedded:startup.tcl:476: Error: ** Verify Failed **
  in procedure 'program' 
  in procedure 'program_error' called at file "embedded:startup.tcl", line 521
  at file "embedded:startup.tcl", line 476


W jaki sposób sobie z tym poradzić? Nucleo świeci się na czerwono na LD1 oraz LD3.

 

xyz.jpg

Korzystasz z płytki do kursu? Na pewno wybrany jest odpowiedni model mikrokontrolera? Pytania wynikają z tego, że w kursie jest używany inny mikrokontroler (serii F1, wymieniony zresztą w tytule tematu) niż wymieniony w Twoim komunikacie o błędach (L0) – spróbuj ustalić przyczynę.

  • Lubię! 1

Układ jest trochę inny, pomyliłam się podczas zakupu. Lecz nie kompiluje mi się program startowy, już nawet nie ten z diodą. Dziwne, bo wczoraj jeszcze się debugowało  i wszystko działało.

Wszystkie problemy już rozwiązałam. Zostawię rozwiązanie dla przyszłych początkujących, by nie musieli się tyle czasu męczyć i mogli cieszyć się kursem.

1. Aby nie było problemów ze środowiskiem, wchodzimy na dysk C:/ , prawym przyciskiem myszy na katalog AC6 i zmieniamy uprawnienia w "zabezpieczenia" na "pełna kontrola" oraz "modyfikacja" dla wszystkich plików i pod folderów tego katalogu. Odznaczamy też opcję "tylko do odczytu" w atrybutach. Tym sposobem wszystko ładnie się wypakuje i nie będzie problemów z PATH.

2. Aby STM32L073RZ mogło być programowalne, należy odpiąć zworkę z pinów CN12 I GND, po czym przenieść ją na JP6. Wtedy po przebudowaniu, będzie poprawnie działała opcja RUN w środowisku i uda się wgrać program do płytki.

3. Na chwilę obecną, kody z kursu działają na tej płytce, mimo, że zamiast Cortex M3 jest w niej Cortex M0+. Niestety, gdy zamawiałam zestaw ze sklepiku, nie znałam się jeszcze na tym a nie było możliwości zaznaczenia opcji, by dołączono płytkę (była niedostępna). Kupując na serwisie aukcyjnym, pomyliłam płytki. Ale mogę puki co bez problemu korzystać z kursu online, zobaczymy późniejszy etap

Dziękuję wszystkim serdecznie za pomoc 🙂 .

 

  • Lubię! 2

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...