当前位置: 代码迷 >> 驱动开发 >> 关于S5PV210的错误向量表有关问题,求赐教
  详细解决方案

关于S5PV210的错误向量表有关问题,求赐教

热度:107   发布时间:2016-04-28 10:06:53.0
关于S5PV210的异常向量表问题,求赐教
1.ARM的异常向量表地址不是一般都是在0x00000000或者0xffff0000吗?为何S5PV210的异常向量表地址在0xd0037400?
2.一般异常向量表不是一条跳转指令吗?为何S5PV210的存储的直接是异常处理函数的地址?
求大家赐教,小弟感激不尽
代码:
#define _Exception_Vector 0xD0037400
#define  pExceptionRESET ( *((volatile unsigned long *)(_Exception_Vector + 0x0)) )
#define  pExceptionUNDEF ( *((volatile unsigned long *)(_Exception_Vector + 0x4)) )
#define  pExceptionSWI ( *((volatile unsigned long *)(_Exception_Vector + 0x8)) )
#define  pExceptionPABORT ( *((volatile unsigned long *)(_Exception_Vector + 0xc)) )
#define  pExceptionDABORT ( *((volatile unsigned long *)(_Exception_Vector + 0x10)) )
#define  pExceptionRESERVED ( *((volatile unsigned long *)(_Exception_Vector + 0x14)) )
#define  pExceptionIRQ ( *((volatile unsigned long *)(_Exception_Vector + 0x18)) )
#define  pExceptionFIQ ( *((volatile unsigned long *)(_Exception_Vector + 0x1c)) )

void system_initexception(void)
{
//设置中断向量表
pExceptionUNDEF = (unsigned long)exceptionundef;
pExceptionDABORT = (unsigned long)exceptiondabort;
pExceptionPABORT = (unsigned long)exceptionpabort;
pExceptionSWI = (unsigned long)exceptionswi;
pExceptionFIQ = (unsigned long)IRQ_handle;
pExceptionIRQ = (unsigned long)IRQ_handle;
}
------解决方案--------------------
      我的看法首先FFFF0000是虚拟地址,看看您的地址#define _Exception_Vector 0xD0037400 是否是虚拟地址或者物理地址,然后向量表里面存放是的确是跳转指令,内核代码我也没看。。。。希望对你有帮助。。
  相关解决方案