- 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:
2017-01-23 05:33:37 +00:00
parent c17168c6d3
commit b43657166c
6 changed files with 43 additions and 17 deletions
+18 -4
View File
@@ -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
+16 -4
View File
@@ -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]))
-1
View File
@@ -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
View File
@@ -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
View File
@@ -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);
+1
View File
@@ -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;