Home › Forum › Controllori SlimLine e Netsyst (LogicLab) › Numero di File pointer utilizzabili
- Questo topic ha 1 risposta, 2 partecipanti ed è stato aggiornato l'ultima volta 4 anni, 4 mesi fa da Sergio Bertana.
-
AutorePost
-
Novembre 29, 2019 alle 4:05 pm #51413MarcelloPartecipante
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.
Novembre 29, 2019 alle 4:11 pm #51551Sergio BertanaAmministratore del forumNei sistemi Cortex si hanno 2 FILEP dedicati alle operazioni sui files, quindi se non chiudi almeno un file non potrai aprire il terzo.
Non capisco però perchè apri i file e li tieni costantemente aperti, nella buona pratica di programmazione il file si apre con Sysfopen, ci si posiziona all’interno con Sysfseek e vi si accede in lettura/scrittura e poi si chiude con Sysfclose.
Di solito si ha sempre un solo file aperto, sono stati lasciati 2 FILEP dedicati ai files su disco proprio per le operazioni di copia da un file all’altro. Si avrà un file aperto in read ed uno aperto in append.
L’errore non centra nulla con i FILEP degli altri stream di comunicazione sia seriale che Ethernet, riguarda solo i FILEP dedicati all gestione dei files su disco.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.