Compiladores de CCS

13
1 Compiladores de C de CCS ©ATE-Universidad de Oviedo Lenguaje C para microcontroladores PIC 2 Compiladores de C de CCS ©ATE-Universidad de Oviedo Lenguaje C para microcontroladores PIC Escritos para Lenguaje C Ficheros de Código Fuente .C Ficheros de Directivas y Encabezamiento .H COMPILADOR de C (PCB ó PCM ó PCH) Fichero para depuración del Programa .COD y .COF Fichero con Errores de Compilación .ERR Fichero de Código Máquina para Grabación .HEX Fichero de Listado en Ensamblador .LST Compiladores Compiladores de C: de C: Fichero de funciones y llamadas (árbol) .TRE

Transcript of Compiladores de CCS

Page 1: Compiladores de CCS

1Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

2Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Escritos paraLenguaje C

Ficheros de Código Fuente

.C

Ficheros de Directivasy Encabezamiento

.H

COMPILADOR de C (PCB ó PCM ó PCH)

Fichero paradepuración

del Programa.COD y .COF

Fichero con Errores

de Compilación.ERR

Fichero deCódigo Máquinapara Grabación

.HEX

Fichero deListado en

Ensamblador.LST

CompiladoresCompiladores de C:de C:

Fichero de funciones y

llamadas (árbol).TRE

Page 2: Compiladores de CCS

3Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Ficheros de Directivas y Encabezamiento (.h)

Estos ficheros contienen directivas, que son instrucciones al compilador peronormalmente no incluyen sentencias de un programa

Los ficheros de Encabezamiento (de extensión .h) contienen informaciónsobre los registros existentes para un determinado micro, también definenel tratamiento a dar a las funciones integradas en “librería” por el compiladoren cuanto a argumentos que aceptará y los que devolverá cada función.

Estos ficheros están pensados para ser incluidos en el código fuente medianteuna directiva del tipo: #include <16f877.h>

que buscaría el fichero 16f877.h en un directorio distinto al del código fuente, mientras que con comillas (“ “)

#include “16f877.h”

haría que la búsqueda tuviera lugar en el directorio actual donde está el fuente

4Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Los Compiladores de CCS (Custom Computer Services Inc.)http://www.ccsinfo.com/

PCB

Genera código para microcontroladores con 12 bits en memoria de programa

PCM

Genera código para microcontroladores con 14 bits en memoria de programa

PCH

Genera código para microcontroladores con 16 bits en memoria de programa

PCW: Entorno de trabajo integrado que incluye los compiladores PCB y PCMpor defecto y el compilador PCH de manera opcional

PIC16C/FXXX

Page 3: Compiladores de CCS

5Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Compilación desde línea de comandos

CCSC opciones nombre_fichero.c

siendo opciones válidas:

en las siguientes opciones xxx es optativo, pero si se incluye es la extensión del fichero generado

6Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

El entorno integrado PCW versión 3.xxxmenús y barras

Definición y gestión de Proyectos (.pjt)

• Definición manual del proyecto

• Asistente para generación de proyectos (PIC Wizard)

Compilación

Herramientas

• Editor de dispositivos• Desensamblador• Conversor numérico de datos

Page 4: Compiladores de CCS

7Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Project Wizard

Asistente muy útil que permite definir un nuevo proyecto de manera fácil.

Nos pregunta por el nombre de un fichero de código fuente principal (.c), locrea junto con el correspondiente fichero de cabecera (.h) y el fichero dedefiniciones del microcontrolador que hayamos seleccionado.

Con el asistente se pueden seleccionar ciertas opciones y configurar:

• Bits de la palabra de configuración y definición de la frecuencia del oscilador• Los modos de trabajo de los diferentes módulos de comunicación• Los temporizadores y sus modos de trabajo• Los módulos CCP• El módulo de conversión A/D• Las interrupciones que se piensan habilitar• Los pines de entrada/salida y asignarles nombres alternativos• Inclusión de funciones no compiladas para manejo de dispositivos deentrada/salida: RTC, teclados, LCD de caracteres, EEPROM serie, etc

8Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Project Wizard: Bits de Configuración

version 3.xxx

Page 5: Compiladores de CCS

9Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Project Wizard: Configuración de Comunicaciones

10Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Project Wizard: Configuración Temporizadores

Page 6: Compiladores de CCS

11Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Project Wizard: Configuración

Conversión A/D

12Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Project Wizard: Configuración módulos CCP

Page 7: Compiladores de CCS

13Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Project Wizard: Configuración fuentes

posibles de interrupción

14Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Project Wizard: Configuración puertos E/S

y nombres alternativos

Page 8: Compiladores de CCS

15Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Project Wizard: Inclusión de ficheros de funcionespara manejo de dispositivos E/S

16Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Para la versión 4 delentorno integrado PCW

cambia el aspecto del entorno, los menús, las opciones, etc.

Definición y gestión de Proyectos (.pjt)

Asistente para generación de proyectos (PIC Wizard)

Page 9: Compiladores de CCS

17Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Project Wizard: Bits de Configuración

versión 4.xxx

También cambiael “Project Wizard”

18Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Project Wizard: Configuración Comunicaciones

versión 4.xxx

Page 10: Compiladores de CCS

19Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Project Wizard: Configuración Temporizadores

versión 4.xxx

20Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Resultado del Asistente (Project Wizard)

Como resultado del empleo del Project Wizard, se generan dos ficheros unocon el nombre del proyecto y extensión .c y otro con el mismo nombre yextensión .h. Éste incluye a su vez a otro fichero con el nombre del microque se haya seleccionado y que incorpora las principales directivas de definición asociadas al micro.

El fichero nombre_proyecto.h incluye directivas de preprocesado definidasa partir de la selección realizada con el asistente mientras que el ficheronombre_proyecto.c contiene las funciones integradas del compilador y directivas a que da lugar la utilización del Project Wizard

#include <16F877.h>#device ICD=TRUE#use delay(clock=4000000)#fuses XT,NOWDT,PUT,BROWNOUT#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)#use i2c(master,sda=PIN_D0,scl=PIN_D1)

Ejemplo de fichero(prueba.h)

generado por Project Wizard

Page 11: Compiladores de CCS

21Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

#include "C:\Documents and Settings\fernando\Mis documentos\Picc\prueba.h"#include <LCD.C>#int_RTCCRTCC_isr() {

}

#int_TIMER1TIMER1_isr() {

}

void main() {

port_b_pullups(TRUE);setup_adc_ports(RA0_RA1_ANALOG_RA3_REF);setup_adc(ADC_CLOCK_DIV_2);setup_counters(RTCC_INTERNAL,RTCC_DIV_128);setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);setup_timer_2(T2_DIV_BY_1,0,1);setup_ccp1(CCP_COMPARE_CLR_ON_MATCH);lcd_init();

enable_interrupts(INT_RTCC);enable_interrupts(INT_TIMER1);enable_interrupts(global);

}

Ejemplo de fichero(prueba.c)

generado por Project Wizard

22Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Integración del Compilador PCM en MPLAB IDE

Desde el entorno MPLAB IDE v7.xx de Microchip resulta posible definir un proyecto que utilice como herramienta de generación de código máquina los compiladores de CCS, así como la carga de los ficheros de símbolos y dedepuración.

Para ejecutar desde MPLAB-IDE los programas compilados con CCSC, se deberían importar los ficheros .COF y .HEX, pero otra posibilidad sería“llamar” al compilador desde el propio entorno MPLAB. Pero para ello…

IMPORTANTE: para poder usar el compilador CCS C dentro del MPLAB-IDE, se necesita ejecutar previamente el “MPLAB plug-in”

La llamada desde MPLAB se realizará mediante una línea de comandos quepresentará una serie de opciones dependientes de las opciones configuradasdesde Project > Build Options…Project

Page 12: Compiladores de CCS

23Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

El asistente del compilador de CCS (Project Wizard de PCW) no puede ser llamado desde MPLAB ya que no hay un enlace con el entorno PCW. Además el formato de los proyectos generados desde PCW no es el mismo que el que maneja MPLAB IDE.

El asistente Project Wizard de PCW no tiene nada que ver con el asistente Project Wizard de MPLAB IDE, pero podemos y debemos sacar el mayor partido posible de ambos asistentes:

Uno para generar el código inicial en C y el otro para realizar la depuración sobre el resto de herramientas: MPSIM, ICD2, MPLAB-ICE…

24Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Como método de trabajo general se recomienda el siguiente:

1º.- Utilizaremos el asistente de PCW (Project Wizard de PCW) para generar los ficheros .c y .h

2º.- Entraremos en el entorno MPLAB IDE v7.xx y definiremos un nuevo proyecto para MPLAB IDE con el asistente (Project Wizard de MPLAB) que tenga como herramienta el compilador PCM (enlazará con la línea de comandos de CCS, para lo que habrá que buscar y seleccionar el fichero ejecutable ccsc.exe) y que tendrá como fichero del proyecto el fichero .c creado en el paso 1º, y que incluirá también al fichero .h generado igualmente

3º.- Realizaremos la compilación del código desde MPLAB: Project > Compile

4º.- Desde MPLAB verificaremos el código con la herramienta que estemosutilizando en cada caso particular (simulador, depurador, emulador,…)

5º.- Realizamos las modificaciones del código fuente con el editor de MPLABy volveremos al paso 3º hasta obtener el código definitivo

Page 13: Compiladores de CCS

25Compiladores de C de CCS ©ATE-Universidad de Oviedo

Lenguaje C para microcontroladores PIC

Antes de hacer lacompilación del código se deben seleccionar de modo adecuado las opciones de la línea de comandosdel compilador

Project > Build Options…Project

El formato del ficherode depuración debe serCOFF para la inclusión de códigos y símbolos