Hola Amigos
Estoy compilando un ejemplo de usb host con C30 y un PIC24FJ64GB002. Después de eliminar varios errores de funciones indefinidas y archivos perdidos logro compilar a medias el proyecto.
Cuando el compilador ya tiene los archivos.o me indica que ya no le queda rom de programa para continuar. Se me hace raro ya que este pic es de 64kB de memoria.
La lista de la compilación es ésta:
----------------------------------------------------------------------
Release build of project `D:\PICs\programas\PIC24 USB Host Memoria USB\memoria_usb.mcp' started.
Language tool versions: pic30-as.exe v3.23, pic30-gcc.exe v3.23, pic30-ld.exe v3.23, pic30-ar.exe v3.23
Tue Mar 23 19:45:09 2010
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Program Files (x86)\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=24FJ64GB002 -x c -c "main.c" -o"main.o" -I"C:\Microchip Solutions\Microchip" -I"D:\PICs\programas\PIC24 USB Host Memoria USB" -I"C:\Microchip Solutions\Microchip\Include" -g -Wall
Executing: "C:\Program Files (x86)\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=24FJ64GB002 -x c -c "C:\Microchip Solutions\Microchip\MDD File System\FSIO.c" -o"FSIO.o" -I"C:\Microchip Solutions\Microchip" -I"D:\PICs\programas\PIC24 USB Host Memoria USB" -I"C:\Microchip Solutions\Microchip\Include" -g -Wall
Executing: "C:\Program Files (x86)\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=24FJ64GB002 -x c -c "C:\Microchip Solutions\Microchip\USB\usb_host.c" -o"usb_host.o" -I"C:\Microchip Solutions\Microchip" -I"D:\PICs\programas\PIC24 USB Host Memoria USB" -I"C:\Microchip Solutions\Microchip\Include" -g -Wall
Executing: "C:\Program Files (x86)\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=24FJ64GB002 -x c -c "C:\Microchip Solutions\Microchip\USB\MSD Host Driver\usb_host_msd.c" -o"usb_host_msd.o" -I"C:\Microchip Solutions\Microchip" -I"D:\PICs\programas\PIC24 USB Host Memoria USB" -I"C:\Microchip Solutions\Microchip\Include" -g -Wall
Executing: "C:\Program Files (x86)\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=24FJ64GB002 -x c -c "C:\Microchip Solutions\Microchip\USB\MSD Host Driver\usb_host_msd_scsi.c" -o"usb_host_msd_scsi.o" -I"C:\Microchip Solutions\Microchip" -I"D:\PICs\programas\PIC24 USB Host Memoria USB" -I"C:\Microchip Solutions\Microchip\Include" -g -Wall
Executing: "C:\Program Files (x86)\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=24FJ64GB002 "main.o" "FSIO.o" "usb_host.o" "usb_host_msd.o" "usb_host_msd_scsi.o" -o"memoria_usb.cof" -Wl,-Tp24FJ64GB002.gld,--defsym=__MPLAB_BUILD=1,-Map="memoria_usb.map",--report-mem
usb_host_msd.o: Link Error: Could not allocate section .text, size = 5818 PC units, attributes = code
Link Error: Could not allocate program memory
Link step failed.
----------------------------------------------------------------------
Release build of project `D:\PICs\programas\PIC24 USB Host Memoria USB\memoria_usb.mcp' failed.
Language tool versions: pic30-as.exe v3.23, pic30-gcc.exe v3.23, pic30-ld.exe v3.23, pic30-ar.exe v3.23
Tue Mar 23 19:45:13 2010
----------------------------------------------------------------------
BUILD FAILED
usb_host_msd.o: Link Error: Could not allocate section .text, size = 5818 PC units, attributes = code
Link Error: Could not allocate program memory
Link step failed.¿Qué puedo hacer para que el programa quepa en el PIC? 5818 unidades de PC (asumo que es program counter) es muy seguro que quepan en 64kB de rom...
Seguramente es un error mío ya que este código cabe en PIC similares (PIC24FJ64GB004 también con 64kB de rom).
Gracias
Ya intenté correr la optimización de código pero no ayudó.
Edito: Veo que puede ser de utilidad leer el archivo p24FJ64GB002.gld, lo adjunto.