Skocz do zawartości

[C] [STM32] Zwykłe przesłanie programu do uC


Krzema

Pomocna odpowiedź

Witam,
pracuję w środowisku TrueSTUDIO. Do tej pory korzystałem tylko z opcji Debug, tzn. program się kompiluje, zgrywa i tuż po tym uruchamia się debugowanie. Problemy są dwa: nie zawsze chcę od razu debugować program po przesłaniu do uC oraz kontroler musi być podpięty do JTAGa żeby normalnie działał.

Gdzie znajduje się opcja zwykłego zgrania programu na uC, bez debugowania, oraz żeby działał od razu po podłączeniu zasilania do kontrolera? Jakoś nie mogę tego znaleźć...

Link do komentarza
Share on other sites

Coś musiałeś przekręcić. Tuż po skompilowaniu program zostaje wysłany do uC i już tam jest, bez względu na to, czy będzie działał w trybie Debug, czy nie. Spróbuj zrobić tak: zgraj program i odłącz programator, a uC włącz na zewnętrznym źródle zasilania, a zobaczysz, że program normalnie działa.

Pozdrawiam!

Daniel 🙂

Link do komentarza
Share on other sites

Robiłem już tak jak opisujesz i czasami program się uruchamia, a czasami nie (często działa tylko po pierwszym wyłączeniu i włączeniu zasilania). Jeżeli się nie uruchamia, to czasami pomaga podpięcie na chwilkę do JTAGa (nawet nie musi być podłączony do komputera). Jeszcze w innych przypadkach program uruchamia się jakby od jakiegoś momentu i muszę skorzystać z przycisku reset żeby normalnie zadziałał (pewnie zawartość wskaźnika instrukcji zachowuje się z poprzedniego uruchomienia). Ten reset to chyba nie problem, w normalnym układzie (nie na płytce deweloperskiej) podłącza się chyba tę nóżkę przez rezystor do Vcc i to jakoś działa.

uC tak czy siak działa na zewnętrznym zasilaniu, bo w przypadku płytki deweloperskiej ZL29ARM chyba inaczej się nie da.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Nie rozumiem twojego problemu. Chcesz żeby od razu po skompilowaniu program wysyłał się do procka bez podłączenia JTAG-a? Jeżeli tak to zainteresuj się bootloaderem. A co do programu nie działającego bez JTAG-a, to wygląda mi to na jakieś zakłócenia z strony zasilania.

Link do komentarza
Share on other sites

Skoro masz płytkę ewaluacyjną to z zasilaniem (raczej) jest wszystko ok. Jaki masz programator? Spróbuj wysłać program przez SWD, bo szczerze powiedziawszy mam dość przykre póki co doświadczenia z JTAG'iem i już zdążyłem go spalić 😋

Link do komentarza
Share on other sites

A jaki program wgrywasz.

Autorski :] Jest na tyle prosty, że to nie może być jego wina.

Chcesz żeby od razu po skompilowaniu program wysyłał się do procka bez podłączenia JTAG-a?

Nie, nie. Chcę żeby po skompilowaniu program wysyłał się przez JTAG-a, a następnie aby nie uruchamiał się w trybie debugowania. Ma się po prostu zgrać do pamięci procesora i tyle. Domyślam się, że jeżeli do procesora dochodzi zasilanie, to program po zgraniu sam się uruchomi. Teraz po każdym zgraniu muszę zatrzymywać debugowanie (czerwonym kwadratem w TrueSTUDIO), co jest trochę niewygodne.

Jaki masz programator??

ZL30PRG od Kamami.

Spróbuj wysłać program przez SWD

Niestety, muszę korzystać z JTAG-a 🙁 Ostatecznie piszę program pod urządzenie, w którym ARM jest podpięty przez niego.

@edit

Przez SWD działa tak samo, tzn. muszę wcisnąć i puścić RESET żeby program normalnie zadziałał.

Link do komentarza
Share on other sites

Pierwszy raz spotykam się z czymś takim. Nie mam pojęcia co to może być. Może wybierasz zły uC przy starcie nowego projektu? Skoro robisz to na gotowej kupionej płytce, to wykluczamy błędy sprzętowe, więc zostaje tylko łączenie się i program...

Link do komentarza
Share on other sites

W "Target Settings" jest ustawione na STM32F107VC, więc się zgadza. Swoją drogą ciekawe dlaczego nie można zmienić żadnych ustawień w "Target Settings", listy wyboru są nieaktywne (na szaro).

Chyba źle zrobiłem, że opisałem 2 problemy w jednym wątku. Może ponumerujmy te problemy, żeby łatwiej było się do nich odnosić w odpowiedziach:

1. Po uruchomieniu uC, program startuje jakby od pewnego miejsca, w każdym bądź razie nie od początku. Przez to np. funkcje inicjalizujące wyświetlacz alfanumeryczny się nie wywołują i wyświetlają się na nim jakieś bzdury. Po wciśnięciu przycisku RESET na płytce deweloperskiej, program zaczyna działać prawidłowo.

2. W jaki sposób tylko przesłać program do kontrolera, bez uruchamiania debugowania tuż po przesłaniu?

Link do komentarza
Share on other sites

Wiem, że stary temat, ale odkopię go, bo widzę, że nie ma odpowiedzi.

Użyty sprzęt: zestaw ewaluacyjny ZL27ARM, programator ZL30PRGv2-1.

Z moich doświadczeń z tym samym programatorem ZL30PRGv2-1 wynika, że odłączenie programatora od portu USB komputera po przesłaniu programu do pamięci, powoduje, przerwanie działania programu, dodatkowo  np. mogą się załączać diody LED, które nie był użyte w programie. Dopiero odłączenie programatora od płytki ze złącza JTAG spowoduje poprawne działanie programu.

  • Lubię! 1
Link do komentarza
Share on other sites

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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.