Salve a tutti
Vengo dal mondo della programmazione”tradizionale” e, dopo aver sviluppato uno Sketch
bello corposo, mi sono accorto che... in Arduino Yun non ci entra! Ma questo stranamente me lo ha segnalato solo quando l'ho provato! Bene ho iniziato una serie di ottimizzazioni che fondamentalmente consistono nello spostare le costanti di stringhe, che sono la parte che nel mio Sketch occupa più spazio, nella Flash memory con PROGMEM e la macro F(). Buona parte delle costanti le ho messe in un file header, dato che molte sono comuni a più funzioni.
Mi è venuta in mente un'altra soluzione che potrebbe essere anche migliore. Posso memorizzare tutte le varie constanti di stringa in un file di testo su una SD che ho già dato che Yon ha la SD e richiamarle quando mi servono? oppure il gioco non vale la candela? Devo dire che non saprei come fare e quindi mi rivolgo a voi qualora abbiate già sfruttato questa possibilità. In pratica vorrei sapere se c'è la possibilità di memorizzare le costanti u file di testo e richiamarle di volta in volta quando servono allo Sketch.
Spero di essere stato chiaro
Grazie
Luigi
Certamente puoi memorizzare righe di testo nella SD e sicuramente puoi leggerle ... sempre se il numero di righe che devi memorizzare è superiore alla memoria che hai disponibile, altrimenti non ne vale la pena ... dato che comunque l'accesso alla SD è sicuramente più macchinoso (devi sapere esattamente dove andare a pescare la riga che ti interessa) e più lento.
Dipende da quale memoria hai esaurito: tenere le stringhe in flash con F(), PSTR() e PROGMEM serve a risparmiare RAM. Fare come dici tu può servire a risparmiare ovviamente anche flash, ma se il problema è ancora la RAM è inutile.
stesso problema con arduino uno e display grafico, credo che nel mio caso, gestendo sensori di temperatura, a castigarmi siano le variabili float. Sto valutando di passare ad Arduino mega che dovrebbe essere la soluzione piu breve e meno tortuosa per un novizio come me. Forse sarebbe una soluzione da valutare anche per te Luigi
La yun è un MIPS con al suo interno un s.o. GNU/Linux chiamato OpenWrt, sulla yun hai tanta di quella RAM e tanta di quella flash che a riempirla potrebbe non bastarti una vita.
Tu invece stai solo usando la parte secondaria, ovvero il chip Avr che è montato insieme al MIPS.
In queste schede la cosa più logica è di usare il chip più grosso per le operazioni più lunghe e complicate, mentre la mcu più piccola per operazioni dove il tempo fa da padrone
Pertanto il mio consiglio è quello di approfondire lo studio su quella potentissima scheda, passare ad una mega sarebbe un downgrade.