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



Teraz jest 6 mar 2026, o 13:40


Strefa czasowa: UTC + 1





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

Dołączył(a): 11 kwi 2012
Posty: 118
Pomógł: 0

Witajcie,

czy istnieje w C jakaś komenda do sprawdzenia ile obecnie mamy zajętego/wolnego RAMU?

Mam program który to sobie całkiem dobrze działa. Program steruje lampą led, rano powoli rozjaśnia a wieczorem ściemnia.
Problem polega na tym, że po jakichś 2-3 tygodniach, przestaje rozjaśniać ale w dalszym ciągu reaguje na komendy wysyłane przez BT, i po wywołaniu komendy do resetowania, wszystko wraca do normy.
Wydaje mi się, że może gdzieś mi coś wycieka i w pewnym momencie zaczyna brakować pamięci, tylko pytanie jak to / czym sprawdzić?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 kwi 2017, o 14:22 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

kirex napisał(a):
Wydaje mi się, że może gdzieś mi coś wycieka

No to rzeczywiście ci się wydaje, bo "wyciekać" to może wtedy gdy się dokonuje dynamicznej alokacji pamięci a później się jej nie zwalnia albo nieprawidłowo zwalnia ...

Jeśli już to możesz mieć problem taki, że ci stos się rozrasta za bardzo i uszkadza dane w obszarze zmiennych globalnych ...

Nie trzeba żadnej komendy w języku C żeby widzieć zajętość pamięci RAM bo po kompilacji masz to podane w podsumowaniu, czyli ile masz zajętej każdego rodzaju pamięci: FLASH, RAM, EEPROM

Zamiast więc szukać instrukcji - podaj może ile masz wolnej w ogóle pamięci RAM po kompilacji ?

to jedno ...

a drugie sprawdź jak masz napisane funkcje, czy np nie tworzysz w nich jakichś gigantycznych zmiennych lokalnych - mam tu na myśli tablice - albo czy nie przejechałeś się gdzieś po pamięci RAM za pomocą złego użycia wskaźników lub tablic ...

Jeśli posiadasz może GREENBOOKA - to masz w nim opisany sposób i kod programu do sprawdzania faktu czy stos w trakcie działania nie wchodzi "w miedzę" czyli niszczy zmienne globalne w RAM.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 kwi 2017, o 14:27 
Offline
Użytkownik

Dołączył(a): 23 sty 2014
Posty: 1085
Pomógł: 73

A może kolega powoli, sukcesywnie wywołuje funkcje rekurencyjnie albo dwie funkcje wywołują się nawzajem powodując zapętlenie i zapychanie stosu.... Trzeba dokładnie przeanalizować kod i bug na pewno się znajdzie ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 kwi 2017, o 14:45 
Offline
Użytkownik

Dołączył(a): 11 kwi 2012
Posty: 118
Pomógł: 0

po kompilacji mam:
Device: atmega128

Program: 16104 bytes (12.3% Full)
(.text + .data + .bootloader)

Data: 2528 bytes (61.7% Full)
(.data + .bss + .noinit)

EEPROM: 840 bytes (20.5% Full)
(.eeprom)


GB posiadam, więc zerknę w kod.
Po głowie chodził mi ram ponieważ problem nie występuje od razu, tylko po jakimś czasie (nie wcześniej niż 14 dni), więc coś gdzieś musi się nadpisywać albo nie mieścić się w 4KB.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 kwi 2017, o 15:36 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

Cytuj:
Data: 2528 bytes (61.7% Full)


Jeśli program dobrze napisany to masz ogromną ilość wolnego miejsca na stos, więc tu nie szukałbym problemu ale ... no jeśli masz GB to spokojnie sobie dojdziesz czy stos "wchodzi w miedzę"

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



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

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
kirex napisał(a):
Program steruje lampą led, rano powoli rozjaśnia a wieczorem ściemnia.

...a na co Ci taka lampa :)
Może po prostu gdzieś przekraczasz indeks tablicy ( jeśli taki posiadasz ) - piszę na swoim przykładzie bo ostatnio też miałem taki przypadek.

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 kwi 2017, o 18:56 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

dambo napisał(a):
no ale nie krytykujmy/wyśmiewajmy pomysłów

A gdzie tu krytyka albo wyśmiewanie ?

Pewnie chodziło o "rozjaśnianie" z rana i "ściemnianie" wieczorem - na zasadzie - czy nie powinno być odwrotnie.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 kwi 2017, o 19:03 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

no dokładnie - pewnie małe przejęzyczenie - ale jakaś nietypowa lampa ... wtedy też ciekawe do czego

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



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

Dołączył(a): 05 lut 2014
Posty: 252
Lokalizacja: obok Częstochowy
Pomógł: 14

Takie powolne rozjaśnianie i ściemnianie stosowane jest np. w hodowli zwierząt przy sztucznym oświetleniu jako imitacja świtu i zmierzchu (wymagane przez inspektorat weterynarii).
Ja ostatnio miałem taki dziwny problem w sterowniku z UARTem, że po jakimś czasie się resetował. Okazało się,
że źle zazębiłem bufor cykliczny.



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

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
dambo napisał(a):
no ale nie krytykujmy/wyśmiewajmy pomysłów

Myślę, że sam autor nie przyjął to jako krytyki/wyśmiewania - jako hobbyści sami wiemy co potrafimy wymyślić.
Ot zabrzmiało ciekawie więc zapytałem, a jeśli chochlik to fajny.
Niemniej jeśli uraziłem - przepraszam.

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2017, o 07:07 
Offline
Użytkownik

Dołączył(a): 11 kwi 2012
Posty: 118
Pomógł: 0

Lampa jest do akwarium :)

Tablic to tu mam sporo, wiec możliwe, że gdzieś wyłazi poza, muszę przysiąść i wszystko po kolei posprawdzać.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2017, o 08:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2015
Posty: 310
Pomógł: 18

O tym sprzątaniu!
Zajmuję się komunikacją Delphi z AVR-encoder. Co tam wypisywało na bargrafach. Jakiś "APAP", którego nigdy
nie używałem w jakimkolwiek projektowanym programie. Wtedy, pomógł Eclipse_Gadget z włączoną funkcją
BOOST_FLASH i ból głowy minął. Ach i och - śmieci zniknęły.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


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