Tutorials - PIC

 

MPASM


MPASM - Errors, Warnings, Messages

MPASM, durante la compilazione di un sorgente, genera  un certo numero di avvisi che si possono dividere in tre gruppi:

  • Messaggi di Errore (Errors)
  • Messaggi di avviso (Warnings)
  • Messaggi Generici (Messages)

Tutti i messaggi iniziano con un numero di riferimento ed hanno una breve spiegazione.

I primi sono indicazioni che la compilazione non è stata completata correttamente in quanto delle anomalie nel sorgente lo hanno impedito.
Ne fanno parte i messaggi che iniziano con 1.

I Warnings sono pure avvisi della presenza di anomalie presente e si richiede all' utente di verificare la correttezza dei passi evidenziati per poter generare un oggetto privo di errori.
Me fanno parte i messaggi che iniziano con 2.

I messaggi generici indicano che la compilazione è riuscita, ma possono esserci anomalie e l' utente deve intervenire per verificare se il sorgente è corretto.
Questi messaggi iniziano con 3.

I messaggi sono listati nel file .ERR (se non vengono cambiati i default di MPASM.
Se l' asemblaggio è effettuato con l' opzione /e-, che sopprime il file .ERR, i messaggi sono presentati solo a video; se si aggiunge l' opzione /q i messaggi non saranno visualizzati.
Si troveranno comunque nel file .LST prima della linea che li ha generati.

I messaggi sono escludibili con lo statement

ERRORLEVEL  [0|1|2|+<msgnum>|-<msgnum>+] [,...] 

che sopprime quelli indicati in oggetto. I valori dell' oggetto sono:

Valore Funzione
0 Stampa messaggi, errori e warnings
1 Stampa errori e warning
2 Stampa errori
-<msgnum> disabilita la stampa del messaggio <msgnum>
+<msgnum> abilita la stampa del messaggio <msgnum>

Da notare che i messaggi di errore non possono essere disabilitati.
I settaggi 0, 1, 2 sovrappassano le eventuali indicazioni <msgnum>.

Ad esempio:

ERRORLEVEL -302

impedisce la stampa del messaggio 302.
Lo scopo dello statement è quello di sopprimere messaggi dell' Assembler che l' utente ritiene inutili.

Per contro, messaggi di errore possono essere generati con lo statement

ERROR "<testo>"

il quale produce la stampa nel listato del messaggio in oggetto. Ad esempio:

ERROR "Questo è un messaggio di errore"

Produce la stampa del testo tra gli apici. Il testo deve essere lungo al massimo 80 caratteri.
Questo statement è utile per generare messaggi di errore in relazione a condizioni di assemblaggio. Ad esempio:

; assegnazione memoria - second 128 bytes (not Accces Bank)
  CBLOCK 0x80
   ........
   end_bank0:0          ; dummy for overrun check
  ENDC
  if end_bank0 > 0xFF    ; check for overrun
 ERROR "Bank 0 space overrun"
  endif

Nel caso in cui la label dummy end_bank0 si trovi ad essere posta ad un indirizzo maggiore dell' ampiezza del banco, viene generato un messaggio di errore.

Analoga è la funzione della direttiva 

MESSG "<testo>"

che genera il messaggio in oggetto. Ad esempio:

MESSG "Questo è un messaggio"

 


 


AVVERTENZA:
  1. Si consiglia a chi inizia di non abolire alcun messaggio fino a quando non si è ben compresa la funzione di questi elementi.
    Poi, una scelta ragionata dei messaggi da abolire potrà essere fatta inserendo
    nel sorgente lo statement ERROLEVEL del Macro Assembler.
     
  2. E' possibile che una serie di errori segnalati dall' Assembler sia dovuta alle conseguenze di un solo errore iniziale. Si consiglia quindi di correggere gli errori nell' ordine in cui sono presenti nel sorgente; spesso questo è sufficiente a risolvere sequenze di errori di cui altrimenti non si comprende la causa.

 

 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 06/12/10.