This commit is contained in:
Serge Vakulenko
2015-05-15 22:59:54 -07:00
4 changed files with 26 additions and 54 deletions

View File

@@ -17,10 +17,7 @@ char *
ctime(t) ctime(t)
time_t *t; time_t *t;
{ {
struct tm *localtime(); return asctime(localtime(t));
char *asctime();
return(asctime(localtime(t)));
} }
/* /*

View File

@@ -151,25 +151,8 @@ dumpregs(frame)
{ {
unsigned int cause; unsigned int cause;
const char *code = 0; const char *code = 0;
unsigned *stacktop = (unsigned *)0x80007ffc; unsigned *stacktop = (unsigned*) 0x80007ffc;
unsigned *p = (unsigned*)frame; unsigned *p = (unsigned*) frame;
printf("************************************\n");
printf("*******STACK DUMP START*************\n");
printf("frame = %8x\n", frame);
printf("stack data\n");
while (p <= stacktop) {
printf(" %8x", *p++);
if (p <= stacktop)
printf(" %8x", *p++);
if (p <= stacktop)
printf(" %8x", *p++);
if (p <= stacktop)
printf(" %8x", *p++);
printf("\n");
}
printf("*******STACK DUMP END***************\n");
printf("************************************\n");
printf("\n*** 0x%08x: exception ", frame [FRAME_PC]); printf("\n*** 0x%08x: exception ", frame [FRAME_PC]);
@@ -198,16 +181,30 @@ dumpregs(frame)
printf("*** badvaddr = 0x%08x\n", printf("*** badvaddr = 0x%08x\n",
mips_read_c0_register(C0_BADVADDR, 0)); mips_read_c0_register(C0_BADVADDR, 0));
} }
printf(" t0 = %8x s0 = %8x t8 = %8x lo = %8x\n",
printf("*** stack frame at %8x\n", frame);
while (p <= stacktop) {
printf(" %8x", *p++);
if (p <= stacktop)
printf(" %8x", *p++);
if (p <= stacktop)
printf(" %8x", *p++);
if (p <= stacktop)
printf(" %8x", *p++);
printf("\n");
}
printf("*** registers:\n");
printf(" t0 = %8x s0 = %8x t8 = %8x lo = %8x\n",
frame [FRAME_R8], frame [FRAME_R16], frame [FRAME_R8], frame [FRAME_R16],
frame [FRAME_R24], frame [FRAME_LO]); frame [FRAME_R24], frame [FRAME_LO]);
printf("at = %8x t1 = %8x s1 = %8x t9 = %8x hi = %8x\n", printf("at = %8x t1 = %8x s1 = %8x t9 = %8x hi = %8x\n",
frame [FRAME_R1], frame [FRAME_R9], frame [FRAME_R17], frame [FRAME_R1], frame [FRAME_R9], frame [FRAME_R17],
frame [FRAME_R25], frame [FRAME_HI]); frame [FRAME_R25], frame [FRAME_HI]);
printf("v0 = %8x t2 = %8x s2 = %8x status = %8x\n", printf("v0 = %8x t2 = %8x s2 = %8x status = %8x\n",
frame [FRAME_R2], frame [FRAME_R10], frame [FRAME_R2], frame [FRAME_R10],
frame [FRAME_R18], frame [FRAME_STATUS]); frame [FRAME_R18], frame [FRAME_STATUS]);
printf("v1 = %8x t3 = %8x s3 = %8x cause = %8x\n", printf("v1 = %8x t3 = %8x s3 = %8x cause = %8x\n",
frame [FRAME_R3], frame [FRAME_R11], frame [FRAME_R3], frame [FRAME_R11],
frame [FRAME_R19], cause); frame [FRAME_R19], cause);
printf("a0 = %8x t4 = %8x s4 = %8x gp = %8x epc = %8x\n", printf("a0 = %8x t4 = %8x s4 = %8x gp = %8x epc = %8x\n",
@@ -282,7 +279,7 @@ exception(frame)
/*NOTREACHED*/ /*NOTREACHED*/
case CA_IBE + USER: /* Bus error, instruction fetch */ case CA_IBE + USER: /* Bus error, instruction fetch */
case CA_DBE + USER: /* Bus error, load or store */ case CA_DBE + USER: /* Bus error, load or store */
printf("*** 0x%08x: bus error\n", frame [FRAME_PC]); printf("*** 0x%08x: %s: bus error\n", frame [FRAME_PC], u.u_comm);
psig = SIGBUS; psig = SIGBUS;
break; break;
case CA_RI + USER: /* Reserved instruction */ case CA_RI + USER: /* Reserved instruction */
@@ -303,8 +300,8 @@ exception(frame)
break; break;
case CA_AdEL + USER: /* Address error, load or instruction fetch */ case CA_AdEL + USER: /* Address error, load or instruction fetch */
case CA_AdES + USER: /* Address error, store */ case CA_AdES + USER: /* Address error, store */
printf("*** 0x%08x: bad address 0x%08x\n", printf("*** 0x%08x: %s: bad address 0x%08x\n",
frame [FRAME_PC], mips_read_c0_register(C0_BADVADDR, 0)); frame [FRAME_PC], u.u_comm, mips_read_c0_register(C0_BADVADDR, 0));
psig = SIGSEGV; psig = SIGSEGV;
break; break;
} }

View File

@@ -18,4 +18,4 @@ device gpio
device adc device adc
device uart1 device uart1
device bootloader button=A10 crystal=8 jump=0x9d000000 invled=A0 invled2=A1 invled3=D9 clear=D2 #device bootloader button=A10 crystal=8 jump=0x9d000000 invled=A0 invled2=A1 invled3=D9 clear=D2

View File

@@ -6,24 +6,10 @@ S = ../../../tools/configsys/../../sys/kernel
vpath %.c $(M):$(S) vpath %.c $(M):$(S)
vpath %.S $(M):$(S) vpath %.S $(M):$(S)
KERNOBJ += adc.o clock.o cons.o devsw.o exception.o exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o gpio.o init_main.o init_sysent.o kern_clock.o kern_descrip.o kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o kern_subr.o kern_synch.o kern_sysctl.o kern_time.o machdep.o mem.o rd_sd.o rdisk.o signal.o spi_bus.o startup.o subr_prf.o subr_rmap.o swap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o syscalls.o sysctl.o tty.o tty_subr.o tty_tty.o uart.o ufs_alloc.o ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o usb_device.o usb_function_cdc.o usb_uart.o vers.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o KERNOBJ += adc.o clock.o cons.o devcfg.o devsw.o exception.o exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o gpio.o init_main.o init_sysent.o kern_clock.o kern_descrip.o kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o kern_subr.o kern_synch.o kern_sysctl.o kern_time.o machdep.o mem.o rd_sd.o rdisk.o signal.o spi_bus.o startup.o subr_prf.o subr_rmap.o swap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o syscalls.o sysctl.o tty.o tty_subr.o tty_tty.o uart.o ufs_alloc.o ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o usb_device.o usb_function_cdc.o usb_uart.o vers.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o
EXTRA_TARGETS = bootloader EXTRA_TARGETS =
DEFS += -DADC_ENABLED=YES DEFS += -DADC_ENABLED=YES
DEFS += -DBL_BUTTON_PIN=10
DEFS += -DBL_BUTTON_PORT=TRISA
DEFS += -DBL_CLEAR_PIN=2
DEFS += -DBL_CLEAR_PORT=TRISD
DEFS += -DBL_CRYSTAL=8
DEFS += -DBL_LED2_INVERT
DEFS += -DBL_LED2_PIN=1
DEFS += -DBL_LED2_PORT=TRISA
DEFS += -DBL_LED3_INVERT
DEFS += -DBL_LED3_PIN=9
DEFS += -DBL_LED3_PORT=TRISD
DEFS += -DBL_LED_INVERT
DEFS += -DBL_LED_PIN=0
DEFS += -DBL_LED_PORT=TRISA
DEFS += -DBUS_DIV=1 DEFS += -DBUS_DIV=1
DEFS += -DBUS_KHZ='CPU_KHZ/BUS_DIV' DEFS += -DBUS_KHZ='CPU_KHZ/BUS_DIV'
DEFS += -DCONSOLE_DEVICE=ttyUSB0 DEFS += -DCONSOLE_DEVICE=ttyUSB0
@@ -59,16 +45,9 @@ DEFS += -DDC3_VBUSON=DEVCFG3_FVBUSONIO
DEFS += -DEXEC_AOUT DEFS += -DEXEC_AOUT
DEFS += -DEXEC_ELF DEFS += -DEXEC_ELF
DEFS += -DEXEC_SCRIPT DEFS += -DEXEC_SCRIPT
DEFS += -DFLASH_JUMP=0x9d000000
DEFS += -DGPIO_CLEAR_PIN=2 DEFS += -DGPIO_CLEAR_PIN=2
DEFS += -DGPIO_CLEAR_PORT=TRISD DEFS += -DGPIO_CLEAR_PORT=TRISD
DEFS += -DGPIO_ENABLED=YES DEFS += -DGPIO_ENABLED=YES
DEFS += -DHID_FEATURE_REPORT_BYTES=2
DEFS += -DHID_INPUT_REPORT_BYTES=2
DEFS += -DHID_INT_IN_EP_SIZE=64
DEFS += -DHID_INT_OUT_EP_SIZE=64
DEFS += -DHID_OUTPUT_REPORT_BYTES=2
DEFS += -DHID_RPT01_SIZE=29
DEFS += -DKERNEL DEFS += -DKERNEL
DEFS += -DLED_KERNEL_INVERT=YES DEFS += -DLED_KERNEL_INVERT=YES
DEFS += -DLED_KERNEL_PIN=0 DEFS += -DLED_KERNEL_PIN=0
@@ -87,7 +66,6 @@ DEFS += -DSD0_PORT=1
DEFS += -DUART1_ENABLED=YES DEFS += -DUART1_ENABLED=YES
DEFS += -DUARTUSB_ENABLED=YES DEFS += -DUARTUSB_ENABLED=YES
DEFS += -DUCB_METER DEFS += -DUCB_METER
DEFS += -DUSB_EP0_BUFF_SIZE=8
DEFS += -DUSB_MAX_EP_NUMBER=3 DEFS += -DUSB_MAX_EP_NUMBER=3
DEFS += -DUSB_NUM_STRING_DESCRIPTORS=3 DEFS += -DUSB_NUM_STRING_DESCRIPTORS=3