OpenCores
URL https://opencores.org/ocsvn/aemb/aemb/trunk

Subversion Repositories aemb

[/] [aemb/] [trunk/] [sw/] [cc/] [corefunc.hh] - Diff between revs 191 and 206

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 191 Rev 206
Line 27... Line 27...
*/
*/
 
 
#ifndef COREFUNC_HH
#ifndef COREFUNC_HH
#define COREFUNC_HH
#define COREFUNC_HH
 
 
#define MAGIC 0xAE62AE62 // magic number
#ifdef __cplusplus
 
extern "C" {
 
#endif
 
 
 
#define MAGIC 0xAE63AE63 // magic number
 
 
 
volatile int exce = 0;
 
 
 
void exceptionHandler()
 
{
 
  exce++; // flag the exception service routine
 
}
 
 
 
 
 
volatile void _hw_exception_handler()
 
{
 
  //exceptionHandler();
 
  exce++;
 
  asm volatile (//"lwi r15,r1,0\n"
 
                "rted r17, 0\n"
 
                "nop\n");
 
  //"addik r1,r1,28\n");
 
}
 
 
 
/**
 
EXCEPTION TEST ROUTINE
 
*/
 
 
 
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;
 
}
 
 
volatile int intr = 0;
volatile int intr = 0;
 
 
void __attribute__ ((interrupt_handler)) interruptHandler()
void __attribute__ ((interrupt_handler)) interruptHandler()
{
{
Line 94... Line 130...
  magic = *(int *)alloc; // read from memory
  magic = *(int *)alloc; // read from memory
 
 
  return (magic == MAGIC) ? EXIT_SUCCESS : EXIT_FAILURE;
  return (magic == MAGIC) ? EXIT_SUCCESS : EXIT_FAILURE;
}
}
 
 
 
#ifdef __cplusplus
 
}
#endif
#endif
 
 
/*
#endif
$Log: not supported by cvs2svn $
 
Revision 1.3  2008/05/01 08:37:37  sybreon
 
Added interrupt capability.
 
 
 
Revision 1.2  2008/04/28 20:30:24  sybreon
 
Changed to new headers.
 
 
 
Revision 1.1  2008/04/27 16:04:42  sybreon
 
Minor cosmetic changes.
 
 
 
*/
 

powered by: WebSVN 2.1.0

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