📄 arm基础知识五 - arm开发者论坛-中国专业arm开发网站.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0050)http://www.armforum.cn/ARMrumen/20071220/1833.html -->
<HTML xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn"><HEAD><TITLE>ARM基础知识五 - ARM开发者论坛-中国专业ARM开发网站</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content=all name=robots>
<META
content="在应用程序中安装异常中断处理程序 1.使用跳转指令:可以在异常中断对应异常向量表中特定位置放置一条跳转指令,直接跳转到该异常中断的处理程序。这种方法有一个缺点,即只能在32M空间范围内跳转。 2.使用数据读取指令LDR:使用数据读取指令LDR向程序计数器PC中直接赋"
name=description>
<META content=基础知识 name=keywords 异常 地址 读取 BL 指令 使用 DCD 中断 PC LDR><LINK
media=screen href="ARM基础知识五 - ARM开发者论坛-中国专业ARM开发网站.files/main.css" type=text/css
rel=stylesheet><LINK media=screen
href="ARM基础知识五 - ARM开发者论坛-中国专业ARM开发网站.files/css.css" type=text/css
rel=stylesheet><LINK media=screen
href="ARM基础知识五 - ARM开发者论坛-中国专业ARM开发网站.files/home.css" type=text/css
rel=stylesheet>
<SCRIPT src="ARM基础知识五 - ARM开发者论坛-中国专业ARM开发网站.files/external.js"
type=text/javascript></SCRIPT>
<SCRIPT src="ARM基础知识五 - ARM开发者论坛-中国专业ARM开发网站.files/js.js"
type=text/javascript></SCRIPT>
<SCRIPT language=javascript>
function wo_ding(num_id)
{
url = "/plus/wo_ding.php?aid="+num_id+"&post=vote&m=" + Math.random();
new ajax(url, {method: 'get', onComplete:return_review});
}
function return_review(ajax)
{
str_error_num = ajax.responseText
if(str_error_num==0)
{
alert("好像你刚拍过了,发个新文章让其他人拍到首页吧!");
}
else
{
alert("感谢您的投票,你也可以发布自己的文章让其他人拍到首页!")
$("s_ding").innerHTML = str_error_num;
}
}
</SCRIPT>
<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY>
<DIV id=alpha></DIV>
<DIV id=header><A id=top></A>
<DIV id=topnav>
<DIV id=toptext>中国专业ARM开发论坛:WWW.ARMFORUM.CN</DIV>
<UL id=topnavlist>
<LI>中国最大的ARM开发网站,做最好的ARM网站</LI></UL></DIV>
<DIV id=topbox>
<H1><A title=ARM开发论坛
href="http://www.armforum.cn/">中国专业ARM开发:WWW.ARMFORUM.CN</A></H1>
<DIV id=topmiddle><SPAN id=google2><IMG height=32 alt=ARM7
src="ARM基础知识五 - ARM开发者论坛-中国专业ARM开发网站.files/loading.gif" width=32></SPAN></DIV>
<UL id=topright></SCRIPT></UL>
<DIV class=clear></DIV></DIV>
<UL id=chinahtmlnav>
<LI><A title=ARM开发论坛 href="http://www.armforum.cn/"><SPAN>网站首页</SPAN></A>
<LI><A title=ARM开发论坛-ARM行业动态
href="http://www.armforum.cn/ARMxingyedongtai/index.html"
rel=external><SPAN>ARM行业动态</SPAN></A>
<LI><A title=ARM开发论坛-ARM入门 href="http://www.armforum.cn/ARMrumen/index.html"
rel=external><SPAN>ARM入门</SPAN></A>
<LI><A title=ARM开发论坛-ARM技巧 href="http://www.armforum.cn/ARMzhongji/index.html"
rel=external><SPAN>ARM技巧</SPAN></A>
<LI><A title=ARM开发论坛-ARM仿真
href="http://www.armforum.cn/ARMfangzhen/index.html"
rel=external><SPAN>ARM仿真</SPAN></A>
<LI><A title=ARM开发论坛-网友作品
href="http://www.armforum.cn/wangyouARMzuopin/index.html"
rel=external><SPAN>网友作品</SPAN></A>
<LI><A title=ARM开发论坛-嵌入式系统
href="http://www.armforum.cn/qianrushixitong/index.html"
rel=external><SPAN>嵌入式系统</SPAN></A>
<LI><A title=ARM开发论坛-ARM应用
href="http://www.armforum.cn/ARMyingyong/index.html"
rel=external><SPAN>ARM应用</SPAN></A>
<LI><A title=ARM开发论坛-ARM源码下载
href="http://www.armforum.cn/ARMyuanmaxiazai/index.html"
rel=external><SPAN>ARM源码下载</SPAN></A>
<LI><A title=ARM开发论坛-ARM资料下载
href="http://www.armforum.cn/ARMziliaoxiazai/index.html"
rel=external><SPAN>ARM资料下载</SPAN></A>
<LI><A title=ARM开发论坛专题 href="http://www.armforum.cn/special/index.php"
rel=external><SPAN>专题</SPAN></A> </LI></UL>
<UL id=subinfo>
<LI class=searchli>
<DIV id=searchtop><!-- Google CSE Search Box Begins -->
<FORM id=searchbox_006841628252179339083:u16nw8ub_py
action=http://www.google.com/cse>ARM文章搜索:<INPUT type=hidden
value=006841628252179339083:u16nw8ub_py name=cx> <INPUT size=25 name=q> <INPUT type=submit value=搜索 name=sa> <SPAN id=topbbs><A title=ARM开发论坛
href="http://www.armforum.cn/plus/guestbook/">>>ARM开发论坛用户交流区</A></SPAN></FORM>
<SCRIPT src="ARM基础知识五 - ARM开发者论坛-中国专业ARM开发网站.files/brand.htm"
type=text/javascript></SCRIPT>
</DIV></LI>
<LI class=c><A
href="http://www.armforum.cn/member/index_do.php?fmdo=user&dopost=regnew">会员注册</A>
| <A title=ARM信息发布
href="http://www.armforum.cn/ARMrumen/20071220/1833.html#">信息发布</A> | <A
href="http://www.armforum.cn/member/article_add.php"
rel=external><STRONG>文章投稿</STRONG></A> </LI>
<LI class=searchli>ss</FORM> </LI>
<LI class=d><A href="http://www.armforum.cn/plus/rssmap.html"
rel=external>信息订阅</A> </LI></UL>
<DIV class=clear></DIV></DIV>
<DIV id=middleimg>
<DIV id=topmidleimg></DIV></DIV>
<DIV id=containertow>
<DIV id=content>
<DIV id=articlenav>您现在正在浏览:<A
href="http://www.armforum.cn/">ARM开发者论坛-中国专业ARM开发网站</A>>><A
href="http://www.armforum.cn/ARMrumen/index.html">ARM入门</A>>></DIV>
<DIV id=article>
<DIV id=entry>
<DIV id=entrytitle>
<H1>ARM基础知识五</H1>
<DIV id=entrymeta>发表时间:2008-03-22
00:49:38 来源:ARM开发者论坛 责任编辑::佚名 阅读数:
<SCRIPT language=javascript
src="ARM基础知识五 - ARM开发者论坛-中国专业ARM开发网站.files/count.htm"></SCRIPT>
</DIV></DIV>
<DIV class=clear></DIV>
<DIV id=entrybody>
<DIV id=entryadbox></DIV>
<STYLE>.Uid257 {
DISPLAY: none
}
</STYLE>
在应用程序中安装异常中断处理程序<BR>1.使用跳转指令:可以在异常中断对应异常向量表中特定位置放置一条跳转指令,直接跳转到该异常中断的处理程序。这种方法有一个缺点,即只能在32M空间范围内跳转。<BR>2.使用数据读取指令LDR:使用数据读取指令LDR向程序计数器PC中直接赋值。这种方法分为两步:先将异常中断处理程序的绝对地址存放在存放在距离向量表4KB范围内的一个存储单元中;再使用数据读取指令LDR将该单元的内容读取到程序计数器PC中。
<P>**在系统复位时安装异常中断处理程序**<BR>1.地址0x00处为ROM的情况<BR>使用数据读取指令LDR示例如下所示:<BR>Vector_Init_Block<BR>LDR
PC, Reset_Addr<BR>LDR PC, Undefined_Addr<BR>LDR PC, SW_Addr<BR>LDR PC,
Prefeth_Addr<BR>LDR PC, Abort_Addr<BR>NOP<BR>LDR PC, IRQ_Addr<BR>LDR PC,
FIQ_Addr <SPAN class=Uid257>ARM开发论坛</SPAN> </P>
<P>Reset_Addr DCD Start_Boot<BR>Undefined_Addr DCD Undefined_Handle<BR>SW_Addr
DCD SWI_Handle<BR>Prefeth_Addr DCD Prefeth_Handle<BR>Abort_Addr DCD
Abort_Handle<BR>DCD 0<BR>IRQ_Addr DCD IRQ_Handle<BR>FIQ_Addr DCD
FIQ_Handle<BR>使用跳转指令的示例如下所示:<BR>Vector_Init_Block<BR>BL Reset_Handle<BR>BL DCD
Undefined_Handle<BR>BL SWI_Handle<BR>BL Prefeth_Handle<BR>BL
Abort_Handle<BR>NOP<BR>BL IRQ_Handle<BR>BL
FIQ_Handle<BR>2.地址0x00处为RAM的情况<BR>地址0x00处为RAM时,中断向量表必须使用数据读取指令直接指向PC中赋值的形式。而且,必须使用下面的代码巴中断向量表从ROM中复制到RAM中地址0x00开始处的存储空间中:<BR><BR>MOV
r8,#0<BR>ADR r9,Vector_Init_Block<BR>;复制中断向量表(8字)<BR>LDMIA r9!,(r0-r7)<BR>STMIA
r8!,(r0-r7)<BR>;复制保存各中断处理函数地址的表(8字words)<BR>LDMIA r9!,(r0-r7)<BR>STMIA
r8!,(r0-r7)
<P class=Uid257>ARM开发论坛</P>
<P></P></DIV>
<DIV class=clear></DIV>
<DIV id=entrynum></DIV>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -