miércoles, 16 de mayo de 2012

El Compilador C






Este Compilador traduce el código C del archivo fuente (.c) a  lenguaje máquina para los microcontroladores PIC, gel compilador son:



  • Cuando se compila nos genera un código máquina muy compacto y eficiente.
  • Podemos integrarlo con MPLAB  y algunos otros simuladores/emuladores como por ejemplo Proteus para el proceso de depuración.





Compilador PCW CCS










Este Compilador traduce el código C del archivo fuente (.c) a  lenguaje máquina para los microcontroladores PIC, generando así un archivo en formato hexadecimal (.hex), además del hexadecimal también nos genera 6 archivos más con las siguientes extensiones:
  • .tre
  • .sym
  • .sta
  • .pjt
  • .lst
  • .h


Algunas de las características del compilador son:

  • Cuando se compila nos genera un código máquina muy compacto y eficiente.
  • Podemos integrarlo con MPLAB  y algunos otros simuladores/emuladores como por ejemplo Proteus para el proceso de depuración.
  • Incluye una biblioteca muy completa de funciones precompiladas para el acceso al hardware de los dispositivos (entrada/salida, temporizaciones, conversor A/D, transmisión RS-232,bus I2C….,etc.
  • Incorpora drivers para dispositivos externos,  como por ejemplo  pantallas LCD, teclados numéricos, memorias EEPROM, relojes en tiempo real, etc.
  • Nos permite insertar partes de código ensamblador, manteniendo otras partes del programa en c. 


Características del lenguaje C en el compilador PCW

El lenguaje C estándar es independiente de cualquier plataforma, pero para programar PIC debemos de disponer de comandos específicos los cuales estén referidos específicamente a las partes del hardware del microcontrolador como por ejemplo el acceso a la memoria, temporizadores entre muchos mas.

Es por eso que además de los datos dore lenguaje ANSI C, el compilador PCW incluye bibliotecas que incorporan determinados comandos que no son estándar, sino específicos de la familia de microcontroladores PIC.


Éstos son básicamente de dos tipos:

  • Directivas del preprocesador
  • Funciones precompiladas


Directivas del procesador

El compilador PCW dispone de 7 tipos básicos de directivas:

--> Directivas derivadas del estándar de C que nos permiten un control básico del código y del flujo en el proceso de compilación además de otras funciones:

#DEFINE
#ELIF
#ELSE
#ENDIF
#ERROR
#IF
#IFDEF
#IFNDEF
#INCLUDE
#LIST
#NOLIST
#PRAGMA
#UNDEF

--> Directivas asociadas a las bibliotecas precompiladas, que proporcionan al compilador información relacionada con estas bibliotecas:

#USE DELAY

#USE FAST_IO
#USE FIXED_IO
#USE I2C
#USE RS232
#USE STANDARD_IO

--> Directivas que están relacionadas con la especificación del dispositivo por un lado para definir los mapas de memoria y el juego de instrucciones y por otro lado  incluir información necesaria para la programación del dispositivo en los ficheros de salida de la compilación:

#DEVICE
#ID
#FUSES
#TYPE

--> Directivas de cualificación de funciones se utilizan para identificar las características especiales de una función:

#INLINE
#INT_DEFAULT
#INT_GLOBAL
#INT_xxxxx
#SEPARATE 

--> Directivas de control del compilador, para definir opciones referidas a la compilación del código del programa:

#CASE
#OPT
#ORG
#PRIORITY

--> Directivas de control de la memoria del microcontrolador gestiona y reserva el uso de memoria para variables:

#ASM
#BIT
#BYTE
#ENDASM
#LOCATE
#RESERVE
#ROM
#ZERO_RAM

--> Identificadores predefinidos.

Todas las directivas que mencionamos son interpretados por el compilador, no por el microcontrolador. También se incluyen dentro del término genérico de directivas unas variables que contienen información sobre el proceso de compilación denominadas como identificadores predefinidos del compilador:

__DATE__
__DEVICE__
__PCB__
__PCH__
__PCM__


Funciones precompiladas


Funciones en C incluidas en el compilador PCW para manejar los diferentes recursos del microcontrolador, desde el bus I2C hasta el conversor A/D.



Utilidades adicionales

El entorno PCW también incluye:

Estas se encuentran en los menús View y Tools de la barra de menús.


  • Monitor del puerto serie: terminal que monitoriza la entrada y la salida del puerto serie del computador.
  • Selección de dispositivos: Tiene una base de datos  con los dispositivos que puede programar el compilador en donde se incluye sus características hardware.
  • Editor de dispositivos: Al igual que selección de dispositivos también emplea la base de datos  y permite editar los componentes para modificar sus características hardware, así como añadir nuevos dispositivos o eliminar algunos de ellos.
  • Conversor numérico: realiza conversiones entre los tipos de datos unsigned, signed, hex y float.
  • Extracción de datos de calibrado: Nos permite leer los datos de calibración existentes en la memoria de programa de un determinado dispositivo.
  • Desensamblador: Lee un fichero en Código máquina y lo traduce a su equivalente en Ensamblador, con lo que se podría insertar este código en un programa en C, mediante las directivas #ASM y #ENDASM.






Manual: PCW  CCS

Bibliografía:

Referencia1
Referencia2

Imagenes
Referencia1
Referencia2

1 comentario: