dm642的中断

简介: <p><br> void fifoint_isr();            <br> extern far void vectors();   </p> <p>void int_init()<br> {<br>  IRQ_resetAll();<br>  IRQ_setVecs(vectors);<br>  IRQ_nmiEnable();<br>  IRQ_global


void fifoint_isr();           
extern far void vectors();  

void int_init()
{
 IRQ_resetAll();
 IRQ_setVecs(vectors);
 IRQ_nmiEnable();
 IRQ_globalEnable();
 
 //
 IRQ_reset(IRQ_EVT_EXTINT4);
 IRQ_enable(IRQ_EVT_EXTINT4);
 *(Uint32*)(0x019c0008) = 1;//中断条件 0上升,1下降
 *(unsigned short*)EPLE_TEST = 0X0;
 IRQ_clear(IRQ_EVT_EXTINT4); 
}

interrupt void fifoint_isr()
{

 
 IRQ_disable(IRQ_EVT_EXTINT4);
 //
  com_isr232();
 //
 IRQ_clear(IRQ_EVT_EXTINT4);
 IRQ_enable(IRQ_EVT_EXTINT4);
}

//修改vector.asm
   .global _vectors
   .global _c_int00
   .global _vector1
   .global _vector2
   .global _vector3
   .global _fifoint_isr
   .global _vector5
   .global _vector6
   .global _vector7
   .global _vector8 
   .global _vector9  
   .global _vector10
   .global _vector11
   .global _vector12  
   .global _vector13  
   .global _vector14  
   .global _vector15  

_vectors:
_vector0:   VEC_ENTRY _c_int00    ;RESET
_vector1:   VEC_ENTRY _vec_dummy  ;NMI
_vector2:   VEC_ENTRY _vec_dummy  ;RSVD
_vector3:   VEC_ENTRY _vec_dummy
_vector4:   VEC_ENTRY _fifoint_isr
_vector5:   VEC_ENTRY _vec_dummy
_vector6:   VEC_ENTRY _vec_dummy
_vector7:   VEC_ENTRY _vec_dummy
_vector8:   VEC_ENTRY _vec_dummy  
_vector9:   VEC_ENTRY _vec_dummy
_vector10:  VEC_ENTRY _vec_dummy
_vector11:  VEC_ENTRY _vec_dummy
_vector12:  VEC_ENTRY _vec_dummy   
_vector13:  VEC_ENTRY _vec_dummy
_vector14:  VEC_ENTRY _vec_dummy
_vector15:  VEC_ENTRY _vec_dummy

相关文章
|
Linux 虚拟化 监控
PERF EVENT 硬件篇
简介 本文将通过以 X86 为例子介绍硬件 PMU 如何为 linux kernel perf_event 子系统提供硬件性能采集功能 理解硬件 MSR (Model Specify Register) 可以理解为CPU硬件的专用寄存器,下述的所有寄存器都是这个类型 汇编指令 rdmsr/wrm.
3691 0
|
4天前
|
负载均衡 调度 芯片
SMP多核启动(一):spin-table
SMP多核启动(一):spin-table
67 0
|
4天前
|
存储 调度 芯片
xv6(5) 中断代码部分
中断代码部分
48 0
|
芯片
imx6ull的GPIO操作方法
imx6ull的GPIO操作方法
236 0
imx6ull的GPIO操作方法