Jump to content
PLC Forum


Bootloader Pic18 - entrare ed uscire dal boot mode


Il Novizio
 Share

Recommended Posts

Salve a tutti.

Ho scaricato l'application note an851 in cui la microchip fornisce un bootloader per la famiglia 18, e anche un programmino windows per inviare tramite la seriale l'user code al micro.

http://ww1.microchip.com/downloads/en/Devi...ceDoc/00851.zip.

Qualcuno usa questo bootloader?

Lo chiedo perchè avrei bisogno di un chiarimento.

L'application note dice che il bootloader usa il valore nell'ultima locazione della eeprom dati per sapere se eseguire il boot mode(prepararsi a ricevere dalla seriale l'user code da programmare in memoria) , o il normal mode, (eseguire l'user code).

Se l'ultima locazione ha il valore 0xFF allora esegue il boot mode, qualsiasi altro valore fa eseguire il normal mode.

Una volta che è stato caricato tramite seriale il codice .hex corrispondente al user code, il programmino fornito da microchip mette 0x00 nell'ultima locazione della eeprom dati e resetta il micro.

A questo punto quindi ci troviamo nel normal mode e tutto va bene.

Ma se io a questo punto volessi tornare nel boot mode, perchè voglio cambiare l'user code nella memoria di programma, come faccio?

Avevo pensato di mettere un pulsante (o un jumper) su un pin, e scrivere all'inizio dell'user code una routine che testa questo pin.

Nel caso di valore basso, la routine va a scrivere nell'ultima locazione della eeprom dati il valore 0xFF e resetta il micro.

Così dopo il reset il bootloader dovrebbe accorgersi di dover eseguire il boot mode.

Ma è proprio così? Qualcuno lo ha già usato e sa aiutarmi.

Voglio dire, avevo già trovato un altro bootloader fatto dalla microchip specificatamente per il pic16f877 che andava a testare un pin per sapere quale dei due modi eseguire.

Ma lo testava il bootloader, non era l'utente a dover scrivere la routine di test all'interno del suo user code.

Non vorrei aver preso fischi per fiaschi, ed essendo alle prime armi può essere molto probabile.

Sto sbagliando qualcosa?

Grazie a tutti quelli che avranno avuto la pazienza di leggere tutto sto messaggio. :rolleyes:

Ciao,

francesco

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...