Introducción a SDCC (Small Device C Compiler).

Ir abajo

Introducción a SDCC (Small Device C Compiler).

Mensaje por Pikitin el Dom 30 Nov 2008 - 1:33

SDCC es un compilador ANSI - C libre de código abierto, adaptable a distintos microcontroladores, para programar Intel 8051, Maxim 80DS390, Zilog Z80 y Motorola 68HC08 ; actualmente se está desarrollando soporte para Microchip PIC16 y PIC18.

Los usuarios de Ubuntu pueden instalarlo directamente de los repositorios.

Principales características:

Corre bajo Linux, Windows y Mac.

Maneja todo tipo de variables:
char
(8 bits, 1 byte), short (16 bits, 2 bytes), int (16 bits, 2 bytes), long (32 bit, 4 bytes) y float (4 byte IEEE).

Permite la inclusión de código ASM.

Incluye un conjunto de optimizaciones de código standard.



Soporte para PIC18*:

Bastante desarrollado, incluyendo librerías para: delay, ADC, Usart, I2C, funciones matemáticas, etc.
se pueden ver los include en la carpeta (Ubuntu): /usr/share/sdcc/include/pic16 (pic16=16 bit).

Dispositivos soportados (-v 2.8.5):

p18f1220 p18f1320 p18f2220 p18f2221 p18f2320 p18f2321
p18f2331 p18f2410 p18f242 p18f2420 p18f2423 p18f2431
p18f2450 p18f2455 p18f248 p18f2480 p18f24j10 p18f2510
p18f2515 p18f252 p18f2520 p18f2523 p18f2525 p18f2550
p18f258 p18f2580 p18f2585 p18f25j10 p18f2610 p18f2620
p18f2680 p18f2682 p18f2685 p18f4220 p18f4221 p18f4320
p18f4321 p18f4331 p18f4410 p18f442 p18f4420 p18f4423
p18f4431 p18f4450 p18f4455 p18f448 p18f4480 p18f44j10
p18f4510 p18f4515 p18f452 p18f4520 p18f4523 p18f4525
p18f4550 p18f458 p18f4580 p18f4585 p18f45j10 p18f4610
p18f4620 p18f4680 p18f4682 p18f4685 p18f6520 p18f6585
p18f6620 p18f6680 p18f6720 p18f8520 p18f8585 p18f8620
p18f8680 p18f8720 p18f66j60 p18f66j65 p18f67j60 p18f86j60
p18f86j65 p18f87j60 p18f96j60 p18f96j65 p18f97j60



Soporte para PIC16*:

Desarrollo básico, con alguna carencia, pero se pueden programar perfectamente la mayoría de las cosas, incluyendo operaciones matemáticas, aunque todavía carece de librerías con funciones de alto nivel para periféricos, icludes en (Ubuntu): /usr/share/sdcc/include/pic

Dispositivos soportados (-v 2.8.5):

16f72 16f73 16f74 16f76 16f77 16f84 16f84a
16f87 16f88 16f616 16hv616 16f627 16f627a 16f628
16f628a 16f648 16f648a 16f630 16f676 16f636 16f639
16f684 16f685 16f689 16f690 16f687 16f688 16f716
16f737 16f747 16f767 16f777 16f785 16hv785 16f870
16f872 16f871 16f873 16f873a 16f874 16f874a 16f876
16f876a 16f877 16f877a 16f886 16f887 16f818 16f819
16f913 16f914 16f916 16f917 16f946 16c62 16c72
16c63a 16c73b 16c65b 16c74b 16cr73 16cr74 16cr76
16cr77 16c432 16c433 16c554 16c557 16c558 16c620
16c620a 16cr620a 16c621 16c621a 16c622 16c622a 16c710
16c71 16c711 16c715 16c717 16c770 16c771 16c745
16c765 16c773 16c774 16c781 16c782 16c925 16c926
12f629 12f675 12f635 12f683




También se pueden añadir nuevos dispositivos, generando los pic16*.h y pic16*.c necesarios a partir de los archivos de características de GPasm ya instalados, para eso hay que usar el script (Ubuntu): /usr/share/sdcc/scripts/inc2h.pl
Copiar el pic16*.h generado a la carpeta include correspondiente y adjuntar el archivo pic16*.c generado al proyecto o recompilar las librerías. También hay que editar el archivo pic*devices.txt que se encuentra en la carpeta include correspondiente y añadir una entrada para el nuevo PIC, con el formato:

processor 16f877, 16f877a
program 8K
data 368
eeprom 256
io 22
maxram 0x1ff
bankmsk 0x180
confsiz 1
regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
regmap 0x100 0x01 0x81 0x06 0x86
memmap 0x0020 0x006f 0x000
memmap 0x0070 0x007f 0x180
memmap 0x00a0 0x00ef 0x000
memmap 0x0110 0x016f 0x000
memmap 0x0190 0x01ef 0x000

De esta forma, teniendo Gputis instalado y el datasheet del PIC, en un rato podemos dar soporte a otros dispositivos todavía no incluidos.

Pikitin
veterano
veterano

Mensajes : 623
Fecha de inscripción : 26/11/2008

http://linuxmicros.blogspot.com/

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.