首 页电子文章电子资料客户留言94论坛繁體中文
设为首页
加入收藏
联系我们
您当前的位置:中国电子前沿 -> ARM技术 -> ARM系统 -> 电子文章内容 退出登录 用户管理
栏目导航
· ARM入门 · ARM系统
· ARM应用
热门电子文章
· [USB技术] 基于DSP技术的..
· [USB技术] 在 Java 应用程..
· [USB技术] USB设计
· [linux移植] Linux解释器..
· [USB技术] 如何构造一个简..
· [USB技术] USB在数据采集..
· [USB技术] USB2.0控制器C..
· [linux移植] 在Redhat Li..
· [VHDL学习] 错误检测与纠..
· [原理欣赏] 高速高密度PC..
· [FPGA应用] FPGA器件的在..
· [ARM应用] 触摸屏在S3C24..
相关电子文章
· armux与硬件设计背景..
· 44B0X 让我又爱又恨..
· ARM体系结构与编程 ..
· ARM体系结构与编程 ..
· uClinux中Makefile文..
· 嵌入Linux的学习方法..
· Linux可加载内核模块..
· 一段关于fork的小程..
· 嵌入式系统中LCD驱动..
· jffs文件系统分析(z..
对44B0中断向量的理解,希望对大家有帮助 (zz)
作者:佚名  来源:不详  发布时间:2006-9-12 16:06:22  发布人:zangyl

减小字体 增大字体

这段时间调试44B0,对44B0的中断系统有了一定的了解。现归纳为以下几点,与大家共享,希望对大家有所帮助。

一、 关于44B0中断系统。
44B0中断系统中有两张中断转移表,经过二重转移才跳到中断处理程序。第一张中断向量表由硬件决定,所在区域
为ROM(flash),地址空间从0X00开始,其中0X00-0X1C为异常向量入口地址,0X20-0XC0为中断向量入口地址。另
一张中断向量表在RAM中,可以随便改,其位置在程序连接后才定。

二、 如何从第一张中断向量表跳到第二张中断向量表。
由于RAM放在地址空间的高端(距离中断向量超过了32M),故在第一张中断向量表对应位置上写上

ldr PC,# interrupt_service
如:ldr PC,=HandlerEINT4567
    
三、如何在启动程序中设置异常向量,中断向量表。如何把C语言中的一个中断函数对应到汇编的中断向量表中,
示意图及举例如下:


 

#define _ISR_STARTADDRESS  0xc7fff00     //GCS6:16M bit DRAM/SDRAM
#define pISR_EINT4567 (*(unsigned *)(_ISR_STARTADDRESS+0x74))
.macro HANDLER HandleLabel
    sub     sp,sp,# 4    
stmfd   sp!,{r0}     
ldr     r0,=\HandleLabel
ldr     r0,[r0]     
str     r0,[sp,# 4]    
    ldmfd   sp!,{r0,pc}     
.endm
.text
ENTRY:
    b ResetHandler
    |
    |
VECTOR_BRANCH:
    ldr pc,=HandlerEINT0   
|
|
    ldr pc,=HandlerEINT4567 /* 0x30                                 */  

HandlerEINT4567:HANDLER HandleEINT4567
  
 .equ HandleEINT4567, _ISR_STARTADDRESS+4*29
   
   把C语言中的一个中断函数对应到汇编的中断向量表中
    pISR_EINT4567 = (int)Eint4567Isr; 
[] [返回上一页] [打 印] [收 藏]
上一篇电子文章:44b0(转载)
下一篇电子文章:AMR、ARM和MRM技术简介
∷相关电子文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论…]
关于本站网站帮助广告合作下载声明友情连接网站地图
Copyright © 2002-2006 EMB-CN.com. All Rights Reserved .