gba compile problem records

FP error occurs, GNUARM "ERROR: xxx.o uses software FP, whereas main.elf uses hardware FP"
Use GNUARM tool chain (arm-elf-) may occur when this error.
May be due to:
a) Use-mthumb-interwork compiled. s
b) compile. c generated. o in the link on. s generated. o file in front of the

Generally need to press the main menu Project-> Clean ...
Makefile dependency mechanism may result in part. O not cause the error changes

CDT determine whether the debug version of elf:
If you are creating a pure Makefile project requires the project properties -> C / C + + Build-> Settings in check the Elf Parser
While ensuring Makefile to compile each. O use-g3-O0 (third level debugging, the zero level optimization)

Operational issues:
As both build and run the vba is difficult to judge the rom gba is normal (for example, some missing. O files)
Some ways to determine:
Start with a relatively high CPU when the screen is white layer model viewer can not see what is

Hou occur when debugging Source not found the problem:
Mode debugging using gdbserver debugger and found that this situation can not add a direct result of the breakpoint.
Observed Debug window, find the path name changed because the original C: \ xx \ xx into \ xx \ xx \ xx.
CDT do not know which disk partition should be to find. C file.
The solution is to Debug Configurations-> Source-> Add-> Path Mapping Add Mapping.
For example, debugging code in the D drive, on the set \ maps D: \

Added: If you open the same port more than 55,555 debugging causes errors
So, step through attention to a single instance of the run before.
Also, select gdbserver debugger, select the tcp 55555 port
And manually specify the arm-elf-gdb.exe.
Debugging before opening vba, for example, start with a batch VisualBoyAdvance-SDL
@ Echo off
set DEBUG_PATH = D: \ software \ mingwdev \ gba \ gbadev
set DEBUG_ELF = step2.elf
set DEBUG_FLAGS =- Gtcp
% DEBUG_PATH% \ common \ bin \ VisualBoyAdvance-SDL.exe% DEBUG_FLAGS%% DEBUG_PATH% \% DEBUG_ELF%
@ Echo on
Then double-click the Start CDT.
Or refer to the official testing method .

1) the Step 2
I offer Step 2. On the basis of the source code written in Makefile, used for CDT debugging.

#  Description  :
# PREFIX: Specifies that the compiler  :
#       arm-elf- : GNUARM
# GBAFIX: Need to point to the specified  GBAFIX( Because there is no GNUARM  )
# DFILES: Specify those .d files need to be clear  ( Open the debug build  )

#  Environmental parameters  
MAKEFLAGS += --no-print-directory
SHELL      = sh

#  Tool chain             
AS              = arm-elf-as
CC              = arm-elf-gcc
CPP             = arm-elf-g++
LD              = arm-elf-g++
AR              = arm-elf-ar
OBJCOPY = arm-elf-objcopy
NM              = arm-elf-nm
GBAFIX  = ./common/bin/gbafix

# main File and the destination file name, and  gamecode
NAME    = step2
NMFILE      = $(NAME).nm
TARGET_ELF      = $(NAME).elf
TARGET_BIN      = $(NAME).gba
MAPFILE     = $(NAME).map

# .ld File  ( The linker configuration  ) References and whether to generate a .map file  ( Generate a report  )(-T,-Map)
LDFILEFLAGS   = -T./common/ld/gba_cart.ld
MAPFILEFLAGS  = #-Wl,-Map $(NAME).map

#  The header file and library file directory, the directory and the library name  (-I,-L,-l)
LIBS    = -lstdc++

#  Need to be compiled .o and need to clear the  .o And  .d
SFILES  = common/asm/crt0.s common/asm/div.s common/asm/vba.s
 common/gbadev/common.d common/gbadev/cpu_arm.d common/gbadev/gamemath_arm.d \
 common/gbadev/mt19937ar.d \
 common/gbadev/common.c common/gbadev/cpu_arm.c common/gbadev/gamemath_arm.c \
 common/gbadev/mt19937ar.c \

 common/asm/crt0.o  common/asm/div.o common/asm/vba.o \
 common/gbadev/common.o common/gbadev/cpu_arm.o common/gbadev/gamemath_arm.o \
 common/gbadev/mt19937ar.o \
 step2.o \

#  Error OFILES lead Simulator is not working properly  
_OFILES = common/asm/crt0.o step2.o


#  Compile tools default parameters  
ASFLAGS = --fatal-warnings 

 -MMD -mthumb -mthumb-interwork -nostdlib -fverbose-asm -fpeephole \
 -mtune=arm7tdmi -mcpu=arm7tdmi \
 -Wall -W -Wshadow -Wno-unused-parameter -Wno-strict-aliasing \
 $(INCDIR) \

 -nostartfiles -Wall

.PHONY: all clean
        @make $(TARGET_BIN)


        @echo -- Build GBA...
        $(OBJCOPY) -v -O binary $< $@
        $(GBAFIX) $@ -t$(NAME) -c$(GAMECODE)

        @echo -- Generate MAP and Build ELF...
        @echo no content > $(MAPFILE)
        $(LD) -o $@ $(OFILES) $(LDFLAGS)

Although no expert in this Makefile to write a technical content, but after all upgraded (for compiling. O files need to be individually specified)

2) I compiled with GNUARM tool chain, because there is no specific gba GNUARM development libraries and tools, you can take that from devkitPro.
For example gbafix.exe:

3) run the CDT environment variables used to set the batch is

@ Set path =% cd% \ eclipse-cpp-galileo-SR2-win32 \;% path%
@ Set path =% cd% \ devkitPro \ bin;% path%
@ Set path =% cd% \ GNUARM \ bin;% path%
start eclipse.exe
  • StumbleUpon
  • Digg
  • TwitThis
  • Mixx
  • Technorati
  • Facebook
  • NewsVine
  • Reddit
  • Google
  • LinkedIn
  • YahooMyWeb

Related Posts of gba compile problem records

  • JavaScript is an object-oriented MVC-based framework for the implementation of non-absolute [original] [add precision application]

    Author: Topcss QQ: 419074376 E-mail: andpai1.0 @ Time :2009-03-08 Just look at JavaEye News Monthly - January 2009 - No. 11 overall, he saw a surprise, there is JS-based implementation of the MVC framework, because should not the Internet ( ...

  • hibernate extends mapping

    1. Table pre class hierarachy (a total of mapping a table inside) (discriminator, <subclass name="Pig" discriminator-value="P">) Inheritance tree for each mapping into a table () t_animal id name sex weight height type 1 Pig true

  • Analysis of rails architecture

    After a request, first of all are ActionController. ActionController are rails control center, which itself is a module, module which has a base class, all of the controller, including all ApplicationController inheritance base. base of the main func ...

  • Firebug Guide (four) --- how to use the Firebug command line API to provide debugging js procedures (below)

    Introduction: Firebug command line are in one of the most useful features. If you have been using Visual Studio (referred to as VS) the experience of development projects, they should know you in the use of VS debugging procedures, "the immediate win

  • Cross-compiling Ruby Dummies

    Recently, I came across someone at a time when cross-compiling ruby seems to run into a lot of questions ( In fact, the original ruby cross compiler should be a very simple a process, and hope that this "Dumm ...

  • JS regular expressions testing and testing tools JS

    <! DOCTYPE HTML PUBLIC "- / / W3C / / DTD HTML 4.01 Transitional / / EN"> <HTML> <HEAD> <TITLE> Javascript regex test page </ TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=GB23

  • bdb: to improve the Berkeley DB for Ruby Bindings

    Berkeley DB Are a high-performance database system, which in the 20th century, early 90's development, he is not a SQL database engine driver, but used to store key / value pairs of data. BDB very fast, can be at most of the operating system to u ...

  • Topic: Shoes - Construction Ruby client gadget Shoes Ruby are cross-platform GUI applications, recently released a new version, it is a very interesting Ruby GUI client, the following are some characteristics of Introduction: 1. Cross-platform support for windo ...

  • Shoes - Construction Ruby client gadget

    Shoes Ruby are cross-platform GUI applications, recently released a new version, it is a very interesting Ruby GUI client, the following are some characteristics of Introduction: 1. Cross-platform support for windows / linux / mac os 2. Very small, t ...

  • hibernate load delay

    Lazy loading: Lazy loading mechanism is in order to avoid unnecessary performance overhead and put forward the so-called lazy loading is required when the real data at a time when the real implementation of the data load operation. At Hibernate provides f

blog comments powered by Disqus
Recent Entries
Tag Cloud
Random Entries