Autor Tema: Link Error: Could not allocate section .text  (Leído 8725 veces)

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

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Link Error: Could not allocate section .text
« en: 23 de Marzo de 2010, 22:59:35 »
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:

Código: [Seleccionar]
----------------------------------------------------------------------
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...  :huh: Seguramente es un error mío ya que este código cabe en PIC similares (PIC24FJ64GB004 también con 64kB de rom).

Gracias  :mrgreen:

Ya intenté correr la optimización de código pero no ayudó.  :8}

Edito: Veo que puede ser de utilidad leer el archivo p24FJ64GB002.gld, lo adjunto.
« Última modificación: 23 de Marzo de 2010, 23:07:53 por migsantiago »

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Link Error: Could not allocate section .text
« Respuesta #1 en: 24 de Marzo de 2010, 00:58:09 »
 :? C30 divide el espacio de la memoria de programa en secciones y como están definidos en el *.gld no fija ni posición inicial ni tamaño máximo   ¿Entonces porqué el error?  :( Las funciones tienen como atributo la localización en la sección .text ? Si fuera el caso probaría con colocar algunas en .usercode  :roll:

Como vez yo también soy nuevo en esto  :8} A ver que aprendemos  :mrgreen:
No contesto mensajes privados, las consultas en el foro

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Link Error: Could not allocate section .text
« Respuesta #2 en: 24 de Marzo de 2010, 10:14:31 »
:? C30 divide el espacio de la memoria de programa en secciones y como están definidos en el *.gld no fija ni posición inicial ni tamaño máximo   ¿Entonces porqué el error?  :( Las funciones tienen como atributo la localización en la sección .text ? Si fuera el caso probaría con colocar algunas en .usercode  :roll:

Como vez yo también soy nuevo en esto  :8} A ver que aprendemos  :mrgreen:

Hola Suky, ¿cómo las coloco en .usercode?  :huh:

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Link Error: Could not allocate section .text
« Respuesta #3 en: 24 de Marzo de 2010, 10:29:35 »
Creería que con el atributo sección:

Código: [Seleccionar]
__attribute__ ((section (".usercode")));
No contesto mensajes privados, las consultas en el foro

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Link Error: Could not allocate section .text
« Respuesta #4 en: 24 de Marzo de 2010, 11:31:45 »
Lo veo como que en chino, también estoy empezando con C30. Gracias de todas formas :)

Acabo de copiar el proyecto tal cual, modifiqué los fusibles para el FJ64GB002 y ¡ya funciona mi USB OTG con Host embebido!

Seguramente había que mover algo en la configuración del proyecto y como lo empecé desde cero por eso no funcionaba.

Por ahora el firmware funciona de 10 en unas memorias Kingston de 1GB y en una de 4GB. Más tarde probaré con un disco duro de 40GB  :-/

http://img96.imageshack.us/img96/5805/dsc00393g.jpg


El ejemplo que implementé es el Microchip Solutions\USB Host - Mass Storage - Simple Demo  :mrgreen:
« Última modificación: 24 de Marzo de 2010, 11:48:51 por migsantiago »

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Link Error: Could not allocate section .text
« Respuesta #5 en: 24 de Marzo de 2010, 11:50:53 »
Bien ahí! Por lo menos sabemos que el demo de Microchip funciona!  :D
No contesto mensajes privados, las consultas en el foro

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Link Error: Could not allocate section .text
« Respuesta #6 en: 24 de Marzo de 2010, 11:56:57 »
Sí, al menos con memorias FAT. Le conecto una de 8GB formateada como NTFS y el LED de la memoria flashea pero no guarda el archivo de prueba.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Link Error: Could not allocate section .text
« Respuesta #7 en: 24 de Marzo de 2010, 14:23:28 »
¡Qué pruebas más interesantes!, felicidades por conseguirlo, Santiago.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Link Error: Could not allocate section .text
« Respuesta #8 en: 24 de Marzo de 2010, 15:51:01 »
Gracias Manolo. Ahora sigue el PIC32MX que acaba de llegarme y está de miedo...

http://img690.imageshack.us/img690/3210/dsc00396yi.jpg

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Link Error: Could not allocate section .text
« Respuesta #9 en: 24 de Marzo de 2010, 15:54:56 »
Uuuu! Que bueno va a ser soldarlo! Ánimos, ánimos!  :-/ Dale duro al ron!  :D
No contesto mensajes privados, las consultas en el foro

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Link Error: Could not allocate section .text
« Respuesta #10 en: 24 de Marzo de 2010, 16:16:21 »
santiago, prepara unas buenas lupas de aumento para poder soldarlo.

fer.
Todos los días se aprende algo nuevo.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Link Error: Could not allocate section .text
« Respuesta #11 en: 24 de Marzo de 2010, 16:17:57 »
 :grin: :grin: :grin: :grin: :grin: :grin:

Que belleza de micros ..... te toca un buen flux!!!!!!!

Saludos
El papel lo aguanta todo

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Link Error: Could not allocate section .text
« Respuesta #12 en: 24 de Marzo de 2010, 16:29:30 »
santiago, prepara unas buenas lupas de aumento para poder soldarlo.

fer.

jeje todavía tengo buena vista pero no sé cómo vaya a andar de pulso, el nervio de echar a perder un pic tan poderoso  :2]

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Link Error: Could not allocate section .text
« Respuesta #13 en: 24 de Marzo de 2010, 16:45:53 »
santiago, prepara unas buenas lupas de aumento para poder soldarlo.

fer.

jeje todavía tengo buena vista pero no sé cómo vaya a andar de pulso, el nervio de echar a perder un pic tan poderoso  :2]

 :D :D Si que duele perderles de tal forma! Mira lo que hice en un intento con el 18F67j60  :8}



Eso me pasa por probar sin flux y sin ron   :D :D


En realidad se me levanto una pista, y lo marcado en negro fue la bronca descargada  :D :D
No contesto mensajes privados, las consultas en el foro

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Link Error: Could not allocate section .text
« Respuesta #14 en: 24 de Marzo de 2010, 16:52:39 »
Buff, bueno ya les cuento si queda  :D