URL
https://opencores.org/ocsvn/aemb/aemb/trunk
Subversion Repositories aemb
Compare Revisions
- This comparison shows the changes necessary to convert path
/aemb/trunk/sw/cc
- from Rev 207 to Rev 209
- ↔ Reverse comparison
Rev 207 → Rev 209
/corefunc.hh
37,23 → 37,29
|
volatile int exce = 0; |
|
void exceptionHandler() |
volatile void _hw_exception_handler() |
{ |
exce++; // flag the exception service routine |
} |
int resr; |
asm volatile ("mfs %0, resr" : "=r"(resr)); |
|
|
volatile void _hw_exception_handler() |
{ |
//exceptionHandler(); |
exce++; |
asm volatile (//"lwi r15,r1,0\n" |
"rted r17, 0\n" |
switch (resr) |
{ |
case 1: // unaligned |
--exce; |
break; |
case 2: // illegal |
++exce; |
break; |
default: |
exce = 0; |
break; |
} |
|
asm volatile ("rted r17, 0\n" |
"nop\n"); |
//"addik r1,r1,28\n"); |
} |
|
/** |
|
/** |
EXCEPTION TEST ROUTINE |
*/ |
|
60,11 → 66,14
int exceptionTest(int timeout) |
{ |
volatile int *toggle = (int *)0xFFFFFFE2; |
|
// enable exceptions |
asm volatile (".long 0xDEADC0DE"); // define illegal instruction (1 error) |
|
*toggle = *toggle; // test unaligned memory access (2 errors) |
// disable exceptions |
return (exce != 3) ? EXIT_FAILURE : EXIT_SUCCESS; |
|
return (exce != -1) ? EXIT_FAILURE : EXIT_SUCCESS; |
} |
|
volatile int intr = 0; |