⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exception.cpp

📁 基于ADI blackfin的异常处理程序
💻 CPP
字号:
#include <stdio.h>


#include "exception.h"


// check the validity of 'MAX_EXCEPTION_STACK_SIZE'

#if MAX_EXCEPTION_STACK_SIZE  < 1

#error 'MAX_EXCEPTION_STACK_SIZE' was not properly configured. Please check "exception.h"!

#endif



#define ALIGN_MASK  (0xffffffff ^ (MAX_EXCEPTION_STACK_SIZE*STACK_TYPE_SIZE))



_sys_ExceptStack::_sys_ExceptStack(void) : 
                tail(NULL),
                front(NULL),
                tempCounter(0)
{
	tail = front = except_stack_queue;
	
	bEmpty = true;
	
	bFull = false;
}



_sys_ExceptStack::~_sys_ExceptStack(void)
{
	
}


void _sys_ExceptStack::AddException(void *pE)
{
	if(bFull)
	    return;
	    
	if( ((ADDR)(front+1) & ALIGN_MASK) == (ADDR)tail )
	    bFull = true;
	    
	bEmpty = false;
	    
	*front++ = pE;
	
	tempCounter++;
}


void* _sys_ExceptStack::GetException(void)
{
	if(bEmpty)
	    return NULL;
	    
	if( ((ADDR)(tail+1) & ALIGN_MASK) == (ADDR)front )
	    bEmpty = true;
	    
	bFull = false;
	    
	void* value = *tail++;
	
	tempCounter--;
	
	return value;
}


_sys_ExceptStack __sysExceptionStack;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -