Skocz do zawartości

Kiedy? Po co i dlaczego? Czyli użycie atrybutów/makr do umieszczenia danych w odpowiedniej pamięci...


farmaceuta

Pomocna odpowiedź

Witam...tak sobie czytam o pamięciach na ESP32 i kilku rzeczy nie jestem pewien...np. mamy funkcję która ma działać w przerwaniu, czyli 

void IRAM_ATTR fun()

Czy wszystkie stałe znajdujące się w tej funkcji muszą być umieszczone w ram'ie? Za pomocą np. 

DRAM_ATTR

______________________________________

Mamy dane które chcemy zachować po głębokim śnie, więc używamy 

RTC_DATA_ATTR

a jest też inny atrybut który robi to samo (tak mi się wydaje po lekturze) czyli 

RTC_NOINIT_ATTR

czy można to stosować zamiennie? I czy napewno obie wersje robią to samo? 

Chętnie też poczytam o innych atrybutach często stosowanych i wręcz koniecznych do prawidłowego działania, jeśli się wam cos nasuwa😉

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

(edytowany)

Niech ktoś tylko mi przytaknie lub zaprzeczy😜 

void RTC_IRAM_ATTR fun()

Powyższego używam wtedy jeśli jestem w deep_sleep (wyłączony flash/ram/peryferia etc), a powodem jest to żeby po przebudzeniu wykonać natychmiast kod bez czekania na uruchomienie wszystkiego tak? 

_____________________________________

void IRAM_ATTR fun()

Powyższego używam w przypadku przerwań żeby funkcja wykonała się natychmiast po wyzwoleniu (z ram), żeby nie czekać na załadowanie jej z flash co jest dużo wolniejsze niż ram tak?

Edytowano przez farmaceuta
Link do komentarza
Share on other sites

(edytowany)

No i widziałem właśnie funkcję która ma się wykonać po deep_sleep, i została umieszczona normalnie w flash...to już nie rozumiem czy jest to konieczne czy nie?🤔 (Upychanie do ram'u)

Edytowano przez farmaceuta
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.