Sistemi integrati - Strumenti e periferiche

Compilatori e assemblatori

Compilatore

Un compilatore è un programma per computer (o un insieme di programmi) che trasforma il codice sorgente scritto in un linguaggio di programmazione (il linguaggio sorgente) in un altro linguaggio per computer (normalmente formato binario). Il motivo più comune per la conversione è creare un programma eseguibile. Il nome "compilatore" viene utilizzato principalmente per i programmi che traducono il codice sorgente da un linguaggio di programmazione di alto livello a un linguaggio di basso livello (ad esempio, linguaggio assembly o codice macchina).

Cross-compilatore

Se il programma compilato può essere eseguito su un computer con CPU o sistema operativo diverso dal computer su cui il compilatore ha compilato il programma, quel compilatore è noto come cross-compilatore.

Decompilatore

Un programma in grado di tradurre un programma da una lingua di basso livello a una lingua di alto livello è chiamato decompilatore.

Convertitore di lingue

Un programma che traduce programmi scritti in diverse lingue di alto livello è normalmente chiamato traduttore di lingua, traduttore da sorgente a sorgente o convertitore di lingua.

È probabile che un compilatore esegua le seguenti operazioni:

  • Preprocessing
  • Parsing
  • Analisi semantica (traduzione diretta dalla sintassi)
  • Generazione di codice
  • Ottimizzazione del codice

Assemblatori

Un assemblatore è un programma che prende le istruzioni di base del computer (chiamate linguaggio assembly) e le converte in un modello di bit che il processore del computer può utilizzare per eseguire le sue operazioni di base. Un assemblatore crea codice oggetto traducendo i mnemonici delle istruzioni di assemblaggio in codici operativi, risolvendo i nomi simbolici in posizioni di memoria. Il linguaggio Assembly utilizza un mnemonico per rappresentare ciascuna operazione della macchina di basso livello (codice operativo).

Strumenti di debug in un sistema integrato

Il debug è un processo metodico per trovare e ridurre il numero di bug in un programma per computer o in un componente hardware elettronico, in modo che funzioni come previsto. Il debug è difficile quando i sottosistemi sono strettamente collegati, perché una piccola modifica in un sottosistema può creare bug in un altro. Gli strumenti di debug utilizzati nei sistemi embedded differiscono notevolmente in termini di tempo di sviluppo e funzionalità di debug. Discuteremo qui i seguenti strumenti di debug:

  • Simulators
  • Starter kit microcontrollore
  • Emulator

Simulatori

Il codice viene testato per l'MCU / sistema simulandolo sul computer host utilizzato per lo sviluppo del codice. I simulatori cercano di modellare il comportamento del microcontrollore completo nel software.

Funzioni dei simulatori

Un simulatore svolge le seguenti funzioni:

  • Definisce il processore o la famiglia di dispositivi di elaborazione, nonché le sue varie versioni per il sistema di destinazione.

  • Monitora le informazioni dettagliate di una parte del codice sorgente con etichette e argomenti simbolici mentre l'esecuzione continua per ogni singolo passaggio.

  • Fornisce lo stato della RAM e delle porte simulate del sistema di destinazione per ogni singola fase di esecuzione.

  • Monitora la risposta del sistema e determina la velocità effettiva.

  • Fornisce traccia dell'output del contenuto del contatore del programma rispetto ai registri del processore.

  • Fornisce il significato dettagliato del presente comando.

  • Monitora le informazioni dettagliate dei comandi del simulatore mentre vengono immessi dalla tastiera o selezionati dal menu.

  • Supporta le condizioni (fino a 8 o 16 o 32 condizioni) e punti di interruzione incondizionati.

  • Fornisce punti di interruzione e traccia che sono insieme l'importante strumento di test e debug.

  • Facilita la sincronizzazione delle periferiche interne e dei ritardi.

Starter Kit microcontrollore

Uno starter kit per microcontrollore è composto da:

  • Scheda hardware (scheda di valutazione)
  • Programmatore in-system
  • Alcuni strumenti software come compilatore, assemblatore, linker, ecc.
  • A volte, un IDE e una versione di valutazione limitata dalla dimensione del codice di un compilatore.

Un grande vantaggio di questi kit rispetto ai simulatori è che funzionano in tempo reale e quindi consentono una facile verifica della funzionalità di input / output. Gli starter kit, tuttavia, sono del tutto sufficienti e l'opzione più economica per sviluppare semplici progetti di microcontrollori.

Emulatori

Un emulatore è un kit hardware o un programma software o può essere entrambi che emula le funzioni di un sistema informatico (l'ospite) in un altro sistema informatico (l'host), diverso dal primo, in modo che il comportamento emulato assomigli molto al comportamento del sistema reale (l'ospite).

L'emulazione si riferisce alla capacità di un programma per computer in un dispositivo elettronico di emulare (imitare) un altro programma o dispositivo. L'emulazione si concentra sulla creazione di un ambiente informatico originale. Gli emulatori hanno la capacità di mantenere una connessione più stretta con l'autenticità dell'oggetto digitale. Un emulatore aiuta l'utente a lavorare su qualsiasi tipo di applicazione o sistema operativo su una piattaforma in modo simile a come il software viene eseguito come nel suo ambiente originale.

Dispositivi periferici nei sistemi integrati

I sistemi integrati comunicano con il mondo esterno tramite le loro periferiche, come ad esempio seguire & mins;

  • Interfacce di comunicazione seriale (SCI) come RS-232, RS-422, RS-485, ecc.
  • Interfaccia di comunicazione seriale sincrona come I2C, SPI, SSC e ESSI
  • Universal Serial Bus (USB)
  • Schede multimediali (schede SD, Compact Flash, ecc.)
  • Reti come Ethernet, LonWorks, ecc.
  • Bus di campo come CAN-Bus, LIN-Bus, PROFIBUS, ecc.
  • imers come PLL, Capture / Compare e Time Processing Units.
  • I / O discreto noto anche come GPIO (General Purpose Input / Output)
  • Da analogico a digitale / Da digitale ad analogico (ADC / DAC)
  • Debug come porte JTAG, ISP, ICSP, BDM Port, BITP e DP9

Criteri per la scelta del microcontrollore

Quando si sceglie un microcontrollore, assicurarsi che soddisfi il compito in questione e che sia conveniente. Dobbiamo vedere se un microcontrollore a 8 bit, 16 bit o 32 bit può gestire al meglio le esigenze di elaborazione di un'attività. Inoltre, i seguenti punti dovrebbero essere tenuti a mente quando si sceglie un microcontrollore:

  • Speed - Qual è la velocità massima supportata dal microcontrollore?

  • Packaging- È DIP a 40 pin (pacchetto Dual-inline) o QFP (pacchetto Quad flat)? Questo è importante in termini di spazio, assemblaggio e prototipazione del prodotto finale.

  • Power Consumption - Questo è un criterio importante per i prodotti alimentati a batteria.

  • Amount of RAM and ROM sul chip.

  • Count of I/O pins and Timers sul chip.

  • Cost per Unit - Questo è importante in termini di costo finale del prodotto in cui deve essere utilizzato il microcontrollore.

Inoltre, assicurati di avere strumenti come compilatori, debugger e assemblatori, disponibili con il microcontrollore. La cosa più importante è che dovresti acquistare un microcontrollore da una fonte affidabile.