Utilizzare un progetto di
MPLAB
|
Compilazione del sorgente
Il sorgente va compilato attraverso l' assemblatore MPASM.
Questo compilatore è integrato nell' ambiente MPLAB e richiede solo di
essere richiamato dal menu principale.
|
IPossiamo utilizzare semplicemente il comando Build
All.
Premendo questo tasto si otterrà la compilazione
dei file prersenti nella finestra Files del progetto. |
Se tutto è in ordine, la finestra Output conterrà la sequenza delle
operazioni, con un finale BUILD SUCCEEDED.
----------------------------------------------------------------------
Debug build of project `C:\PIC\ES_ASM18\Es_2\Es_2.mcp' started.
Language tool versions: MPASMWIN.exe v5.37, mplink.exe v4.37, mplib.exe
v4.37
Preprocessor symbol `__DEBUG' is defined.
Target debug platform is `__MPLAB_DEBUGGER_PK3=1'.
Debug platform options are: `__ICD2RAM=1'.
Thu Mar 24 13:55:13 2011
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\PIC\ES_ASM18\Es_2\es18_2.o".
Clean: Deleted file "C:\PIC\ES_ASM18\Es_2\es18_2.err".
Clean: Deleted file "C:\PIC\ES_ASM18\Es_2\es18_2.lst".
Clean: Deleted file "C:\PIC\ES_ASM18\Es_2\Es_2.cof".
Clean: Deleted file "C:\PIC\ES_ASM18\Es_2\Es_2.hex".
Clean: Deleted file "C:\PIC\ES_ASM18\Es_2\Es_2.mcs".
Clean: Done.
Executing: "C:\Programmi\Microchip\MPASM Suite\MPASMWIN.exe" /q /p18F2321 "es18_2.asm" /l"es18_2.lst" /e"es18_2.err" /o"es18_2.o" /d__DEBUG=1
/d__MPLAB_DEBUGGER_PK3=1
Executing: "C:\Programmi\Microchip\MPASM Suite\mplink.exe" /p18F2321 "es18_2.o" /u_DEBUG /u_DEBUGCODESTART=0x1dc0 /u_DEBUGCODELEN=0x240 /u_DEBUGDATASTART=0x1f6 /u_DEBUGDATALEN=0xa /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /z__MPLAB_DEBUGGER_PK3=1 /z__ICD2RAM=1 /o"Es_2.cof" /M"Es_2.map"
/W
MPLINK 4.37, Linker
Copyright (c) 1998-2010 Microchip Technology Inc.
Errors : 0
MP2HEX 4.37, COFF to HEX File Converter
Copyright (c) 1998-2010 Microchip Technology Inc.
Errors : 0
Loaded C:\PIC\ES_ASM18\Es_2\Es_2.cof.
----------------------------------------------------------------------
Debug build of project `C:\PIC\ES_ASM18\Es_2\Es_2.mcp' succeeded.
Language tool versions: MPASMWIN.exe v5.37, mplink.exe v4.37, mplib.exe
v4.37
Preprocessor symbol `__DEBUG' is defined.
Target debug platform is `__MPLAB_DEBUGGER_PK3=1'.
Debug platform options are: `__ICD2RAM=1'.
Thu Mar 24 13:55:15 2011
----------------------------------------------------------------------
BUILD SUCCEEDED |
Si tratta di una lista di vari messaggi relativi a quanto il compilatore
sta eseguendo e alle varie opzioni impostate per l' operazione.
Se il compilatore incontra un errore, questo viene listato nella stessa
finestra.
Un evidente BUILD FAILED termina
l' operazione che non ha generato oggetti eseguibili.
Ad esempio:
Clean: Done.
Executing: "C:\Programmi\Microchip\MPASM Suite\MPASMWIN.exe" /q /p18F2321 "es18_2.asm" /l"es18_2.lst" /e"es18_2.err" /o"es18_2.o" /d__DEBUG=1
/d__MPLAB_DEBUGGER_PK3=1
Error[122] C:\PIC\ES_ASM18\ES_2\ES18_2.ASM 69 : Illegal opcode
(eqa)
Error[122] C:\PIC\ES_ASM18\ES_2\ES18_2.ASM 72 : Illegal opcode
(LEDA)
Warning[207] C:\PIC\ES_ASM18\ES_2\ES18_2.ASM 91 : Found label after column 1.
(clro)
Error[122] C:\PIC\ES_ASM18\ES_2\ES18_2.ASM 91 : Illegal opcode (LATA)
Warning[202] C:\PIC\ES_ASM18\ES_2\ES18_2.ASM 98 : Argument out of range. Least significant bits
used.
Error[113] C:\PIC\ES_ASM18\ES_2\ES18_2.ASM 105 : Symbol not previously defined
(port0_out)
Error[128] C:\PIC\ES_ASM18\ES_2\ES18_2.ASM 117 : Missing argument(s)
Error[113] C:\PIC\ES_ASM18\ES_2\ES18_2.ASM 117 : Symbol not previously defined
(LEDA)
Halting build on first failure as requested.
----------------------------------------------------------------------
Debug build of project `C:\PIC\ES_ASM18\Es_2\Es_2.mcp' failed.
Language tool versions: MPASMWIN.exe v5.37, mplink.exe v4.37, mplib.exe
v4.37
Preprocessor symbol `__DEBUG' is defined.
Target debug platform is `__MPLAB_DEBUGGER_PK3=1'.
Debug platform options are: `__ICD2RAM=1'.Thu Mar 24 14:03:29 2011
----------------------------------------------------------------------
BUILD FAILED |
Nota: Nella tabella qui sopra le linee di errore sono state
evidenziate in violetto; nella finestra Output di MPLAB sono del
medesimo colore e carattere del resto del testo.
Ogni Error o Warning è listato con un numero di riferimento, il
path del file in cui è stato rilevato ed una breve descrizione. Occorrerà
intervenire sul sorgente e correggere i punti indicati.
Maggiori informazioni sull' argomento e sulle caratteristiche di MPASM
sono consultabili qui.
Caricamento del programma nel target
|
Una nuova serie di comandi, precedentemente presente,
ma non evidenziata, si rende disponibile se:
- è stata eseguita una corretta compilazione
- è selezionato un tools di debug, che è correttamente operativo
- è presente il target hardware (escluso per l'uso di SIM) |
Questi comandi ci serviranno per il caricamento dell' oggetto nel
processore e per il debug.
|
I tasti di caricamento sono questi a lato |
Il passaggio del mouse sui tasti produce l' apparire di una label che ne
indica la funzione.
|
Program |
ha funzione di trasferire l' oggetto nel processore. |
|
Read |
legge il contenuto della memoria del processore. |
|
Erase Flash Device |
cancella la memoria programma. |
|
Power |
connette o disconnette l' alimentazione fornita dal tool al target |
Operazione indispensabile, dunque, è quella di caricare il programma
compilato nella memoria del processore in modo da poterne eseguire il debug
in-circuit (ICD).
Questo si ottiene semplicemente premendo il tasto program.
Nella finestra Output si dovrà ricevere il seguente messaggio
Programming...
Programming/Verify complete |
E' possibile che la programmazione non vada a buon fine; in tal caso si
avrà un messaggio del genere:
Programming...
The following memory regions failed to program
correctly:
Program Memory
Address: 00000008 Expected Value: 000000ff Received Value: 0000000f
Programming failed |
Solitamente la situazione si sblocca effettuando una cancellazione del
precedente contenuto della flash con il tasto Erase Flash,
ripetendo poi la programmazione.
Erasing...
Erase device complete
Programming...
Programming/Verify complete |
A questo punto possiamo avviare il debug.
|