Tutorials - PIC

 

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.


 

 

 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 24/03/11.