- choose debugger for app (rom, mips or gdb)
- removed dcache_iv_at workaround - constify - testbench denano enable LEDs git-svn-id: http://moon:8086/svn/mips@126 a8ebac50-d88d-4704-bea3-6648445a41b3
This commit is contained in:
+18
-4
@@ -5,6 +5,7 @@
|
||||
BOARD ?= ml402
|
||||
TLB ?= no
|
||||
ENDIANESS ?= eb
|
||||
DEBUGGER ?= mips
|
||||
|
||||
|
||||
ifeq ($(ENDIANESS),el)
|
||||
@@ -12,8 +13,21 @@ ifeq ($(ENDIANESS),el)
|
||||
else
|
||||
ENDIAN_FLAGS=-EB
|
||||
endif
|
||||
|
||||
CFLAGS=$(ENDIAN_FLAGS) -g -msoft-float -O2 -march=r3000 -I. -Iboards/$(BOARD) -D$(BOARD) -DWITH_ROM_GDBSTUB
|
||||
|
||||
ifeq ($(DEBUGGER),gdb)
|
||||
DBG_FLAGS := -DWITH_GDB_STUB
|
||||
DBG_OBJ := gdb_stub.o
|
||||
endif
|
||||
ifeq ($(DEBUGGER),mips)
|
||||
DBG_FLAGS :=
|
||||
DBG_OBJ := mips_dbg.o mips_dis.o
|
||||
endif
|
||||
ifeq ($(DEBUGGER),rom)
|
||||
DBG_FLAGS := -DWITH_ROM_DEBUGGER
|
||||
endif
|
||||
|
||||
|
||||
CFLAGS=$(ENDIAN_FLAGS) -g -msoft-float -O2 -march=r3000 -I. -Iboards/$(BOARD) -D$(BOARD) $(DBG_FLAGS)
|
||||
|
||||
ifeq ($(TLB),yes)
|
||||
CFLAGS+=-DSYS_IO_BASE=0xAC000000 -DSDRAM_BASE=0x80000000 -DFLASH_BASE_IO=0xA4000000 -DFLASH_BASE_MEM=0x88000000
|
||||
@@ -31,8 +45,8 @@ OBJDUMP=mips-elf-objdump
|
||||
OBJCOPY=mips-elf-objcopy
|
||||
FLASHGEN=flashgen
|
||||
|
||||
OBJS-ml402=$(addprefix $(BUILD_DIR)/, libsys.o xcpt.o syscalls.o cop0.o irq.o mips_dbg.o mips_dis.o mips_ps2.o mips_gfx.o console.o screen.o uart.o board.o gpio.o gdb_stub.o)
|
||||
OBJS-denano=$(addprefix $(BUILD_DIR)/, libsys.o xcpt.o syscalls.o cop0.o irq.o mips_dbg.o mips_dis.o console.o uart.o board.o gpio.o gdb_stub.o)
|
||||
OBJS-ml402=$(addprefix $(BUILD_DIR)/, libsys.o xcpt.o syscalls.o cop0.o irq.o $(DBG_OBJ) console.o uart.o board.o gpio.o mips_ps2.o mips_gfx.o screen.o)
|
||||
OBJS-denano=$(addprefix $(BUILD_DIR)/, libsys.o xcpt.o syscalls.o cop0.o irq.o $(DBG_OBJ) console.o uart.o board.o gpio.o)
|
||||
|
||||
all: $(BUILD_DIR) $(BUILD_DIR)/libsys.a
|
||||
|
||||
|
||||
@@ -12,17 +12,29 @@
|
||||
#include "../../regdef.h"
|
||||
|
||||
extern uart_if_t uart_if[];
|
||||
extern void handle_exception (unsigned long *registers);
|
||||
|
||||
int gdb_stub(struct xcptcontext * xcp)
|
||||
#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
|
||||
handle_exception((unsigned long *)xcp);
|
||||
return 0;
|
||||
#else
|
||||
return dbg_handler(xcp);
|
||||
#endif
|
||||
|
||||
}
|
||||
#ifdef WITH_ROM_GDBSTUB
|
||||
|
||||
#ifdef WITH_ROM_DEBUGGER
|
||||
const fp_xcpt_t dbg_func = (fp_xcpt_t)0xbfc01fc0;
|
||||
#else
|
||||
const fp_xcpt_t dbg_func = (fp_xcpt_t)gdb_stub;
|
||||
const fp_xcpt_t dbg_func = (fp_xcpt_t)dbg_stub;
|
||||
#endif
|
||||
|
||||
#define ARRAYSIZE(a) (sizeof(a)/sizeof(a[0]))
|
||||
|
||||
@@ -144,7 +144,6 @@ void DCACHE_invalidate_at(uint32_t* pPtr)
|
||||
(
|
||||
"mtc0 %[pPtr], $31\n"
|
||||
"cop0 35\n"
|
||||
"nop" // fix needed: don't work without nop on de-nano
|
||||
:
|
||||
: [pPtr] "r" (pPtr)
|
||||
);
|
||||
|
||||
+4
-4
@@ -100,7 +100,7 @@ void cg_writechar(void const *pInst, char c)
|
||||
|
||||
}
|
||||
|
||||
void cg_set_csr_x(vga_if_t *pIF, uint32_t coord)
|
||||
void cg_set_csr_x(vga_if_t const *pIF, uint32_t coord)
|
||||
{
|
||||
assert (pIF);
|
||||
|
||||
@@ -109,7 +109,7 @@ void cg_set_csr_x(vga_if_t *pIF, uint32_t coord)
|
||||
*pIF->pCSRX = coord;
|
||||
}
|
||||
|
||||
void cg_set_csr_y(vga_if_t *pIF, uint32_t coord)
|
||||
void cg_set_csr_y(vga_if_t const *pIF, uint32_t coord)
|
||||
{
|
||||
assert (pIF);
|
||||
|
||||
@@ -118,7 +118,7 @@ void cg_set_csr_y(vga_if_t *pIF, uint32_t coord)
|
||||
*pIF->pCSRY = coord;
|
||||
}
|
||||
|
||||
void cg_clr_line(vga_if_t *pIF)
|
||||
void cg_clr_line(vga_if_t const *pIF)
|
||||
{
|
||||
assert (pIF);
|
||||
|
||||
@@ -126,7 +126,7 @@ void cg_clr_line(vga_if_t *pIF)
|
||||
*pIF->pCTRL |= SYS_VGA_BIT_CLRLINE;
|
||||
}
|
||||
|
||||
void cg_clr_screen(vga_if_t *pIF)
|
||||
void cg_clr_screen(vga_if_t const *pIF)
|
||||
{
|
||||
assert (pIF);
|
||||
|
||||
|
||||
+4
-4
@@ -26,10 +26,10 @@ typedef struct _svga_if_t
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void cg_set_csr_x(vga_if_t *pIF, uint32_t coord);
|
||||
void cg_set_csr_y(vga_if_t *pIF, uint32_t coord);
|
||||
void cg_clr_line(vga_if_t *pIF);
|
||||
void cg_clr_screen(vga_if_t *pIF);
|
||||
void cg_set_csr_x(vga_if_t const *pIF, uint32_t coord);
|
||||
void cg_set_csr_y(vga_if_t const *pIF, uint32_t coord);
|
||||
void cg_clr_line(vga_if_t const *pIF);
|
||||
void cg_clr_screen(vga_if_t const *pIF);
|
||||
|
||||
uint32_t Screen_get_resx(void);
|
||||
uint32_t Screen_get_resy(void);
|
||||
|
||||
@@ -833,6 +833,7 @@ int main (void)
|
||||
|
||||
g_cnt = 1;
|
||||
gpio_init(&gpio_if, SYS_GPIO_0_BASE);
|
||||
gpio_write(&gpio_if, GPIO_0_MASK_LED, GPIO_0_ALIGN_LED, GPIO_DIR_OFFSET, GPIO_0_MASK_LED);
|
||||
|
||||
*pTim0_cnt = 0;
|
||||
*pTim1_cnt = 0;
|
||||
|
||||
Reference in New Issue
Block a user