OpenCores
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
    from Rev 207 to Rev 209
    Reverse comparison

Rev 207 → Rev 209

/cc/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;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.