summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/m68k/gen68340/startup/dumpanic.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@oarcorp.com>2014-10-14 09:34:52 -0500
committerJoel Sherrill <joel.sherrill@oarcorp.com>2014-10-16 08:58:47 -0500
commitc28f5033e57df63b2569a5fb0d75925529e6fdce (patch)
tree7fd49d3d7f8286b03eb7a1d52af439f37ef34086 /c/src/lib/libbsp/m68k/gen68340/startup/dumpanic.c
parenti386/pc386: Fix warnings (diff)
downloadrtems-c28f5033e57df63b2569a5fb0d75925529e6fdce.tar.bz2
m68k/gen68340: Fix warnings
Diffstat (limited to 'c/src/lib/libbsp/m68k/gen68340/startup/dumpanic.c')
-rw-r--r--c/src/lib/libbsp/m68k/gen68340/startup/dumpanic.c272
1 files changed, 138 insertions, 134 deletions
diff --git a/c/src/lib/libbsp/m68k/gen68340/startup/dumpanic.c b/c/src/lib/libbsp/m68k/gen68340/startup/dumpanic.c
index 171838f4b3..727ba96209 100644
--- a/c/src/lib/libbsp/m68k/gen68340/startup/dumpanic.c
+++ b/c/src/lib/libbsp/m68k/gen68340/startup/dumpanic.c
@@ -1,6 +1,8 @@
/*
* M68340/349 registers and stack dump if an exception is raised
- *
+ */
+
+/*
* Author:
* Pascal Cadic
* France Telecom - CNET/DSM/TAM/CAT
@@ -16,106 +18,108 @@
* http://www.rtems.org/license/LICENSE.
*/
-#include <stdio.h>
+#include <bsp.h>
+#include <rtems/bspIo.h>
-const char *exceptionName[] =
- {
- "INITIAL STACK POINTER",
- "INITIAL PROGRAM COUNTER",
- "BUS ERROR",
- "ADDRESS ERROR",
- "ILLEGAL INSTRUCTION",
- "DIVISION BY ZERO",
- "CHK, CHK2",
- "TRAPcc, TRAPv",
- "PRIVILEGE VIOLATION",
- "TRACE",
- "LINE A EMULATOR",
- "LINE F EMULATOR",
- "HARDWARE BREAK",
- "COPROCESSOR PROTOCOL VIOLATION",
- "FORMAT ERROR",
- "UNINITIALIZED INTERRUPT",
- "RESERVED 16",
- "RESERVED 17",
- "RESERVED 18",
- "RESERVED 19",
- "RESERVED 20",
- "RESERVED 21",
- "RESERVED 22",
- "RESERVED 23",
- "SPURIOUS INTERRUPT",
- "LEVEL 1 AUTOVECTOR",
- "LEVEL 2 AUTOVECTOR",
- "LEVEL 3 AUTOVECTOR",
- "LEVEL 4 AUTOVECTOR",
- "LEVEL 5 AUTOVECTOR",
- "LEVEL 6 AUTOVECTOR",
- "LEVEL 7 AUTOVECTOR",
- "TRAP 1",
- "TRAP 2",
- "TRAP 3",
- "TRAP 4",
- "TRAP 5",
- "TRAP 6",
- "TRAP 7",
- "TRAP 8",
- "TRAP 9",
- "TRAP 10",
- "TRAP 11",
- "TRAP 12",
- "TRAP 13",
- "TRAP 14",
- "TRAP 15",
- "VECTOR 48",
- "VECTOR 49",
- "VECTOR 50",
- "VECTOR 51",
- "VECTOR 52",
- "VECTOR 53",
- "VECTOR 54",
- "VECTOR 55",
- "VECTOR 56",
- "VECTOR 57",
- "VECTOR 58",
- "VECTOR 59",
- "VECTOR 60",
- "VECTOR 61",
- "VECTOR 62",
- "VECTOR 63",
- };
+const char *exceptionName[] = {
+ "INITIAL STACK POINTER",
+ "INITIAL PROGRAM COUNTER",
+ "BUS ERROR",
+ "ADDRESS ERROR",
+ "ILLEGAL INSTRUCTION",
+ "DIVISION BY ZERO",
+ "CHK, CHK2",
+ "TRAPcc, TRAPv",
+ "PRIVILEGE VIOLATION",
+ "TRACE",
+ "LINE A EMULATOR",
+ "LINE F EMULATOR",
+ "HARDWARE BREAK",
+ "COPROCESSOR PROTOCOL VIOLATION",
+ "FORMAT ERROR",
+ "UNINITIALIZED INTERRUPT",
+ "RESERVED 16",
+ "RESERVED 17",
+ "RESERVED 18",
+ "RESERVED 19",
+ "RESERVED 20",
+ "RESERVED 21",
+ "RESERVED 22",
+ "RESERVED 23",
+ "SPURIOUS INTERRUPT",
+ "LEVEL 1 AUTOVECTOR",
+ "LEVEL 2 AUTOVECTOR",
+ "LEVEL 3 AUTOVECTOR",
+ "LEVEL 4 AUTOVECTOR",
+ "LEVEL 5 AUTOVECTOR",
+ "LEVEL 6 AUTOVECTOR",
+ "LEVEL 7 AUTOVECTOR",
+ "TRAP 1",
+ "TRAP 2",
+ "TRAP 3",
+ "TRAP 4",
+ "TRAP 5",
+ "TRAP 6",
+ "TRAP 7",
+ "TRAP 8",
+ "TRAP 9",
+ "TRAP 10",
+ "TRAP 11",
+ "TRAP 12",
+ "TRAP 13",
+ "TRAP 14",
+ "TRAP 15",
+ "VECTOR 48",
+ "VECTOR 49",
+ "VECTOR 50",
+ "VECTOR 51",
+ "VECTOR 52",
+ "VECTOR 53",
+ "VECTOR 54",
+ "VECTOR 55",
+ "VECTOR 56",
+ "VECTOR 57",
+ "VECTOR 58",
+ "VECTOR 59",
+ "VECTOR 60",
+ "VECTOR 61",
+ "VECTOR 62",
+ "VECTOR 63",
+ };
typedef struct {
- unsigned long pc;
- unsigned short sr;
- unsigned short format_id;
- unsigned long d0, d1, d2, d3, d4, d5, d6, d7;
- unsigned long a0, a1, a2, a3, a4, a5, a6, a7;
- unsigned long sfc, dfc, vbr;
+ unsigned long pc;
+ unsigned short sr;
+ unsigned short format_id;
+ unsigned long d0, d1, d2, d3, d4, d5, d6, d7;
+ unsigned long a0, a1, a2, a3, a4, a5, a6, a7;
+ unsigned long sfc, dfc, vbr;
} boot_panic_registers_t;
boot_panic_registers_t _boot_panic_registers;
-extern void RAW_FMT( int minor, const char* fmt, ... );
-extern char RAW_GETC(int minor);
-
/******************************************************
Name: _dbug_dump
Input parameters: sr, pc, stack pointer,
- size to display
+ size to display
Output parameters: -
Description: display the supervisor stack
*****************************************************/
-void _dbug_dump(unsigned short sr, void* pc, unsigned short *stack, int size)
+static void _dbug_dump(
+ unsigned short sr,
+ void* pc,
+ unsigned short *stack,
+ int size
+)
{
-int i;
+ int i;
- RAW_FMT(0,"%x : %x \t%x",0,sr,(unsigned short)(((unsigned)pc)>>16));
- for (i=2; i<size; i++) {
- if ((i%8)==0) RAW_FMT(0,"\n%x :",i/8);
- RAW_FMT(0," %x\t",stack[i-2]);
- }
- RAW_FMT(0,"\n");
+ printk(0,"%x : %x \t%x",0,sr,(unsigned short)(((unsigned)pc)>>16));
+ for (i=2; i<size; i++) {
+ if ((i%8)==0) printk(0,"\n%x :",i/8);
+ printk(0," %x\t",stack[i-2]);
+ }
+ printk(0,"\n");
}
/******************************************************
@@ -123,8 +127,8 @@ int i;
Input parameters: -
Output parameters: -
Description: display microcontroler state. Registers
- values are stored in _boot_panic_registers
- which is filled in _uhoh ASM routine
+ values are stored in _boot_panic_registers
+ which is filled in _uhoh ASM routine
*****************************************************/
void _dbug_dumpanic(void)
{
@@ -134,53 +138,53 @@ void _dbug_dumpanic(void)
unsigned char frametype, *stack;
#define ESCAPE 27
- stack = (unsigned char*)(_boot_panic_registers.a7);
- do {
- status = _boot_panic_registers.sr;
- pc = (void*)_boot_panic_registers.pc;
- faultedAddr = *(void**)(stack+4);
- vector = (_boot_panic_registers.format_id&0x0FFF)>>2;
- frametype = (_boot_panic_registers.format_id&0xF000)>>12;
+ stack = (unsigned char*)(_boot_panic_registers.a7);
+ do {
+ status = _boot_panic_registers.sr;
+ pc = (void*)_boot_panic_registers.pc;
+ faultedAddr = *(void**)(stack+4);
+ vector = (_boot_panic_registers.format_id&0x0FFF)>>2;
+ frametype = (_boot_panic_registers.format_id&0xF000)>>12;
- RAW_FMT(0,"\n---------------------------------------------\n");
- if (vector<64)
- RAW_FMT(0,"%s",exceptionName[vector]);
- else {
- RAW_FMT(0,"RESERVED USER");
- }
- RAW_FMT(0," exception (vector %x, type %x)\n",vector,frametype);
- RAW_FMT(0,"---------------------------------------------\n");
- RAW_FMT(0,"PC : 0x%x ",pc);
- RAW_FMT(0,"A7 : 0x%x ",_boot_panic_registers.a7);
- RAW_FMT(0,"SR : 0x%x\n",status);
- if (frametype==0x0c) {
- RAW_FMT(0,"\nfaulted address = 0x%x\n",faultedAddr);
- }
- RAW_FMT(0,"---------------------------------------------\n");
- RAW_FMT(0," panic regs\n");
- RAW_FMT(0,"---------------------------------------------\n");
- RAW_FMT(0,"D[0..3] : %x \t%x \t%x \t%x\n",
- _boot_panic_registers.d0,_boot_panic_registers.d1,
- _boot_panic_registers.d2,_boot_panic_registers.d3);
- RAW_FMT(0,"D[4..7] : %x \t%x \t%x \t%x\n",
- _boot_panic_registers.d4,_boot_panic_registers.d5,
- _boot_panic_registers.d6,_boot_panic_registers.d7);
- RAW_FMT(0,"A[0..3] : %x \t%x \t%x \t%x\n",
- _boot_panic_registers.a0,_boot_panic_registers.a1,
- _boot_panic_registers.a2,_boot_panic_registers.a3);
- RAW_FMT(0,"A[4..7] : %x \t%x \t%x \t%x\n",
- _boot_panic_registers.a4,_boot_panic_registers.a5,
- _boot_panic_registers.a6,_boot_panic_registers.a7);
+ printk(0,"\n---------------------------------------------\n");
+ if (vector<64)
+ printk(0,"%s",exceptionName[vector]);
+ else {
+ printk(0,"RESERVED USER");
+ }
+ printk(0," exception (vector %x, type %x)\n",vector,frametype);
+ printk(0,"---------------------------------------------\n");
+ printk(0,"PC : 0x%x ",pc);
+ printk(0,"A7 : 0x%x ",_boot_panic_registers.a7);
+ printk(0,"SR : 0x%x\n",status);
+ if (frametype==0x0c) {
+ printk(0,"\nfaulted address = 0x%x\n",faultedAddr);
+ }
+ printk(0,"---------------------------------------------\n");
+ printk(0," panic regs\n");
+ printk(0,"---------------------------------------------\n");
+ printk(0,"D[0..3] : %x \t%x \t%x \t%x\n",
+ _boot_panic_registers.d0,_boot_panic_registers.d1,
+ _boot_panic_registers.d2,_boot_panic_registers.d3);
+ printk(0,"D[4..7] : %x \t%x \t%x \t%x\n",
+ _boot_panic_registers.d4,_boot_panic_registers.d5,
+ _boot_panic_registers.d6,_boot_panic_registers.d7);
+ printk(0,"A[0..3] : %x \t%x \t%x \t%x\n",
+ _boot_panic_registers.a0,_boot_panic_registers.a1,
+ _boot_panic_registers.a2,_boot_panic_registers.a3);
+ printk(0,"A[4..7] : %x \t%x \t%x \t%x\n",
+ _boot_panic_registers.a4,_boot_panic_registers.a5,
+ _boot_panic_registers.a6,_boot_panic_registers.a7);
- RAW_FMT(0," SFC : %x",_boot_panic_registers.sfc);
- RAW_FMT(0," DFC : %x\n",_boot_panic_registers.dfc);
- RAW_FMT(0," VBR : %x\n",_boot_panic_registers.vbr);
- RAW_FMT(0,"---------------------------------------------\n");
- RAW_FMT(0," panic stack\n");
- RAW_FMT(0,"---------------------------------------------\n");
- _dbug_dump(status, pc, (unsigned short*)stack,64*2);
+ printk(0," SFC : %x",_boot_panic_registers.sfc);
+ printk(0," DFC : %x\n",_boot_panic_registers.dfc);
+ printk(0," VBR : %x\n",_boot_panic_registers.vbr);
+ printk(0,"---------------------------------------------\n");
+ printk(0," panic stack\n");
+ printk(0,"---------------------------------------------\n");
+ _dbug_dump(status, pc, (unsigned short*)stack,64*2);
- RAW_FMT(0,"---------------------------------------------\n");
- RAW_FMT(0,"press escape to reboot\n");
- } while ((c=RAW_GETC(0))!=ESCAPE); /* cgets ne marche pas si les IT sont bloquées */
+ printk(0,"---------------------------------------------\n");
+ printk(0,"press escape to reboot\n");
+ } while ((c=getchark())!=ESCAPE);
}