Notez que calloc() initialise la mémoire a 0, ce n’est pas nécessaire puisque vous la remplissez ensuite, autant donc utiliser un malloc() (et dans le cas présent ps_malloc())
Je n'ai pas activé la PSRAM car sinon certains programme de ne peuvent pas fonctionner, sinon on peut utilisé la psram, sans l'activer dans le menu, en le faisant manuellement.
mon module en dispose, 16MB/4MB PSRAM, et une autre avec 16MB/8MB PSRAM.
Je crois que par defaut malloc utilise la psram. J'tilise le core 1.0.6 peut être qu'avec la 2.0.1 ca peut fonctionner.
j'ai fait des tests et en fait le malloc ne fonctionne pas.
par contre ps_malloc fonctionne maintenant, en enlevant la ligne suivante que j'avais mis.
esp_spiram_init_cache();
J'ai activé l'option enable dans l'interface arduino.
[EDIT1]
J'ai testé un fichier de 1,5MB et sa passe, par contre ca met du temps à remplir la psram, je pensais que ca plantait au départ, car sur mon terminal ca ne faisait rien pendant 15 sec.
C'est un buffer que je remplis avec le contenu d'un fichier.
Je devrais limiter à 512ko.
[EDIT2]
Donc je confirme, quand on met à disable la psram, sur l'arduino ca plante lorsqu'on utilise ps_malloc
Est ce que je peux laisser à enable la psram même si je n'utilise pas ?
sauf pour des cas particuliers, ou il faut impérativement l'enlever.
J'ai un module WROVER-E avec 16MB/4MB, j'ai sélectionné quand même ESP32 Dev Module sur l'arduino au lieu de ESP32 Wrover Module.