Autor Tema: compilador para linux?  (Leído 2279 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado fitson

  • PIC10
  • *
  • Mensajes: 38
compilador para linux?
« en: 16 de Diciembre de 2016, 15:05:53 »
Tengo un problema, al parecer he migrado a linux y como podréis saber no es fácil en mi opinión encontrar la misma cantidad de compiladores que en windows.

Bueno quería preguntar si alguien conoce algún compilador C bueno para PIC linux. En estos momentos tengo instalado el MPLAB ide con XC8 pero con la licencia gratuita no comprime el tamaño de los programas por lo cual no sale rentable. Necesito un compilador al estilo XC8 que me permita tener mas control sobre lo que escribo en pic.

Gracias.

Desconectado AleSergi

  • PIC16
  • ***
  • Mensajes: 214
Re:compilador para linux?
« Respuesta #1 en: 16 de Diciembre de 2016, 15:46:56 »
Existe algo llamado SDCC,  nunca lo use no tengo data....

Desconectado fitson

  • PIC10
  • *
  • Mensajes: 38
Re:compilador para linux?
« Respuesta #2 en: 16 de Diciembre de 2016, 15:53:39 »
Dicen que SDCC es parecido  CCS de windows pero que tiene una mapulacion a nivel de codigo menor a XC8

Desconectado tsk

  • PIC18
  • ****
  • Mensajes: 258
Re:compilador para linux?
« Respuesta #3 en: 16 de Diciembre de 2016, 17:05:51 »
Nunca he usado el CCS, pero si el xc8 y el SDCC, por ejemplo la diferencias que puedes encontrar son

includes
SDCC
Código: [Seleccionar]
#include <pic14regs.h>
#include "app.h"

/* Configuration bits:
 * For pic 16f690
 *
 */

typedef unsigned int word;
word __at 0x2007 CONFIG = 0x0064;

XC8
Código: [Seleccionar]
#include <xc.h>
#define _XTAL_FREQ 8000000

//Configuration bits

#pragma config WDTE = OFF
#pragma config BOREN = OFF
#pragma config MCLRE = OFF
#pragma config FOSC = INTRCIO

Configuración del micro

SDCC
Código: [Seleccionar]
    //Ports Configuratios
    OSCCON = OSCCON | 0x70; // INTOSC at 8Mhz
    PORTA = 0x00; //Clear PortA
    TRISA = 0x07; //Set RA<2-0> as Input RA<5,4> output to
                  // GREEN and RED Led
    ANSEL = 0x07; //Set Analog Input on RA<2-0>
    ANSELH = 0x00;
    PORTC = 0x00;  //Clear PortC
    TRISC = 0x00;  //PortC configured as output to control the
                   // stepper motors
    PORTB = 0x00;  // Clear PortB
    TRISB = 0x00;  //All output
    //ADC configurations
    ADCON1 = 0x20; //Fosc/32 -> 4us
    ADCON0 = 0x01; //
    //Timer0 Configurations
    T0CS = 0; // Set timer 0 as Fosc/4 counter with Fosc = 8MHz

    TMR0 = STMR0;
    T0IE = 1; //Enable Timer0 overflow interrupt
    GIE = 1; //Enable interrupt


XC8
Código: [Seleccionar]
    OSCCON = OSCCON | 0x70;
    PORTB = 0x00;
    TRISB5 = 1;
    TRISB7 = 0;
    PORTC = 0x00;
    TRISC = 0x00;
    SPBRG = 12;
    SYNC = 0;
    SPEN = 1;
    CREN = 1;
    TXEN = 1;

    T0CS = 0;
    TMR0 = 0;
    T0IE = 1;
    GIE = 1;

Manejo de interrupciones

SDCC
Código: [Seleccionar]
/* Interrup handler
 *
 */
void isr(void) __interrupt 0 {

}

XC8
Código: [Seleccionar]
/* Interrup handler
 *
 */
void interrupt ISR(void) {

}

Desconectado dehscom

  • PIC10
  • *
  • Mensajes: 1
Re:compilador para linux?
« Respuesta #4 en: 01 de Enero de 2017, 21:46:05 »
Que tal amigo, mira yo uso el compilador C CCS, y mi SO es Debian, lo que hice fue instalar wine, después instalé el compilador como si tuviera windows y de esa manera ya tienes el compilador en una distribución linux. Al crear mis códigos uso "Geany" que es un IDE de programación open source basado en python, ya que termine el código a la hora de compilar simplemente en una terminal escribo esto --> wine ccsc +FM -D -T -A -EW +EX -L -J -M +EA +P5 I="c:/Program Files/PICC/Devices" elNombreDeTuCodigo.c y así se compila en linux sin ningún problema. No estoy siendo muy detallista porque estoy de entrada por salida en el foro, pero cuando tenga mas tiempo con gusto puedo explicar el proceso a detalle.

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re:compilador para linux?
« Respuesta #5 en: 01 de Enero de 2017, 23:42:36 »
CCS también tiene versión para Linux (además de poder correrlo mediante Wine)
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/


 

anything