TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: migsantiago en 23 de Marzo de 2010, 22:59:35

Título: Link Error: Could not allocate section .text
Publicado por: migsantiago 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.
Título: Re: Link Error: Could not allocate section .text
Publicado por: Suky 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:
Título: Re: Link Error: Could not allocate section .text
Publicado por: migsantiago 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:
Título: Re: Link Error: Could not allocate section .text
Publicado por: Suky en 24 de Marzo de 2010, 10:29:35
Creería que con el atributo sección:

Código: [Seleccionar]
__attribute__ ((section (".usercode")));
Título: Re: Link Error: Could not allocate section .text
Publicado por: migsantiago 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
(http://img96.imageshack.us/img96/5805/dsc00393g.th.jpg) (http://img96.imageshack.us/img96/5805/dsc00393g.jpg)

El ejemplo que implementé es el Microchip Solutions\USB Host - Mass Storage - Simple Demo  :mrgreen:
Título: Re: Link Error: Could not allocate section .text
Publicado por: Suky en 24 de Marzo de 2010, 11:50:53
Bien ahí! Por lo menos sabemos que el demo de Microchip funciona!  :D
Título: Re: Link Error: Could not allocate section .text
Publicado por: migsantiago 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.
Título: Re: Link Error: Could not allocate section .text
Publicado por: Nocturno en 24 de Marzo de 2010, 14:23:28
¡Qué pruebas más interesantes!, felicidades por conseguirlo, Santiago.
Título: Re: Link Error: Could not allocate section .text
Publicado por: migsantiago 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
(http://img690.imageshack.us/img690/3210/dsc00396yi.th.jpg) (http://img690.imageshack.us/img690/3210/dsc00396yi.jpg)
Título: Re: Link Error: Could not allocate section .text
Publicado por: Suky en 24 de Marzo de 2010, 15:54:56
Uuuu! Que bueno va a ser soldarlo! Ánimos, ánimos!  :-/ Dale duro al ron!  :D
Título: Re: Link Error: Could not allocate section .text
Publicado por: Fer_TACA en 24 de Marzo de 2010, 16:16:21
santiago, prepara unas buenas lupas de aumento para poder soldarlo.

fer.
Título: Re: Link Error: Could not allocate section .text
Publicado por: MLO__ 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
Título: Re: Link Error: Could not allocate section .text
Publicado por: migsantiago 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]
Título: Re: Link Error: Could not allocate section .text
Publicado por: Suky 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}

(http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=29980.0;attach=11572)

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
Título: Re: Link Error: Could not allocate section .text
Publicado por: migsantiago en 24 de Marzo de 2010, 16:52:39
Buff, bueno ya les cuento si queda  :D
Título: Re: Link Error: Could not allocate section .text
Publicado por: AKENAFAB en 24 de Marzo de 2010, 16:53:11
Gracias Manolo. Ahora sigue el PIC32MX que acaba de llegarme y está de miedo...

http://img690.imageshack.us/img690/3210/dsc00396yi.jpg
(http://img690.imageshack.us/img690/3210/dsc00396yi.th.jpg) (http://img690.imageshack.us/img690/3210/dsc00396yi.jpg)

El teclado con las huellas de batalla xD ,veo un trozo de chicharon ahi xD lol

-----------------------------------------------------------------------------

Excelente Mig. USB   :shock: :shock:  :-/ :-/ :-/
Luego me cuentas que onda que se ve muy interesante

Saludos!
Título: Re: Link Error: Could not allocate section .text
Publicado por: migsantiago en 24 de Marzo de 2010, 16:54:58
Chicharrón XD Era una pelusita  :afro:

Sí, luego lo checamos.
Título: Re: Link Error: Could not allocate section .text
Publicado por: Fer_TACA en 24 de Marzo de 2010, 16:57:51


Citar
En realidad se me levanto una pista, y lo marcado en negro fue la bronca descargada

¿una pista? parece que faltan 6 o 7

Una vez tuvimos que soldar en el trabajo una memoria flash de Atmel con unas patillas de 2decimas de ancho y 48 pines, junto con un micro C167 de Siemens.
Soldar el micro con sus 100 pines lo soldé pero desde luego tuvimos que tirar el pcb. Lastima de no tener fotos pero baste decir que los pines en vez de estar soldados uno a uno, los 26 de cada lado eran un solo pin.

Desde entonces no he vuelto a soldar ningun SMD.
Ademas con la edad empieza a aparecer el Alzeimer  :D :D :D asi como para soldar un bichito de esos.

Fer.
Título: Re: Link Error: Could not allocate section .text
Publicado por: Suky en 24 de Marzo de 2010, 17:06:36
Citar
En realidad se me levanto una pista, y lo marcado en negro fue la bronca descargada
¿una pista? parece que faltan 6 o 7

No esas fueron arrancadas de bronca!  :mrgreen: Pensé que lo más difícil era planchar esa placa con pistas de 0.25mm a 0.5mm de distancia, pero me ganó la soldadura  :8} Bueno, nos fuimos mal de tema  :?


Saludos!
Título: Re: Link Error: Could not allocate section .text
Publicado por: migsantiago en 24 de Marzo de 2010, 17:21:45
Desde entonces no he vuelto a soldar ningun SMD.
Ademas con la edad empieza a aparecer el Alzeimer  :D :D :D asi como para soldar un bichito de esos.

Fer.

jaja

A mi se me hace que tienes Alzheimer y Parkinson... el Alzheimer es cuando se olvidan cosas y el Parkinson es cuando se tienen temblores en los músculos.
Título: Re: Link Error: Could not allocate section .text
Publicado por: Fer_TACA en 24 de Marzo de 2010, 17:48:31
Upss!!!!!! :oops: :oops: :oops: :oops: :oops: :oops:

Si que necesito una buena revision.
Ya decia que me notaba algo raro
Título: Re: Link Error: Could not allocate section .text
Publicado por: Nocturno en 24 de Marzo de 2010, 19:53:27
Ya, pero los que tienen Alzheimer, le llaman Alzheimer al Parkinson  :D
Título: Re: Link Error: Could not allocate section .text
Publicado por: migsantiago en 24 de Marzo de 2010, 21:05:16
Ya, ya que el pobre Fer va a creer que está enfermo de a de veras  :D
Título: Re: Link Error: Could not allocate section .text
Publicado por: IngRandall en 02 de Marzo de 2012, 18:34:22
Hola, yo tengo un error parecido a ese, pero el mio fue en ethernet, es que le programe el bootloader y ahora adjunte el archivo .ld a mi proyecto y quería programarlo por el bootloader, pero me sale este error y no tengo ni idea de que es.

Código: [Seleccionar]
Obj-C32-PIC32_ETH_SK_ETH795\TCP.o: Link Error: Could not allocate section .bss, size = 8466 bytes, attributes = bss
Obj-C32-PIC32_ETH_SK_ETH795\TCP.o: Link Error: Could not allocate section .bss, size = 8466 bytes, attributes = bss
Obj-C32-PIC32_ETH_SK_ETH795\ETHPIC32IntMac.o: Link Error: Could not allocate section .bss, size = 7804 bytes, attributes = bss
Obj-C32-PIC32_ETH_SK_ETH795\ETHPIC32IntMac.o: Link Error: Could not allocate section .bss, size = 7804 bytes, attributes = bss
 Link Error: Could not allocate data memory