PIC Peripheral Interface Controller PIC MCU Families (Microchip) Parliamo di come programmeremo Hardware Microcontrollore PIC18Fxxx (452) ambiente di sviluppo software scrittura del codice Cross-compilatore Simulatore (emulatore, debugger) Scheda di sviluppo Software di programmazione Programmatore hardware.. MPLAB IDE (Integrated Development Environment) assembler, basic, C C18 (esterno) C18 MPLAB EASYPIC5 PICFLASH In circuit Programmer
MPLAB IDE (Integrated Development Environment) Ambiente di sviluppo software Programma per PC compatibile con il sistema operativo: fornisce un ambiente software per effettuare tutte le operazioni per lo sviluppo della particolare applicazione hardware. Interfaccia utente grafica. Nell ambiente di sviluppo si crea un progetto (Project Wizard) = in una cartella del PC vengono messi tutti i files che servono per la descrizione, la simulazione, i risultati etc. Per l utente: files spesso illeggibili Per il software: files organizzati in librerie, letti da opportuni programmi. La creazione di un progetto richiede sempre la scelta dell hardware Può richiedere la scelta di alcuni software Con il software di sviluppo vengono installate le librerie: alcune vengono richiamate automaticamente scegliendo nel progetto quale PIC usare. Comprende l editor del programma (comodo) per la scrittura del codice, permette l assembly e la compilazione, effettua il link tra diversi codici oggetto e librerie, permette di simulare, emulare, effettuare il debug, e programmare l hardware.
Problema: spazio nella memoria istruzioni (da poche migliaia di bytes in su) Il compilatore sa come è fatto l hardware Un buon compilatore riarrangia il codice, elimina le parti che non saranno mai eseguite, organizza le parti si codice comuni, identifica i registri che non vengono usati efficientemente
MPLAB Useremo solo i menu File Edit View Project (configure) Window Help Project -> Project Wizard (procedura guidata) 1) Selezionare device (poi se si usa sempre quella è già selezionata) 2) Selezionare ambiente per scrivere il codice (assembler, linker, compiler, librerie) la prima volta controllare che stiano in MCC18 (directory di istallazione di C18, fare vedere) controllare che non ci siano crocette rosse accanto ai vari software 3) creare nuovo project (far notare la directory!!!!) 4) aggiungere files al progetto (se non abbiamo niente non ci mettiamo niente, lo si può fare in un secondo momento) 5) sommario (controllare) Viene creato un file che si chiama.mcp e compaiono sotto Project nuove selezioni Progetti che si chiamano alle stesso modo ma stanno in cartelle diverse, sono diversi. Aggiungere file, modificare file da fuori, cancellare file (tasto destro sul file) Notare le finestre e organizzazione project Sistemare le finestre Save workspace Può essere comodo mettere in configure>settings -> workspace di ricaricare l ultimo Far notare la differenza tra open file, open workspace, open project.
MPLAB C18 C Compiler Directory Description (C:\MCC18) bin doc Contains the executables for the compiler and linker. Contains the documentation for the C18 C compiler. example Contains sample applications to help users get started with MPLAB C18, including the examples discussed in this document. h lib Contains the header files for the standard C library and the processor-specific libraries for the supported PICmicro MCUs. Contains the standard C library (clib.lib or clib_e.lib), the processor-specific libraries (p18xxxx.lib or p18xxxx_e.lib, where xxxx is the specific device number) and the start-up modules (c018.o, c018_e.o, c018i.o, c018i_e.o, c018iz.o, c018iz_e.o). lkr Contains the linker script files for use with MPLAB C18. mpasm src Contains the MPASM assembler and the assembly header files for the devices supported by MPLAB C18 (p18xxxx.inc). Contains the source code, in the form of C and assembly files, for the standard C library, the processor-specific libraries and the start-up modules. There are subfolders for Extended and Traditional (Non-Extended) modes.
COMPILAZIONE Build all = in azione compiler, assembler, linker.. su tutti i programmi Sta sotto Project>Build All, oppure tasto destro sul nome del progetto oppure icona Prima bisogna mettergli a posto un po di cose: Build Options -> directories Include search path (C:\MCC18\h) Library search path (C:\MCC18\lib) Aggiungere lo script per il linker: Project -> add files -> C:\MCC18\lkr cercare il file con il nome del PIC (dice al linker come è organizzata la memoria del PIC) Ora si può fare il Build All! (Make) Provare ad aggiungere errore, click sopra. Per eliminare i warning: Project>Build Options>Project -> MPASM Assembler -> Output EDITING: mettersi sulla finestra del file, click tasto destro, scegliere Properties e scegliere le opzioni A questo punto c è un file.hex che è l esadecimale per il PIC (e per simulazione e debug)
Il compilatore C deve conoscere la struttura del microcontrollore, quali interrupt ci sono, quali registri particolari, etc etc. Il linguaggio C standard non è specificatamente pensato per un microcontrollore. Ci sono quindi files aggiuntivi nelle librerie etc che comprendono PIC18XXXX Architecture MPLAB C18 Start-up Code (codice che inizializza i registri e data stack: viene eseguito prima di arrivare a main() ) #pragma Directive (es pragma config: imposta i bit di configurazione e li scrive in un area di memoria del microcontrollore che non viene poi toccata dal programma) Sections SFRS (Special Function Registers), Timers SW/HW Interrupts Math and I/O Libraries