Go Down

Topic: Caméra série SEN0099 (Read 8764 times) previous topic - next topic

Veknar

Auriez vous une idée pour résoudre ce problème ?*

Cdt

fdufnews

Voilà le résultat de la compilation de ton code. Il reste 318 octets et c'est juste les données globales. Donc si une fonction alloue un quelconque tampon tu n'as plus de RAM.
La solution? Passer à une Mega2560 ou mettre moins de choses dans ton programme.

Veknar

Merde :(

Pourrait-on stocker du programme dans la carte SD, pour palier au problème ?

john_lenfr


Voilà le résultat de la compilation de ton code. Il reste 318 octets et c'est juste les données globales. Donc si une fonction alloue un quelconque tampon tu n'as plus de RAM.
La solution? Passer à une Mega2560 ou mettre moins de choses dans ton programme.

Comment tu fais pour avoir autant d'infos sur les variables globales, les locales la RAM dispo et tout et tout!
Moi j'ai pas tout ça, j'ai juste la première ligne?

C'est du fait que je suis avec l'IDE 1.0.3?

;)

fdufnews

#34
May 13, 2014, 10:45 am Last Edit: May 13, 2014, 10:52 am by fdufnews Reason: 1
Là on ne parle pas de mémoire programme (Flash),  on parle de mémoire data (RAM).
Pour réduire l'empreinte en RAM il faut diminuer drastiquement la quantité de variables globales. Le problème c'est qu'une bonne partie de ces variables globales sont créées dans les librairies. Ceci oblige à mettre le nez dans les librairies et en profondeur. Ce n'est pas un truc que l'on fait en 5 minutes. Il faudrait analyser l'utilisation des données entre les différentes librairies et voir s'il y aurait moyen de mutualiser du stockage en partageant des zones mémoire pour y placer des tampons de données qui ne sont pas utilisées en même temps. C'est une refonte en profondeur des librairies et la mise au point n'est pas facile.

Si tu n'as pas de problème de budget, le passage à une mega est la solution la moins hasardeuse (et la plus rapide).

fdufnews



Voilà le résultat de la compilation de ton code. Il reste 318 octets et c'est juste les données globales. Donc si une fonction alloue un quelconque tampon tu n'as plus de RAM.
La solution? Passer à une Mega2560 ou mettre moins de choses dans ton programme.

Comment tu fais pour avoir autant d'infos sur les variables globales, les locales la RAM dispo et tout et tout!
Moi j'ai pas tout ça, j'ai juste la première ligne?

C'est du fait que je suis avec l'IDE 1.0.3?

;)

Jaloux.
C'est une fonctionnalité qui est ajoutée dans les dernières version de l'IDE. Si tu regardes en haut de la recopie d'écran c'est la version 1.5.4. C'est bien pratique.

Veknar

Merci pour vos réponses.   ;)
Nous n'aurons pas le temps trifouiller dans les librairies.
Nous allons donc utiliser deux arduino uno avec leurs supports ethernet shield.

A bientôt
Cordialement
Veknar.

fdufnews

Effectivement, si vous avez une autre UNO c'est le plus simple puisque les programmes fonctionnaient chacun de leur coté.

john_lenfr

#38
May 13, 2014, 02:11 pm Last Edit: May 13, 2014, 02:19 pm by john_lenfr Reason: 1

C'est bien pratique.

Clair! Pourquoi ils l'ont pas mis avant!  :D

EDIT: c'est génial ces infos ça permet de se passer du freeRAM!

fdufnews



C'est bien pratique.

Clair! Pourquoi ils l'ont pas mis avant!  :D

EDIT: c'est génial ces infos ça permet de se passer du freeRAM!

On ne voit que les données statiques. Si le programme fait de l'allocation dynamique on a besoin de freeRam.
Par contre, après compilation, on sait déjà si on flirte dangereusement ou pas avec les limites.

Go Up