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



Teraz jest 29 mar 2024, o 00:06


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 10 maja 2017, o 16:12 
Offline
Użytkownik

Dołączył(a): 03 lut 2014
Posty: 37
Pomógł: 0

Dzień dobry,
Zaczynam przygodę z STM32. Mam krótkie pytania:

1. Czy w środowiskach pochodnych od Eclipse (Atolic Truestudio i STM Workbench) jest różnica pomiędzy DEBUG i RELEASE? Są takie dwie opcje do wgrania programu: Debug (wtedy np. praca krokowa) i Run (wtedy... właśnie co? Myślałem, że to poprostu wgra program do mikrokontrolera ale mam w tym miejscu komunikat "The selection cannot be launched and there are no recent launches").
2. Jak tak poprostu wgrać program z poziomu IDE (np. Atolic). Chodzi mi o tą wersję programu, która ma docelowo działać w urządzeniu. Nie o wersję do debugowania.
3. Czy wersja wgrana jako DEBUG jest jakaś inna (na poziomie kodu maszynowego) i czy może ona działać w urządzeniu? Inaczej: czy z tą wersją programu urządzenie jest w pełni stabilne i szybkie? Czy zawiera jakieś dodatkowe instrukcje dla procesora dotyczące debugowania, jak np. mechanizm komunikacji debuger - mikrokontroler służące m. in. do podglądu zmiennych?


Z samym Eclipse miałem już do czynienia przy AVR, jak uczy Pan Mirek. Jednak tam nie używałem Build Configurations i Run Configurations. Ani debugowania.


Bardzo proszę o odpowiedzi.
Pozdrawiam serdecznie,
Darek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2017, o 17:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Wersja uproszczona ..

Przy kompilacji debug powstaje plik wynikowy ELF zawierający program mikrokontrolera , który jest wgrany do pamieci flash i dodatkowe informacje dla debugera oraz pliki wspomagające, pozwala to na uruchomienie w procesie serveraGDB na którym pracuje debuger róznych funkcji , jak podgląd wartości rejestrów , pamięci , stosowanie pułapek (breakPoint) i testowanie fragmentów kodu
łacznie z zatrzymaniem programu , wznowieniem , wykonaniem krok po kroku , podgląd na żywo wykonywanych instrukcji również w postaci asemblera.

Przy kompilacji release powstaje plik bin lub hex który wgrywamy do pamięci mikrokontrolera

do wgrania można użyc dostępnych w środowisku mechanizmów np: keil umozliwia uruchomienie i wgranie z pamięci flash lub ram
ew .. oprogramowania programatora - w przypadku STLinka jest to STLink Utility

Stabilność --- czy debug czy release są tak stabilne jak programista który je pisał czyli róznica żadna w działaniu , albo działa albo
nie -- i tu debug pozwala to wychwycić release nie ...


Autor postu otrzymał pochwałę

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2017, o 19:57 
Offline
Użytkownik

Dołączył(a): 03 lut 2014
Posty: 37
Pomógł: 0

Bardzo Ci dziękuję za odpowiedź. Szczerze to nawet miałem nadzieję że właśnie Ty odpiszesz :)
Doczytałem o GDB serwerze...

Czyli można w urządzeniu zostawić wgrany plik .elf?

I jeszcze jedno: miałem problem z konfiguracją RELEASE (nie tworzy mi się plik .hex ani .bin), a dodatkowo w którymś z okienek, chyba Manage Configurations jest napis "Orphaned configuration... no cfg file" - jakoś tak. Usunąłem tą konfigurację i stworzyłem nową: RELEASE2, której ustawienia IDE skopiowało z DEBUG. Więc chyba mam teraz dwie takie same konfiguracje: DEBUG i RELEASE2. Problem jest taki, że nie mam pliku .bin
Nie mam czego wgrać programem ST-link Utility.

Co zrobić, żeby IDE generowało plik .bin?

Nie ma go ani w folderze projektu Debug, ani w Release, ani w Release2...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2017, o 20:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Dlaczego ja ?? żadna ze mnie wyrocznia zwyczajny zielony na dodatek wredny żabol amator ....


w opcjach projektu włacz tworzenie bin i hex

Obrazek


Plik elf nie jest wgrywany , a jedynie zawarty w nim bin :)


Autor postu otrzymał pochwałę

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 maja 2017, o 15:55 
Offline
Użytkownik

Dołączył(a): 03 lut 2014
Posty: 37
Pomógł: 0

Wielkie dzięki SunRiver, bardzo pomogłeś :)

Ta linijka do Postbuild steps działa. Pewnie zwyczajnie wyłuskuje plik .hex z pliku .elf

Już chyba ostatnie pytanie. Po wciśnięciu Run mam taki komunikat:
Obrazek

Oczywiście wcześniej wykonałem Build dla konfiguracji Debug. Plik LCB.elf fizycznie znajduje się na dysku pod tą ścieżką.

Może źle rozumiem... Run służy do wgrania wsadu do mikrokontrolera w zwykłym, niedebugującym trybie, Prawda?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 maja 2017, o 17:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Nie ....
RUN uruchamia program w trybie debugera tylko i wyłącznie
domyslnie w release nie działa gdyż nie można w tym trybie/ perspektywie uruchomić perspektywy debugera

oczywiście można to zmienić w przypadku Release W Trupe Studio należy wgrać program do pamięci mikrokontrolera poprzez narzędzia narzedzia dostarczone przez producenta debugera/programatora

robisz to tak:

w menu Run --> External Tools… --> External Tools Configurations…
•Create a new (tworzysz nową konfigurację uruchominia) --> “Launch configuration”
•Name ( tu sobie możesz nazwać np:) “ST-LINK Flasher”
•Location (tu wskazujesz miejsce gdzie masz STlink Utility) np: C:\ST-LINK Utility\ST-LINK_CLI.exe
•Arguments (podajesz argumenty wywołania) -c ID=0 SWD UR LPM -P (ścieżka do projektu) C:\workspace\Project\Release\twój_hex_lub_bin.hex
------> uwaga !! lepiej by w ścieżce nie było spacji do !!!!!!!!!!!
•Working directiory (folder uruchomienia wywołania) np: C:\ST-LINK Utility\
•Apply (zatwierdzasz ustawienia)

Od teraz w konfiguracji release kliknięcie na Run lub wybranie Run --> External Tools… --> ST-LINK Flasher
plik hex lub bin zostanie wgrany do mikrokontrolera :P


Autor postu otrzymał pochwałę

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 maja 2017, o 06:49 
Offline
Użytkownik

Dołączył(a): 03 lut 2014
Posty: 37
Pomógł: 0

Dziękuję raz jeszcze. Sprawdzę :)

A czy w darmowej wersji Atolic można sprawdzić ile miejsca w procesorze zostało zajęte? Zdaje się że to podstawa w programowaniu ale nigdzie nie widzę tej informacji.



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: 7 ] 

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