TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Carlos2302 en 26 de Abril de 2016, 11:12:01
-
Bueno si alguien me puede dar una manita de como lograr compilar la libreria tcpip lite que descargue de este enlace.
http://www.microchip.com/wwwAppNotes/AppNotes.aspx?appnote=en573940
No logro hacerlo a pesar que instale el compilador xc8 y lo active con una licencia de prueba de 60 dias. :(
Ahi alguien que haya logrado compilarla con mplab x.
-
Deberías compartir que errores te indica el compilador.
-
make[2]: *** [build/default/production/_ext/2070618182/main.p1] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
A:/1 EJERCICIOS CON MICROS/Tcpip_lite/include/tcpip_types.h:345: warning: (983) storage class redeclared for "PGM"
A:/1 EJERCICIOS CON MICROS/Tcpip_lite/include/tcpip_types.h:345: error: (984) type redeclared
A:/1 EJERCICIOS CON MICROS/Tcpip_lite/include/tcpip_types.h:345: error: (1098) conflicting declarations for variable "PGM" (A:/1 EJERCICIOS CON MICROS/Tcpip_lite/include/tcpip_types.h:345)
(908) exit status = 1
nbproject/Makefile-default.mk:94: recipe for target 'build/default/production/_ext/2070618182/main.p1' failed
make[2]: Leaving directory 'A:/1 EJERCICIOS CON MICROS/Tcpip_lite'
nbproject/Makefile-default.mk:78: recipe for target '.build-conf' failed
make[1]: Leaving directory 'A:/1 EJERCICIOS CON MICROS/Tcpip_lite'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
BUILD FAILED (exit value 2, total time: 2s)
Estos son los errores que me salen despues que hago esto.
#include <xc.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include "picdem2_net/hardware.h"
#include "picdem2_net/lcd.h"
#include "include/syslog.h"
#include "include/tcpip_config.h"
#include "include/network.h"
#include "include/ipv4.h"
#include "include/udpv4.h"
#include "ethernet_drivers/ethernet_driver.h"
#include "picdem2_net/led_driver.h"
#include "include/tcpv4.h"
#include "picdem2_net/rtcc.h"
-
Asi es un poco difícil determinar que sucede.
Una posibilidad es que envíes tu proyecto (empaquetado para que se añadan todos los archivos) para analizarlo.
-
Gracias por responder y ayudarme DominusDRR.
Aqui estan los archivos. son los de la libreria AN1921 Source code de esta pagina
http://www.microchip.com/wwwAppNotes/AppNotes.aspx?appnote=en573940
Otra pregunta mas, en lo que yo entiendo estas librerias estan desarrolladas para trabajar con las tarjetas de desarrollo que tiene microchip por ejemplo la explorer16 http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=DM240001
y otras, ahora si yo por ejemplo no quiero desarrollar con esta tarjecta sino hacerlo de forma individual con solo un pic por ejemplo el 18f4550, que archivos deberia de borrar o modificar.
-
Saludos.
Tu proyecto no está debidamente empaquetado:
(https://scontent-mia1-1.xx.fbcdn.net/v/t1.0-9/13076809_10154163685132342_3105560111358391242_n.jpg?oh=d35659170411de66e7bd0ee43da0517b&oe=57B78D05)
Debes dar clic derecho sobre el proyecto y selccionar la opcion 'package':
(https://fbcdn-photos-d-a.akamaihd.net/hphotos-ak-xfp1/v/t1.0-0/s526x395/13077095_10154163689152342_7662862377269394336_n.jpg?oh=7f4c9f1003ca9af1779bd7e26e9c92c9&oe=57BEE33E&__gda__=1471087303_695e6363e78549d5ef3a59dbe2cc30dc)
Y debes compartir el archivo zip generado. La ruta del archivo está en la ventana 'out' de mplab X
Por ejemplo yo empaqueté tu proyecto y la ventana out dice:
Building the project failed. Dependencies for all of the files in the project may not have been generated, so some included header files might not be located.
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\arpv4.h
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\dhcp_client.h
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\icmp.h
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\ipv4.h
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\mac_address.h
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\network.h
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\syslog.h
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\tcpip_config.h
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\tcpip_types.h
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\tcpv4.h
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\udpv4.h
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\udpv4_port_handler_table.h
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\main.c
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\source\arpv4.c
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\source\dhcp_client.c
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\source\icmp.c
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\source\ipv4.c
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\source\mac_address.c
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\source\network.c
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\source\syslog.c
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\source\tcpv4.c
File not found: A:\1 EJERCICIOS CON MICROS\Tcpip_lite\source\udpv4.c
Searching project "tcplite" for header files...
File not found: G:\1 EJERCICIOS CON MICROS\Tcpip_lite\ethernet_drivers\ethernet_driver.h
File not found: G:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\arpv4.h
File not found: G:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\dhcp_client.h
File not found: G:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\icmp.h
File not found: G:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\ipv4.h
File not found: G:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\mac_address.h
File not found: G:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\network.h
File not found: G:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\syslog.h
File not found: G:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\tcpip_config.h
File not found: G:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\tcpip_types.h
File not found: G:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\udpv4.h
File not found: G:\1 EJERCICIOS CON MICROS\Tcpip_lite\include\udpv4_port_handler_table.h
Packaged project in "G:\Desarrollo de Hardware\Tcpip_lite\tcplite.zip".
-
Gracias hermano muy agradecido por su tiempo y ayuda Dios me lo bendiga, ahora ese archivo es el que debo subir al foro osea el de compartir o que mas hago. :-/ Me sale esto.
-
Debes compartirlo para descargarlo y analizar porque no se compila.
-
A ok ya lo hago.
-
Al compilar el proyecto y si existen errores debes empezar por el primer error que te indica
El primer error dice:
main.c:44: error: (141) can't open include file "picdem2_net/hardware.h": No such file or directory
Los archivos hardware.h lo declaras en el inicio del main
#include "picdem2_net/hardware.h"
Pero dentro de tu proyecto no existen.
Debes agregar esos archivos a tu proyecto o comentar esas lineas.
-
Como logro ingresar estos archivos al proyecto me estoy volviendo loco he intentado de mil y una forma y no logro ingresarlos.
-
Lo primero es "¿Existen esos archivos?"
-
Ya logre ingresarlo si existen los archivos son la libreria stack lite tcpip de microchip segun solo esta para compilar pero no logro hacerlo. esta es la direccion de donde los descargue.
http://www.microchip.com/wwwAppNotes/AppNotes.aspx?appnote=en573940
Adjunto el archivo nuevo.
-
Estoy viendo unas librerias sobre MAC y se esta usando un PIC32 que posee MAC por hardware.. no te parece que hay algo raro ? :P, lo cual deberia tener que crear el archivo que maneja la MAC, hay cosas que le dan algunos micros que tal ves los tenga por otro lado desde el PIC32
Agrego otra, al estar usando el PIC32, lo del picdem2 no es valido.
Sin saber que estas haciendo podes llegar a compilarlo, pero no te va a funcionar como lo queres.
Parece simple, al estar todo ordenado por capas, las capas superiores no se modifican, asi que unicamente para cambiarlo a tu PIC deberias tocar las inferiores.
-
Me doy por vencido no le doy ma. Son varios dias intentando compilarla y no pude. Pense que era una libreria para pics de mamoria de programa baja, ya que su nota de aplicacion lo especifica que para pics con memoria mayor a 16kb.
NTRODUCTION
This application note describes the structure and the
interface for the Microchip Transmission Control
Protocol/Internet Protocol (TCP/IP) lite stack library,
and includes some simple demo applications. The
purpose of the TCP/IP lite stack implementation is to
provide optimized (low Flash and RAM footprint) TCP/
IP stacks for microcontrollers with 8KB Flash (UDP
only) and 16KB Flash (TCP/IP), while still having full
functional TCP/IP v4 stack. The stack will allow
customers to add wired communication and
interoperability with other systems to their applications
over Ethernet.
The Microchip TCP/IP lite stack is implemented in a
configurable and modular way allowing users to include
only the intended features or functionality to their
application. The stack is written in C programming
language and it is intended to be compiled with the
MPLAB® XC8 compiler.
-
Estoy viendo unas librerias sobre MAC y se esta usando un PIC32 que posee MAC por hardware.. no te parece que hay algo raro ? :P, lo cual deberia tener que crear el archivo que maneja la MAC, hay cosas que le dan algunos micros que tal ves los tenga por otro lado desde el PIC32
Agrego otra, al estar usando el PIC32, lo del picdem2 no es valido.
Sin saber que estas haciendo podes llegar a compilarlo, pero no te va a funcionar como lo queres.
Parece simple, al estar todo ordenado por capas, las capas superiores no se modifican, asi que unicamente para cambiarlo a tu PIC deberias tocar las inferiores.
Don Carlos está trabajando con un PIC18. Tal vez la confusión se debe que yo envié una imagen cuando abrí su proyecto, pero yo estaba trabajando en el mío. (Con un PIC32MX)
-
Me doy por vencido no le doy ma. Son varios dias intentando compilarla y no pude. Pense que era una libreria para pics de mamoria de programa baja, ya que su nota de aplicacion lo especifica que para pics con memoria mayor a 16kb.
NTRODUCTION
This application note describes the structure and the
interface for the Microchip Transmission Control
Protocol/Internet Protocol (TCP/IP) lite stack library,
and includes some simple demo applications. The
purpose of the TCP/IP lite stack implementation is to
provide optimized (low Flash and RAM footprint) TCP/
IP stacks for microcontrollers with 8KB Flash (UDP
only) and 16KB Flash (TCP/IP), while still having full
functional TCP/IP v4 stack. The stack will allow
customers to add wired communication and
interoperability with other systems to their applications
over Ethernet.
The Microchip TCP/IP lite stack is implemented in a
configurable and modular way allowing users to include
only the intended features or functionality to their
application. The stack is written in C programming
language and it is intended to be compiled with the
MPLAB® XC8 compiler.
Una pregunta:
¿Tu estás modificando el ejemplo de MCHP o sólamente estás compilándole tal cual es?
-
No he modificado nada solo queria compilarlo primero para despues empezar a modificarlo y trabajar con el demo tcpServerDEMO.X
que estan de ejemplos.
-
Acabo de descargarme el proyecto AN1921 Source code
Dentro de existen tres subproyectos:
tcpClienteDEMO
tcpServerDEMO
tcpUDPDEMO
¿Cuál es el tuyo?
También he visto que el PIC18 que ocupan es otro diferente al que tu has enviado en tu proyecto.
-
Quiero trabajar con el tcpServerDEMO.X se supone que es para implementar el protocolo tcpip como servidor.
-
Para ese subproyecto tienes tres opciones de hardware:
PICDEM.net2_ETH97J60
PICDEM.net2_ENC28J60
PICDEM.net2_ENCx24J600_SPI
¿Cuál es tu hardware?
Yo he compilado para PICDEM.net2_ENCx24J600_SPI, sin problemas. (Sólo hay unas advertencias (warnings) sin importancia)
-
Bueno yo quiero usar el PICDEM.net2_ENC28J60 para trabajar con el modulo enc28j60 y un pic 18f4550 si se podra.
-
Bueno yo quiero usar el PICDEM.net2_ENC28J60 para trabajar con el modulo enc28j60 y un pic 18f4550 si se podra.
Cuando compilo con ese hardware, se obtiene las siguientes advertencias que no son importantes:
../board_support_package/picdem2_net/hardware.c:92: warning: (162) #warning: "Make sure that jumper JP9 from PICDEM.net 2 Board is connected"
../board_support_package/picdem2_net/hardware.c:93: warning: (162) #warning: "Button RB0 cannot be used in this case"
../../TCPIP Library/source/udpv4.c:64: warning: (1090) variable "_destPort" is not used
../../TCPIP Library/source/dhcp_client.c:76: warning: (1090) variable "DHCP_Request@msglength" is not used
../../TCPIP Library/source/ipv4.c:119: warning: (1090) variable "IPV4_Packet@msg" is not used
../../TCPIP Library/include\tcpip_types.h:80: warning: (1090) variable "_Control_Byte" is not used
Y la compilación es un éxito:
Memory Summary:
Program space used 82EFh ( 33519) of 1FFF8h bytes ( 25.6%)
Data space used 36Fh ( 879) of EE0h bytes ( 23.1%)
Configuration bits used 3h ( 3) of 3h words (100.0%)
Data stack space used 0h ( 0) of AC8h bytes ( 0.0%)
make[2]: Leaving directory 'G:/AN1921_Source Code/TCPIP Demo/tcpClientDEMO.X'
make[1]: Leaving directory 'G:/AN1921_Source Code/TCPIP Demo/tcpClientDEMO.X'
BUILD SUCCESSFUL (total time: 15s)
Loading code from G:/AN1921_Source Code/TCPIP Demo/tcpClientDEMO.X/dist/PICDEM.net2_ENC28J60/production/tcpClientDEMO.X.production.hex...
Loading completed
Cuando cambiás al PIC18F4550, se generan errore debido a que no son iguales.
1. La palabra de configuración no son iguales:
../board_support_package/picdem2_net/configuration.c:47: error: (1363) unknown configuration setting/register (STVR = ON) used
../board_support_package/picdem2_net/configuration.c:55: error: (1363) unknown configuration setting/register (FOSC = HSPLL) used
../board_support_package/picdem2_net/configuration.c:56: error: (1363) unknown configuration setting/register (FOSC2 = ON) used
../board_support_package/picdem2_net/configuration.c:64: error: (1363) unknown configuration setting/register (EASHFT = OFF) used
../board_support_package/picdem2_net/configuration.c:65: error: (1363) unknown configuration setting/register (MODE = MM) used
../board_support_package/picdem2_net/configuration.c:66: error: (1363) unknown configuration setting/register (BW = 16) used
../board_support_package/picdem2_net/configuration.c:67: error: (1363) unknown configuration setting/register (WAIT = OFF) used
../board_support_package/picdem2_net/configuration.c:71: error: (1363) unknown configuration setting/register (ECCPMX = ON) used
../board_support_package/picdem2_net/configuration.c:72: error: (1363) unknown configuration setting/register (ETHLED = ON) used
"C:\Program Files (x86)\Microchip\xc8\v1.35\bin\xc8.exe" --pass1 --chip=18F4550 -Q -G --double=24 --float=24 --emi=wordwrite --opt=default,+asm,-asmfile,+speed,-space,-debug --addrqual=ignore --mode=pro -DUSE_ENC28J60_SPI -P -N255 -I"../../" -I"../" -I"../board_support_package" -I"../board_support_package/picdem2_net" -I"../../TCPIP Library" -I"../../TCPIP Library/ethernet_drivers" -I"../../TCPIP Library/include" -I"../../TCPIP Library/source" -I"../tcpClientDEMO.X" --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,-plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/PICDEM.net2_ENC28J60/production/_ext/822349805/lcd.p1 ../board_support_package/picdem2_net/lcd.c
(908) exit status = 1
Debes modificar los bits de configuración para tu micro.
2. Hay pines que no posee tu PIC.
../board_support_package/picdem2_net/eeprom.c:52: error: (255) not a member of the struct/union ""
../board_support_package/picdem2_net/eeprom.c:52: error: (182) illegal conversion between types
TRISCbits.TRISC4 = 1; //EEPROM SDI1 - i/p
TRISCbits.TRISC5 = 0; //EEPROM SDO1 - o/p
RC4 y RC5, según el compilador no existen.
Hay puertos que no posee tu PIC:
../board_support_package/picdem2_net/hardware.c:59: error: (192) undefined identifier "TRISJ"
../board_support_package/picdem2_net/hardware.c:60: error: (192) undefined identifier "LATJ"
TRISJ = 0; // PORTJ is all the LED's
LATJ = 0;
./board_support_package/picdem2_net/lcd_hw.c:53: error: (192) undefined identifier "TRISH"
../board_support_package/picdem2_net/lcd_hw.c:55: error: (192) undefined identifier "LATH"
../board_support_package/picdem2_net/lcd_hw.c:61: error: (192) undefined identifier "LATH1"
../board_support_package/picdem2_net/lcd_hw.c:62: error: (192) undefined identifier "LATH2"
../board_support_package/picdem2_net/lcd_hw.c:66: error: (192) undefined identifier "LATH0"
../board_support_package/picdem2_net/lcd_hw.c:73: error: (192) undefined identifier "LATH1"
../board_support_package/picdem2_net/lcd_hw.c:74: error: (192) undefined identifier "LATH2"
../board_support_package/picdem2_net/lcd_hw.c:77: error: (192) undefined identifier "LATH0"
TRISE = 0; // data pins are port e
TRISH = 0x00; // RW, RS and E are Port H <0:2>
LATE = 0;
LATH = 0;
etc.
Mi recomendación es que analices si tu microcontrolador tiene otros pines disponibles para que cambies a aquellos que el compilador indica que no exite.
Pero lo mejor que puede hacer es que tu hardware se base en una placa de desarrolo (Como PICDEM.net2) con el mismo PIC, para que lo modifiques sin mucho problema.
-
Ya vi cual era el error descargue nuevamente la libreria y me aparecieron los todos los proyectos, en la descarga anterior como que no descargo bien el archivo y pues no salian todos los proyectos bien estructurados. Gracias por la gran ayuda prestada podemos dar por solucionado el tema.
-
Ya pase la etapa principal que es la de compilarlo ahora es implementarlo en un pic18f4550 segun la compilacion esto es el resultado de la memoria usada. Por lo cual cabe perfectamente en un pic18f4550. Claro que me queda corto para la immplementacion de la pagina web, ahora no se si ya esta implementada el el codigo del ejemplo. Me imagino que si. Empezare a revisar.
-
El PIC original es más grande (tiene más pines) que el que quieres usar.
Deberías comentar o borrar aquellos que no posee tú PIC, si es que no hay problema con los periféricos que estarán conectados a dichos puertos (me parece que la pantalla LCD está conectada al puerto H).
O tratar de cambiar a otros pines, como te mencioné anteriormente.
Debes analizar el hardware de la tarjeta con tu PIC y determinar si es posible adaptarlo.
-
Mi proyecto trata sobre implementar la libreria sin ninguna tarjeta de desarrollo solo usando un pic y el modulo enc28j60. Ya logramos la compilacion ahora a empezar a eliminar el codigo sobre la tarjecta de desarrollo. No es facil creo yo pero ya logramos un avance.