Anuncios Google

Error sin venir a cuento

Buenas,

mi problema viene que de repente me ha salido este error al compilar del build.elf (línea 6 del error):

main.c
c:/Documentos/Proyectos/MOLBA/source/main.c: In function 'animacionmenu':
c:/Documentos/Proyectos/MOLBA/source/main.c:128: warning: statement with no effect
c:/Documentos/Proyectos/MOLBA/source/main.c:134: warning: statement with no effect
arm-eabi-g++ -g -mthumb-interwork -mno-fpu -L/C/devkitPro/palib/lib/lib -Wl -specs=ds_arm9.specs musicainicio.o efs_lib.o main.o -L/C/devkitPro/palib/lib/lib -lpa9 -L/c/devkitPro/libnds/lib -lfat -lnds9 -ldswifi9 -o build.elf
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-eabi/4.1.1/../../../../arm-eabi/bin/ld.exe: address 0x2412f8c of build.elf section .bss is not within region ewram
collect2: ld returned 1 exit status
make[1]: *** [/c/Documentos/Proyectos/MOLBA/MOLBA.elf] Error 1
make: *** [build] Error 2

¿Qué puede ser? Lo único que hice fue adaptar mi proyecto a las EFS con los fondos de 16bit...

Salu2


Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderás trucos para resolver tus dudas antes.


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Kevinjosue2326

yo tengo un gran problema y quisiera que me ayudaran

Bueno tengo mas de 2 años de intentar hacer un juego de ds pero no puedo por que siempre

e intentado 32 instalar dekitpro y palib pero siempre me sale mal asta nitro eniger y ds game maker

todos asta icarus sistem todo me a bientan este error, lla estudie mucho el lenguaje ``c``

pero para nada me cierbe e intentado de todo ahasta tutoriales de instalacion pero nada

me sale este error pero simepre,pido ayuda Llora

mi  error es el siguiente

this application has requested the runtime to terminate it in an unusual way please conctact the aplication is support team for more information

make[1]:*** [efs_lib.0] error 1

make:*** [build] error 2

porfavorLlora


 EDITADO: Texto modificado por abusar de la negrita. Por favor, revise las normas de la comunidad. Gracias. Master Sonic.


Kevinjosue2326Lengua fueraTodo bien

Traducción del mensaje del

Traducción del mensaje del linker: ¿Se puede saber qué haces poniendo más de 4MB de datos?

Imagen de exterminator

No tengo ni idea

de dónde salen esos "mágicos" 4Mb, porque el archivo que añado con las EFS son 29 Kb, y el código son 1 y pico.

¿Alguna sugerencia? ¿Un bucle mal cerrado? ¿Estoy volcando archivos sin parar tal vez? Yo no logro encontrar nada raro :S.

Salu2

PD: El source está en un comentario más abajo.


Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderás trucos para resolver tus dudas antes.

Imagen de kNightFox

Pastea las dos lineas de

Pastea las dos lineas de codigo que dicen que te fallan

Imagen de exterminator

¿Ein?

¿Te refieres a "statements with no effect"? No me refería a eso, lo pone porque tengo bucles for como cronómetros, y sólo se actualiza pantalla en ellos.

El error que yo digo es concretamente éste:

arm-eabi-g++ -g -mthumb-interwork -mno-fpu -L/C/devkitPro/palib/lib/lib -Wl -specs=ds_arm9.specs musicainicio.o efs_lib.o main.o -L/C/devkitPro/palib/lib/lib -lpa9 -L/c/devkitPro/libnds/lib -lfat -lnds9 -ldswifi9 -o build.elf
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-eabi/4.1.1/../../../../arm-eabi/bin/ld.exe: address 0x2412f8c of build.elf section .bss is not within region ewram

Ya de paso pasteo el source completo por si os sirve de ayuda:

//Includes
#include <PA9.h>		// Include for PA_Lib
#include <stdlib.h>	//Include de funciones C
#include "efs_lib.h"	//Include de EFS
#include "gfx/all_gfx.c"		//Includes de
#include "gfx/all_gfx.h"		//Sprites y fondos
#include "musicainicio.h"		//Include de la música del menú
 
//Variables globales
s8 brillo=-31;
u8 fondomenu;
u8 tiempo;
s16 logox;
s8 logoy;
u32 creditosy;
bool menu=true;
bool creditossi=false;
bool spritesmenu=false;
bool juego=false;
u8 nivel;
 
//Funciones de EFS
void Iniciar_EFS(void);
u16* Obtener_Archivo(char* path);
void Cargar_Bg_16bit(u8 pantalla,char* path);
 
//Funciones del juego
void animacionmenu(void);
void volveralmenu(void);
void creditos(void);
void nivel1(void);
 
//Función principal del juego, main()
int main(int argc, char ** argv)
{
	PA_Init();    // Inicio de PA_Lib
	PA_InitVBL(); // Inicio del VBL estándar (60 frames/segundo)
 
	//Inicio de EFS, se usarán para fondos
	Iniciar_EFS();
 
	//Inicio de la función de números aleatorios
	PA_InitRand();
 
	//Inicio del sistema de sonido
	AS_Init(AS_MODE_SURROUND | AS_MODE_16CH);
 
	//Menú principal
	animacionmenu();
 
	//Bucle principal del juego
	while (1)
	{
 
	   //Otras funciones
	   if(creditossi==true)	creditos();		//Función de los créditos
	   if(menu==true)	volveralmenu();		//Función para volver al menú desde opciones y créditos
 
	   //Actualiza pantalla...
		PA_WaitForVBL();
	}
 
	return 0;	//Se apaga...
} //¡Y fin del juego!
 
							/*CARGADO DE FONDOS MEDIANTE EFS*/
 
//Inicio de EFS
void Iniciar_EFS(void)
{
   if(!EFS_Init(EFS_AND_FAT | EFS_DEFAULT_DEVICE, NULL))
   {
      PA_OutputText(0,1,1,"EFS Error!!");
      while(true)	{PA_WaitForVBL();}
   }
   else
	{
	   PA_OutputText(0,1,1,"EFS ok!!");
	   PA_ClearTextBg(0);
	}   
}
 
//Obtención de datos del archivo
u16* Obtener_Archivo(char* path)
{
   FILE* file;	//Variable que apunta al fichero
   u16* archivo;	//Variable puntero u8
   int size;
   struct stat st;	//Variable stat para el fichero
   file=fopen(path,"rb");	//Abrimos el archivo(forma binaria)
   if(file!=NULL)	//Comprobación: ¿Existe el fichero? Si existe...
   {
      stat(path,&st);	//Metemos el fichero en la estructura stat (volcado de datos)
      size=st.st_size;
      archivo=(u16*)malloc(size);	//El puntero apunta al archivo
      fread(archivo,1,size,file);	//Volcado del archivo
      fclose(file);	//Acabado el volcado, el archivo se cierra
      return(archivo);
   }
	else	//Si no existe...
	{
	   PA_OutputText(0,0,0,"File not found!");
	   while(true)	PA_WaitForVBL();
	   return(0);
	}
}
 
//Cargado de fondo (16bit)
void Cargar_Bg_16bit(u8 pantalla,char* path)
{ 
	u16* info;
	char path_info [EFS_MAXPATHLEN];
	sprintf (path_info, "%s_Bitmap.bin", path);  // Completamos el path del info
	info = Obtener_Archivo (path_info);
	PA_Load16bitBitmap(pantalla,info);
}
 
 
//Menú principal
void animacionmenu(void)
{
   //Secuencia para que se cargue un fondo al azar
   PA_SetBrightness(1,brillo);
	PA_Init16bitBg(1,3);
	Cargar_Bg_16bit(1,"pantallainicio2");
 
	//Secuencia para aumentar y reducir brillo (efecto destelle)
	for(brillo==-31; brillo<=31; brillo++)
	{
	   PA_SetBrightness(1,brillo);
	   PA_WaitForVBL();
	}
	PA_PlaySimpleSound(musicainicio);		//La música del menú se inicia aquí
	for(brillo==31; brillo>=0; brillo--)
	{
	   PA_SetBrightness(1,brillo);
	   PA_WaitForVBL();
	}
 
	//Se carga el logo
	PA_EasyBgLoad(0,3,logo);
 
	//Carga e paleta para sprites del menú
	PA_LoadSpritePal(0,0,(void*)menu_Pal);
 
	//Mientras se siga en el menú
	while (menu==true)
	{
	   //Secuencia para la animación del logo
	   if(logox<=241)	logox+=10;
	   PA_EasyBgScrollX(0,3,logox);
	   if(tiempo<60)	tiempo++;
	   if(logoy<=50 && logox>241 && tiempo==60)	logoy+=1;
	   PA_EasyBgScrollY(0,3,logoy);
 
	   //Cuando acaba la animación, se cargan los sprites
	   if(logox>241 && logoy>=50 && spritesmenu==false)
	   {
	      PA_CreateSprite(0,0,(void*)comenzar_Sprite,OBJ_SIZE_64X32,1,0,95,75);
	      PA_CreateSprite(0,1,(void*)opciones_Sprite,OBJ_SIZE_64X32,1,0,95,102);
	      PA_CreateSprite(0,2,(void*)creditos_Sprite,OBJ_SIZE_64X32,1,0,95,134);
	      spritesmenu=true;
	   }
 
	   //Si se toca comenzar, se pasa al juego
	   if(PA_SpriteTouched(0))
	   {
	      juego=true;
	      nivel=1;
	      menu=false;
 
	      PA_StopSound(0);
	   }   
 
	   //Si se toca créditos, sale del menú y se va a los créditos
		if(PA_SpriteTouched(2))
		{
		   creditossi=true;
		   menu=false;
		}
 
		PA_WaitForVBL();		//Actualiza la pantalla...
	}
 
	//Al salir del menú, se borran los fondos y sprites
	PA_Clear16bitBg(1);
	PA_DeleteBg(0,3);
	PA_ResetBgSys();
	PA_DeleteSprite(0,0);
	PA_DeleteSprite(0,1);
	PA_DeleteSprite(0,2);
	spritesmenu=false;
}
 
//Función de los créditos
void creditos(void)
{
   PA_DualEasyBgLoad(0,listacreditos);		//Carga los créditos (fondo Dual)
   PA_SetScreenSpace(0);		//Espacio entre pantallas nulo
 
   //Bucle para la animación de los créditos
   while(creditossi==true)
   {
      //Animación para que los créditos suban
      creditosy++;
      if(creditosy<=1100)	PA_DualEasyBgScrollY(0,creditosy);
 
      //Al acabarse los créditos, paran de subir
      else	PA_DualEasyBgScrollY(0,1100);
 
      //Al parar, pulsa A para volver al menú
      if(Pad.Newpress.A && creditosy>=1100)
		{
		   creditossi=false;
		   menu=true;
		   creditosy=0;
		}
 
      PA_WaitForVBL();		//Actualiza la pantalla
   }
 
	PA_DualDeleteBg(0);		//Borra los créditos
}
 
//Fución para volver al menú desde opciones y créditos
void volveralmenu(void)
{
   //Inicia y carga de nuevo el fondo de 16bit
   PA_Init16bitBg(1,3);
   if(fondomenu==0)	PA_Load16bitBitmap(1,pantallainicio_Bitmap);
	if(fondomenu==1)	PA_Load16bitBitmap(1,pantallainicio2_Bitmap);
	if(fondomenu==2)	PA_Load16bitBitmap(1,pantallainicio3_Bitmap);
	if(fondomenu==3)	PA_Load16bitBitmap(1,pantallainicio4_Bitmap);
 
	//Carga de nuevo el logo...
	PA_EasyBgLoad(0,3,logo);
 
	//Y la paleta
	PA_LoadSpritePal(0,0,(void*)menu_Pal);
 
	//Bucle del menú principal
	while (menu==true)
	{
	   //Animación del logo...
	   if(logox<=241)	logox+=10;
	   PA_EasyBgScrollX(0,3,logox);
	   if(tiempo<60)	tiempo++;
	   if(logoy<=50 && logox>241 && tiempo==60)	logoy+=1;
	   PA_EasyBgScrollY(0,3,logoy);
 
	   //Cargado de los sprites del menú...
	   if(logox>241 && logoy>=50 && spritesmenu==false)
	   {
	      PA_CreateSprite(0,0,(void*)comenzar_Sprite,OBJ_SIZE_64X32,1,0,95,75);
	      PA_CreateSprite(0,1,(void*)opciones_Sprite,OBJ_SIZE_64X32,1,0,95,102);
	      PA_CreateSprite(0,2,(void*)creditos_Sprite,OBJ_SIZE_64X32,1,0,95,134);
	      spritesmenu=true;
	   }
 
	   //Hacia los créditos
		if(PA_SpriteTouched(2))
		{
		   creditossi=true;
		   menu=false;
		}
 
		PA_WaitForVBL();		//Actualiza la pantalla...
	}
 
	//Se borran sprites y fondos del menú
	PA_Clear16bitBg(1);
	PA_DeleteBg(0,3);
	PA_ResetBgSys();
	PA_DeleteSprite(0,0);
	PA_DeleteSprite(0,1);
	PA_DeleteSprite(0,2);
	spritesmenu=false;
}

Salu2


Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderás trucos para resolver tus dudas antes.

Imagen de kNightFox

El error tiene pinta a que

El error tiene pinta a que seha quedado sin spacio para incluir archivos de datos, pero....

Imagen de exterminator

¿Sin espacios?

¿Es probable de que por un bucle mal cerrado o algo, estoy volcando archivos sin parar? Es lo único que se me ocurre...

Salu2


Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderás trucos para resolver tus dudas antes.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.