Su di un sistema SlimLine Cortex M7, Code: MPS054A110, ho necessità di utilizzare la scheda SD come una espansione delle memorie ritenitive. Ho già creato due file che servono a questo scopo che vengono aperti in lettura al “SysFirstLoop”. E fin qui tutto ok. Ora ho necessità di crearne un terzo e gestirlo come gli altri due. Ma il terzo che apro nel modo:
IF (Sysfilelength('D:/ConfigOut.mjd') <> EOF) THEN
FpConfig:=Sysfopen('D:/ConfigOut.mjd','r');
ELSE
FpConfig:=Sysfopen('D:/ConfigOut.mjd','a');
END_IF;
Non mi funziona. Da toolly ho eseguito il comando Syslog e ho trovato l’errore:
Too many files D:/ConfigOut.mjd.
La memoria nella scheda SD non è piena, la SD è formattata con Format D:FAT_32_ELS, gli altri due file occupano 57k e 13k. Ho letto tra i vari errori che “sono stati aperti troppi filep di comunicazione” (?) Attualmente uso:
COM0, COM1, COM2, porta 1Wire, 3 FILEP per gestire Modbus Eterneth e i 3 FILEP per i file della scheda SD.