为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

DM6437中断向量表配置

2017-11-30 5页 doc 17KB 14阅读

用户头像

is_083599

暂无简介

举报
DM6437中断向量表配置DM6437中断向量表配置 1. 编编编编 写中断服例程 在.c编编源文件中写ISR函数c_intXX编编编编编 ,用于中断理,如: interrupt void c_intXX (void) { …; } 注:于硬件中断而言,编编编编编编编编编XX = 00~15 。 2编编编编编编编 ,初始化中断向量表,并在内存段中的中断向量表中配置好的中断向量首先是把中断向量表定位到某一内存段中,我可以在编编编编cmd 文件中配置中断向量表的内存映射,如: MEMORY { VECS: o = 0x10800000 l = ...
DM6437中断向量表配置
DM6437中断向量表配置 1. 编编编编 写中断服例程 在.c编编源文件中写ISR函数c_intXX编编编编编 ,用于中断理,如: interrupt void c_intXX (void) { …; } 注:于硬件中断而言,编编编编编编编编编XX = 00~15 。 2编编编编编编编 ,初始化中断向量表,并在内存段中的中断向量表中配置好的中断向量首先是把中断向量表定位到某一内存段中,我可以在编编编编cmd 文件中配置中断向量表的内存映射,如: MEMORY { VECS: o = 0x10800000 l = 0x00000400 MEMTEST: o = 0x10800400 l = 0x00000200 IRAM: o = 0x10800600 l = 0x0001FA00 DDR2: o = 0x80000000 l = 0x10000000 } SECTIONS { .bss > IRAM .cinit > IRAM .cio > IRAM .const > IRAM .data > IRAM .far > IRAM .stack > IRAM .switch > IRAM .sysmem > IRAM .text > IRAM .vecs > VECS .ddr2 > DDR2 } 然后建立一个.asm编编编编编编编编编编编编文件,用以配置中断向量表中的中断向量,我需要声明一些全局量,以便其他源文件可以引用些量或者引用其他源文件的量,如:编编编编编编编编编编编编编编编编编编编 *-----------------------------------------------------------------* Global symbols defined here and exported out of this file *-------------------------------------------------------------------- .global _vectors .global _c_int00 .global _vector1 .global _vector2 ;RSVD保留 .global _vector3 ;RSVD保留 .global _vector4 .global _vector5 .global _vector6 .global _vector7 .global _vector8 .global _vector9 .global _vector10 .global _vector11 .global _vector12 .global _vector13 .global _c_int14_vencint ; Hookup the c_int14 ISR in main() .global _vector15 因引用了编编编编rts的_c_int00中断,即RESET中断,因此需要引入个符号编编编编: .ref _c_int00 编编编编编编编编编编编编编编编编编编编编编编编编编了把中断服例程的地址,即中断向量插入到中断向量表中,可以定一个宏:编编编编编 VEC_ENTRY .macro addr STW B0,*--B15 MVKL addr,B0 MVKH addr,B0 B B0 LDW *B15++,B0 NOP 2 NOP NOP .endm 编编编编编编编编编编编编 了初始化中断向量表中的中断向量,可以定一个虚的中断向量:_vec_dummy: B B3 NOP 5 接下来就可以配置中断向量表了: .sect “.vecs” .align 1024 _vectors: _vector0: VEC_ENTRY _c_int00 ;RESET 中断 _vector1: VEC_ENTRY _vec_dummy ;NMI 不可屏蔽中断_vector2: VEC_ENTRY _vec_dummy ;保留中断1 _vector3: VEC_ENTRY _vec_dummy ;保留中断2 _vector4: VEC_ENTRY _vec_dummy ;外部中断INT4 _vector5: VEC_ENTRY _vec_dummy ;外部中断INT5 _vector6: VEC_ENTRY _vec_dummy ;外部中断INT6 _vector7: VEC_ENTRY _vec_dummy ;外部中断INT7 _vector8: VEC_ENTRY _c_int08 ; EDMA控制器中断EDMAINT编编编,于c_int08 ISR _vector9: VEC_ENTRY _vec_dummy,JTAGRTDX 中断_vector10: VEC_ENTRY _vec_dummy,EMIF_SDRAM_Timer 中断_vector11: VEC_ENTRY _vec_dummy,McBSP_0_Receive 中断_vector12: VEC_ENTRY _vec_dummy,McBSP_1_Transmit 中断_vector13: VEC_ENTRY _vec_dummy,Host_Port_Host_to_DSP 中断_vector14: VEC_ENTRY _vec_dummy,Timer0 中断 _vector15: VEC_ENTRY _vec_dummy,Timer1 中断 3. 在C编编编编编编编编编编编编程序中指定定的中断向量表,并且启用CPU 中断功能在C程序中,用CSL的IRQ编编编编编编编编编编编编编编编编编编编编编编编编编编模来置中断比方便,在置之前,需要外部接上面的asm程序的中断向 量表符号: extern far void vectors(),//编之所以vectors编,因C编编编编编编编编编编编器后自改名其_vectors 引用了中断向量表之后,就可以置中断了:编编编编编编 IRQ_setVecs(vectors); //指向asm编编编编编编编 中定的中断向量表 IRQ_nmiEnable(); IRQ_globalEnable(); IRQ_map(IRQ_EVT_EDMAINT, 8); // 映射事件到指定的物理中断号 IRQ_reset(IRQ_EVT_EDMAINT); 4编编编编编编,启中断源,如venc 中断 至此,中断服例程编编编c_int14_vencint 编就可以venc编编编编编编编编编编编编编编编编编中断服了,其它硬件中断向量的配置同理。
/
本文档为【DM6437中断向量表配置】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索