李现路:在DSP6000中怎样编写您的第一个程序(二)
来源:互联网 发布:网络连接错误651怎么办 编辑:程序博客网 时间:2024/06/11 01:50
李现路:在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
讲师:李现路
版权所有-曙海教育 转摘请注明作者和出处课程有:
- 李现路:在DSP6000中怎样编写您的第一个程序(二)
- 李现路:在DSP6000中怎样编写您的第一个程序(二)
- 李现路:在DSP6000中怎样编写您的第一个程序(1)
- 曙海教育集团论坛-在DSP6000中怎样编写您的第一个程序(1)
- 编写你的第一个Hibernate程序 (在Hibernate中使用oracle的sequence产生主键 )
- 编写你的第一个Hibernate程序 (在Hibernate中使用oracle的sequence产生主键 )
- 在linux系统上编写的第一个程序
- 在JSP中编写你的第一个Tag
- 在unity3d中编写你的第一个着色器
- 基于MT7688模块的开发笔记11——编写我的第一个程序并在MT7688中运行
- 编写你的第一个Windows程序
- 自己编写的第一个程序
- 编写你的第一个Hibernate程序
- 编写的第一个网络程序
- 编写你的第一个Hibernate程序
- 一位菜鸟编写的第一个程序
- 第一个Java程序(HelloWorld)的编写
- 第一个 C 语言编译器是怎样编写的?
- 2012真是世界末日吗?感性趣的来看看!!
- LGPL协议。
- 宏定义的一些使用技巧总结
- James写的CodeSmith模板(二)
- Madwifi无线发送数据过程
- 李现路:在DSP6000中怎样编写您的第一个程序(二)
- 李现路:MTK开发中怎么建立一个独立的模块
- 李现路:DSP6000中C/C++语言和汇编语言的混合编程的方法
- usaco Chapter 3 section 3.1 Humble Numbers
- ORA-02243: ALTER INDEX 或 ALTER MATERIALIZED VIEW 选项无效
- 李现路:在DSP6000中怎样编写您的第一个程序(1)
- java生成doc html
- MySQL最多能装多少记录
- Opencv之PCA篇