MCU e numero di scritture possibili per la FLASH

13 Anni 1 Mese fa #1 da Sembee
Cari amici,
mi sto cimentando per la prima volta in un lavoro sui MCU, come già scritto in altra sezione.

Mi trovo di fronte ad un problema specifico, ma piuttosto stringente: devo trovare ed eliminare un bug nel software di un apparecchio per analisi bio-alimentari, scritto in C.
Il microcontrollore su cui è basato è un Renesas M16C/62A, modello M30620FCAFP, dotato di 128 KBytes di memoria di programma FLASH e 10 KBytes di RAM.

Essendo completamente digiuno di MCU, mi sono scontrato con un bel problemone: nel datasheet di Renesas c'è scritto che la FLASH può essere riscritta al massimo 100 volte .
Era un problema che non avevo considerato.

La premessa, ahime, è che per motivi di costi sono costretto a lavorare con un vecchio IDE Renesas, che non è dotato di emulatore.
Poi, il fulcro della questione è: un emulatore come può aiutarmi nel simulare il comportamento dell'apparecchio nel suo complesso, e non solo della MCU? Come si usa un emulatore in tal senso?

Da profano pensavo semplicemente di procedere alla ricerca del bug e poi testare i correttivi direttamente sul target, ma così rischio di esaurire presto le 100 scritture possibili senza risolvere il problema, e poi rendendo inservibile l'apparecchio stesso, che ha un costo non indifferente :unsure: ...

Come dovrei procedere, allora?

Grazie e abbracci agli amici del Forum.
Mino

Un neofita nel mondo embedded, ma con tanta passione e voglia di imparare ;) !

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Sembee
  • Avatar di Sembee
  • New Member
  • New Member
Di più
13 Anni 1 Mese fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: MCU e numero di scritture possibili per la FLASH
Ciao Mino,

effettivamente un limite di 100 potrebbe essere un problema.
Normalmente la tecnologia attuale permette 10.000 cicli di scrittura per la flash e 100.000 per la EEPROM.
Vecchi dispositivi flash o con tecnologie particolari hanno il limite di 100.
Avere in ogni modo un limite di 100 significa che ogni dispositivo puo' essere programmato almeno 100 volte, per cui il valore attuale potrebbe essere in generale superiore. In ogni modo e' bene limitare le programmazioni.

Se hai modo di programmare il dispositivo (completamente) puoi anche valutare la possibilità di sostituirlo nel caso in cui raggiungessi il limite di scrittura.

Un emulatore non viene più usato molto e permette di emulare un controllore senza necessitare di un controllore.
E' normalmente un box connesso al PC. Gli emulatori venivano usati molto quando le memorie erano di tipo EEPROM e si dovevano aspettare molti minuti per poterle cancellare con i raggi UV. Con l'avvento della memoria Flash intorno agli anni 90, gli emulatori hanno lasciato il posto agli In circuit debugger. Infatti con la memoria flash e' ora piuttosto veloce ricaricare un nuovo programma. Gli emulatori per altro sono piuttosto costosi e possono avere costi dell'ordine del migliaio di euro.

Controlla se il tuo IDE supporta il simulatore (non l'emulatore), in questo modo se individui il bug puoi testare il tutto a livello di ambiente di sviluppo e limitare le scritture.

In ogni modo se non scrivi nel controllore ogni idea che hai...ma ti limiti a scrivere solo le buone idee che normalmente vengono di notte...100 scritture ti dovrebbero bastare.

Saluti,

Mauro
Ringraziano per il messaggio: Sembee

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
13 Anni 1 Mese fa #3 da Sembee
Grazie per la risposta, esaurientissima!
E un in-circuit-emulator, invece, che scopi ha? Ho letto qualcosa oggi in giornata, ma non poi molto illuminante...

Riguardo al simulatore, son costretto ad usare il vecchio IDE di Renesas chiamato TM... Dovrei approfondire l'argomento domattina, quel che mi chiedo è come fare a simulare qualcosa che si avvicini all'apparecchio bioalimentare reale.
C'è per caso (parlo in generale) possibilità di "attaccare" un display LCD "virtuale" e altre perifreriche esterne "classiche", nei simulatori?

Un neofita nel mondo embedded, ma con tanta passione e voglia di imparare ;) !

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Sembee
  • Avatar di Sembee
  • New Member
  • New Member
Di più
13 Anni 1 Mese fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: MCU e numero di scritture possibili per la FLASH
Ciao,

In Circuit Debugger, si collega al microcontrollore e normalmente tramite interfaccia seriale tipo SPI o JTAG scambia informazioni.
A seconda del microcontrollore il debugger potrebbe richiedere o meno risorse dalla CPU. In generale il suo scopo sarebbe quello di poter testare passo passo il programma, mettere break points e leggere i registri (funzioni piu' complesse sono presenti). Dal momento che il setup utilizza un microcontrollore vero non simuli ma testi realmente il programma che gira. A seconda del microcontrollore la fase di Debug potrebbe o meno avere dei limiti (devi vedere la documentazioen del debugger e del microcontrollore).

Ci sono dei simulatori tipo Proteus che permettono di simulare software ed hardware assieme (inetrruttori, LED, display...).
So che Proteus supporta i PIC (un utente del Forum lo ha usato). Non sono certo se supporti anche i microcontrollori Renesas, in ogni modo mettere troppa carne sul fuoco potrebbe essere un problema, soprattutto nella fase iniziale. Infatti se qualcosa non dovesse funzionare non saresti certo da dove possa venire il problema.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
Moderatori: Mauro LaurentiMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login