PIC24/dsPic : Bootloader e Interrupts

LaurTec - PIC24/dsPic : Bootloader e Interrupts - LaurTec
12 Anni 10 Mesi fa #1 da Gianni
PIC24/dsPic : Bootloader e Interrupts è stato creato da Gianni

Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.

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

  • Gianni
  • Avatar di Gianni
  • Elite Member
  • Elite Member
Di più
12 Anni 10 Mesi fa - 12 Anni 10 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: PIC24/dsPic : Bootloader e Interrupts
Ciao Gianni,

non ho molta esperienza con i PIC24 in ambito Bootloader. Mi aspetterei qualcosa simileai PIC18.
In ogni modo ho allegato un secondo modo per inserire l'offset per mezzo dell'IDE MPLAB.
E' stao utilizzato per PIC18 ma dovrebbe fuznionare anche per gli altri PIC.

Il documento e' stato scritto dall'utente gcupini.

Saluti,

Mauro
Allegati:
Ultima Modifica 12 Anni 10 Mesi fa da Mauro Laurenti.

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 10 Mesi fa #3 da Gianni
Risposta da Gianni al topic Re: PIC24/dsPic : Bootloader e Interrupts

Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.

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

  • Gianni
  • Avatar di Gianni
  • Elite Member
  • Elite Member
Di più
12 Anni 10 Mesi fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: PIC24/dsPic : Bootloader e Interrupts
Ciao Gianni,

Come hai messo in evidenza tu il fatto di avere piu’ vettori delle interruzioni permette di essere piu’ flessibili.
In particolare in applicazioni real time dove potrebbe essere richiesta una piccola latenza prima dell’esecuzione del codice, l’avere vettori dedicati permette di risparmiare il tempo di ricerca della periferica che ha generato l’interruzione.
In applicazioni a batteria questo risparmio di codice si traduce anche in un risparmio di energia.

L’avere vettori distanziati di due byte e’ pensato per posizionare il solo GOTO.
Questa tecnica e’ usata quasi sempre sui microcontrollori e PC.

Relativamente alla domanda sulla necessita’ di mettere il goto ad un’altra tabella dove e’ presente il secondo goto e’ legato alla flessibilita’.
Se infatti hai il bootloader posto all’inizio probabilemente vorrai proteggere quell settore di memoria da scritture accidentali.
Frequentemente questo significa bloccare anche i vettori delle interruzioni.
Dato che il bootloader serve per aggiornare il firmware, se la tabella dei vettori delleinterruzioni venisse bloccata non la si potrebbe piu’ aggiornare.
Se un aggiornamento del firmare causasse (cosa probabile) uno spastamento delle funzioni ISR la tabella non protrebbe essere aggiornata.
Spostando il tutto su una seconda tabella si bypassa il problema.
Questa problematica e’ piu’ o meno sentita a seconda delle modalita’ di protezione della memoria che sono implementate nel microcontrollore.
Per i PIC a 16 bit (dsPIC inclusi) si hanno diverse implentazioni di protezione della memoria.

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 10 Mesi fa #5 da Gianni
Risposta da Gianni al topic Re: PIC24/dsPic : Bootloader e Interrupts

Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.

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

  • Gianni
  • Avatar di Gianni
  • Elite Member
  • Elite Member
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