- bootloader prepared for use mit mips debugger
- changed address of debugger entry - mips_dbg: no use om memset and memcpy git-svn-id: http://moon:8086/svn/mips@120 a8ebac50-d88d-4704-bea3-6648445a41b3
This commit is contained in:
+20
-4
@@ -5,14 +5,24 @@
|
||||
BOARD ?= ml402
|
||||
TLB ?= no
|
||||
ENDIANESS ?= eb
|
||||
|
||||
DEBUGGER ?= gdb
|
||||
|
||||
ifeq ($(ENDIANESS),el)
|
||||
ENDIAN_FLAGS=-EL
|
||||
else
|
||||
ENDIAN_FLAGS=-EB
|
||||
endif
|
||||
|
||||
CFLAGS=$(ENDIAN_FLAGS) -Os -flto -Wl,-M -I. -I../libsys -msoft-float -march=r3000 -G0 -I../libsys/boards/$(BOARD) -D$(BOARD) -DWITH_DEBUGGER -DWITH_GDB_STUB
|
||||
ifeq ($(DEBUGGER),gdb)
|
||||
DBG_FLAGS := -DWITH_DEBUGGER -DWITH_GDB_STUB
|
||||
DBG_OBJ := gdb_stub.o
|
||||
endif
|
||||
ifeq ($(DEBUGGER),mips)
|
||||
DBG_FLAGS := -DWITH_DEBUGGER
|
||||
DBG_OBJ := mips_dbg.o mips_dis.o
|
||||
endif
|
||||
|
||||
CFLAGS=$(ENDIAN_FLAGS) -Os -flto -Wl,-M -I. -I../libsys -msoft-float -march=r3000 -G0 -I../libsys/boards/$(BOARD) -D$(BOARD) $(DBG_FLAGS)
|
||||
LFLAGS=$(ENDIAN_FLAGS) -Os -flto -nostartfiles -nodefaultlibs -nostdlib
|
||||
|
||||
ifeq ($(TLB),yes)
|
||||
@@ -38,8 +48,8 @@ ROMGEN=$(MIPS_HOME)/tools/romgen
|
||||
|
||||
all: $(BUILD_DIR) $(BUILD_DIR)/bootloader.elf $(BUILD_DIR)/bootloader_with_flash.elf
|
||||
|
||||
OBJS-ml402=$(addprefix $(BUILD_DIR)/, startup.o kernel.o cop0.o libsys.o srec.o board.o uart.o gdb_stub.o)
|
||||
OBJS-denano=$(addprefix $(BUILD_DIR)/, startup.o kernel.o cop0.o libsys.o srec.o board.o uart.o gdb_stub.o)
|
||||
OBJS-ml402=$(addprefix $(BUILD_DIR)/, startup.o kernel.o cop0.o libsys.o srec.o board.o uart.o $(DBG_OBJ))
|
||||
OBJS-denano=$(addprefix $(BUILD_DIR)/, startup.o kernel.o cop0.o libsys.o srec.o board.o uart.o $(DBG_OBJ))
|
||||
|
||||
$(BUILD_DIR)/cop0.o : ../libsys/cop0.c
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
@@ -50,6 +60,12 @@ $(BUILD_DIR)/uart.o : ../libsys/uart.c
|
||||
$(BUILD_DIR)/board.o : boards/$(BOARD)/board.c
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
$(BUILD_DIR)/mips_dbg.o : ../libsys/mips_dbg.c
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
$(BUILD_DIR)/mips_dis.o : ../libsys/mips_dis.c
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
$(BUILD_DIR)/gdb_stub.o : ../libsys/gdb_stub.c
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
|
||||
@@ -12,9 +12,14 @@
|
||||
|
||||
#ifdef WITH_DEBUGGER
|
||||
extern uart_if_t uart_if[];
|
||||
extern void handle_exception (unsigned long *registers);
|
||||
extern int dbg_stub(struct xcptcontext * xcp) __attribute__ ((section (".dbg_stub"))) __attribute__ ((used));
|
||||
|
||||
#ifdef WITH_GDB_STUB
|
||||
extern void handle_exception (unsigned long *registers);
|
||||
#else
|
||||
extern int dbg_handler(struct xcptcontext * xcp);
|
||||
#endif
|
||||
|
||||
int dbg_stub(struct xcptcontext * xcp) __attribute__ ((section (".dbg_stub"))) __attribute__ ((used));
|
||||
int dbg_stub(struct xcptcontext * xcp)
|
||||
{
|
||||
#ifdef WITH_GDB_STUB
|
||||
|
||||
@@ -21,7 +21,7 @@ SECTIONS
|
||||
*(.ktext)
|
||||
*(.text*)
|
||||
*(.rodata*)
|
||||
. = ORIGIN(rom) + LENGTH(rom) - 0x100;
|
||||
. = ORIGIN(rom) + LENGTH(rom) - 0x40;
|
||||
*(.dbg_stub*)
|
||||
} > rom
|
||||
|
||||
|
||||
Reference in New Issue
Block a user