Vai al contenuto
PLC Forum


Micro - se il programma non ci sta?


DG.M

Messaggi consigliati

Mi chiedevo: se il programma da caricare in un microcontrollore è più grande della memoria disponibile, è possibile scrivere parte del codice su una memoria esterna?

Di che tipo bisognerebbe sceglierla?

Grazie

Domenico

Link al commento
Condividi su altri siti


In questo momento non sono in grado di fare una stima della grandezza del programma, per cui mi chiedevo se fosse possibile aumentarla in caso rimanessi fregato

La memoria di quello che ho preso in considerazione è 32K, mi sembrava abbastanza in confronto agli altri micro sul mercato ma non avendo idea degli ordini di grandezza dei programmi ho un po' una grossa incognita..

Il micro deve gestire l'acquisizione analogica da 5 canali simultaneamente, memorizzare dati su una flash seriale, gestire la porta usb e ci sarà una parte di programma per gestire i timer in modo da sincronizzare i dati acquisiti con quelli acquisiti dal sistema sul pc

Secondo te ci posso stare largo o se ci sta sta giusto giusto?

Grazie

Link al commento
Condividi su altri siti

ciao mimmux

per me ci stai largo anche scrivendo in C. Il tuo codice non credo superi i 10-15K quindi ritengo ci sia un buon margine d'errore.

Con le ottimizzazioni dei compilatori attuali non hai problemi. Ho scritto e scrivo ancora codice in assembler ma a mio parere le procedure scritte direttamente in assembler sono meno ottimizzate di quello che riesce a produrre il compilatore C.

Forse devi ricorrere all'assembler se hai dei vincoli sul tempo di esecuzione di alcune procedure altrimenti non credo sia più necessario.

Link al commento
Condividi su altri siti

memoria esterna il micro ha un bus dedicato per accedere alla memoria esterna. Ogni istruzione inizia con il ciclo di lettura del codice dalla memoria esterna.

Il bus ti obbliga a realizzare la logica di decodifica per selezionare i diversi componenti collegati al bus. A qusto proposito ti segnalo i uPSD della ST che in unico chip includono micro romless e periferica flash/ram/PLD e sono facilmente configurabili da sw.

Anche inel caso di un romless sei però vincolato a una dimensione massima della memoria codice che è determinata dal numero di linee indirizzo disponibili per il bus. Problema che si può aggirare con qualche trucchetto e che i programmatori 8051 conoscono bene. Si complica la scrittura del software ma riesci a gestire anche memorie di grosse dimensioni.

Link al commento
Condividi su altri siti

Accacca per conoscere questi "misfatti" devi essere sulla breccia da qualche lustro, o sbaglio rolleyes.gif

Link al commento
Condividi su altri siti

ahia ! colpito ed affondato

Ti ringrazio per esserti limtato a un generico qualche lustro...

Modificato: da accacca
Link al commento
Condividi su altri siti

  • 1 year later...

Ciao a tutti

Ovviamente se hai paura di "inciampare" nel problema della dimensione della memoria dovresti sin dall'inizio scegliere un micro che e' disponibile in tagli di memoria diversa.

Il qui menzionato uPSD 33xx ha queste caratteristiche ed e' disponibile con tagli di memoria che arrivano fino a 32K di RAM e 256K di codice, il tutto senza cambiare il pinout del chip. Ovviamente la gestione della paginazione fa scendere un po' le prestazioni. Vista la tua applicazione non considero pero' questo un problema. con uPSD33xx hai fino a 10Mips di potenza di calcolo.

Se decidi per un sistema un pochino piu' potente (Vedi ARM9 e FreeScale) e magari anche Rom-Less i problemi non esistono piu'. Realizza gia' il progetto con una bella flash memory esterna bella "grassa grassa" e scrivi quanto vuoi

Ciao

Furno Gianluca

Link al commento
Condividi su altri siti

Bene,

Se dovessi scegliere io il processore per questo progetto io "opterei" per una architettura ARM7

Per esempio NXP LPC2138 ha 256K di flash e 32K di RAM, il costo e' poco piu' di un micro a 8 bit ...

Con questa memoria a disposizione stai bello tranquillo per un po' di tempo.

Inoltre il chip ha gia' un convertitore a 10 bits, non so se e' sufficente per la tua applicazione, questo guarda tu.

A proposito ... il chip puo' essere lanciato a 70Mhz!

Ciao

Gianluca Furno

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...