找回密码
 注册
搜索
查看: 728|回复: 0

在DSP6000中怎样编写您的第一个程序(二)

[复制链接]
发表于 2009-11-24 16:57:06 | 显示全部楼层 |阅读模式
李现路:在DSP6000中怎样编写您的第一个程序(二)   Post By:2009-11-23 23:46:16

  


三、完整的中断向量表程序如下:





   .global _vectors ;定义一个能被外部(C语言程序)引用的变量

   .global _c_int00

   .global _vector1

   .global _vector2

   .global _vector3

   .global _vector1

   .global _vector5

   .global _vector6

   .global _vector7

   .global _vector8  

   .global _vector9           

   .global _vector10

   .global _vector11 ; Hookup the c_int08 ISR(连接这个中断设置寄存器) in main()  

   .global _vector12    ; Hookup the c_int08 ISR in main()

   .global _vector13   

   .global _vector14   

   .global _vector15   




*------------------------------------------------------------------------------

* Global symbols referenced in this file but defined somewhere else.

* Remember that your interrupt service routines need to be referenced here.

*------------------------------------------------------------------------------

   .ref _c_int00 ;reset ISR(复位中断设置寄存), .ref表明一个或多个在另一个模块中定义而在前模块中要用到的符号




*------------------------------------------------------------------------------

* This is a macro that instantiates one entry in the interrupt service table.

*------------------------------------------------------------------------------

VEC_ENTRY .macro addr ;中断返回函数

    STW   B0,*--B15

    MVKL  addr,B0

    MVKH  addr,B0

    B     B0

    LDW   *B15++,B0

    NOP   2

    NOP   

    NOP   

   .endm





*------------------------------------------------------------------------------

* This is a dummy interrupt service routine used to initialize the IST.

*------------------------------------------------------------------------------

_vec_dummy:  ;初始化IST寄存器(中断向量表起始地址寄存器,用于设置中断服务程序存放的地址)

  B    B3

  NOP  5




*------------------------------------------------------------------------------

* This is the actual interrupt service table (IST). It is properly aligned and

* is located in the subsection .text:vecs. This means if you don't explicitly

* specify this section in your linker command file, it will default and link

* into the .text section. Remember to set the ISTP(中断向量表起始地址寄存器) register to point to this

* table.

*------------------------------------------------------------------------------

.sect ".vecs"  ;定义初始化带名称的段

.align 1024  ;分配程序页




_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 _vec_dummy

_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 ; Hookup the c_int08 ISR in main()

_vector12:  VEC_ENTRY _vec_dummy    ; Hookup the c_int08 ISR in main()

_vector13:  VEC_ENTRY _vec_dummy

_vector14:  VEC_ENTRY _vec_dummy

_vector15:  VEC_ENTRY _vec_dummy



  

  完整版本请见http://www.51qianru.cn/bbs/




                                                        曙海教育

                                                曙海嵌入式学院3G通信培训中心

                                            (MTK培训,Android培训,iPhone培训)

                                                电话:021-51875830

                                                网址:http://www.51qianru.cn

                                                    讲师:李现路

                                         版权所有-曙海教育 转摘请注明作者和出处
高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-5-12 05:19 , Processed in 0.096818 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表