设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
// 使能/禁能IRQ、FIQ中断 __swi(0x00) void SwiHandle1 ...
返回列表
发新帖
// 使能/禁能IRQ、FIQ中断 __swi(0x00) void SwiHandle1(int Handle);这句话怎么分析
[复制链接]
11
|
1
|
2011-3-7 07:54:52
|
显示全部楼层
|
阅读模式
回复
使用道具
举报
千问
|
2011-3-7 07:54:52
|
显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">__swi(0x00) void SwiHandle1(int Handle);其实没有函数体,执行这个语句后就自动把Handle的值赋给了R0,接着执行下面的代码。__swi(0x00)是软件中断,0为软中断指令中的24位立即数,但是通过R0寄存器来传递参数具体的函数体,当然是要在swi的中断处理程序中去找了可以在复位时的异常向量表里面找到swi中断服务程序的入口地址。
SWI 执行的流程是,先进入异常中断向量表,然后跳到向量地址处,接着一小段汇编操作,把功能号读入到一个寄存器中,然后 switch 判断这个功能号是多少,接着跳转到对应的终端服务程序,如果函数有参数,则根据ATPCS规则进行参数的传递;如只有一个参数,则用 R0 来传递,超过4个参数,超出的部分用堆栈来传递。
__swi是ADS编译器的关键字,用它做前缀可以声明一个软中断调用,格式为:
__swi(功能号) 返回值名称 (参数列表)
功能号:即软中断指令中的24位立即数,软中断号
名称:即调用软中断时用于描述软中断的函数名称
参数:软中断函数的参数,根据ATPCS规则,如果软中断函数有不超过4个参数时,通过R0~R3传递,超过4个参数时用堆栈来传递。
__swi(0x00) void SwiHandle1(int Handle)。其中0x00为软中断功能号(软中断号);软中断函数名称为SwiHandle1;只有一个参数,则使用R0来传递;函数没有返回值。紧接着这句代码的是定义了4个宏,分别表示禁能IRQ函数、使能IRQ函数、禁能FIQ函数、使能IFQ函数,其实调用的软中断函数是一样的,只是参数不同而已。例如在用户程序中调用“IRQEnable( );”时,处理器会产生软中断。位于启动代码中的那些是软中断处理函数,当发生软中断时,PC被强制指向0x00000008,这个地址中存放的是软中断异常的处理函数的地址,所以程序会跳转至标号“SoftwareInterrupt ”处执行。SoftwareInterrupt 函数的功能是判断R0的值(R0的值为软中断函数传递过来的参数)是否小于4,如果小于4则跳转至标号“SwiFunction”执行,如果不是则函数返回。SwiFunction函数是一个散转函数,它的功能是根据R0的值跳转至对应的函数处执行,即如果参数为1,则函数会跳转至IRQEnable处执行,将IRQ中断使能。
本文件SWI.s位于ARM Executable Image for LPC2294工程模板中,故不考虑SWI触发前为Thumb态;SWI异常一旦触发,内核硬件完成:
♂ 进入Supervisor模式;
♂ 拷贝CPSR至SPSR_svc
♂ 拷贝异常返回地址至LR_svc
♂ 将0x00000008装入PC
因此,当触发SWI软中断前内核处于Supervisor模式,SPSR_svc、LR_svc中的值将被破坏;
3、SWI指令编码中自带24bit数据作为软中断号(swi_num),因此可通过取SWI指令编码获取软中断号;LDR r0,[lr,#-4]就是这样;
4、SWI_Exception_Function函数一般采用C编码(也可汇编),采用C编码可直接套用switch根据swi_nun软中断号切换,SWI_Exception_Function函数的编制是灵活的,比如可以为带参或不带参函数;
5、一个SWI调用允许带1~4个字型参数和1~4个字型返回值,触发SWI调用时四个参数依次保存在R0~R3中,返回值也存于R0~R3内,这和ATPCS函数调用一致;
6、在C中声明一个典型的无参无返回值的SWI调用为:”__swi(0x00) void IRQEnable();“这样随时都可以使用”IRQEnable();“触发一个软中断(中断号0),其允许IRQ中断的功能必须在SWI_Exception_Function软中断处理函数中实现;
7、以下为带参数的SWI调用,SWI调用和普通函数调用一样遵循ATPCS标准,Handle参数存放在R0中:
__swi(0x01) void SwiHandle(int Handle);
#define IRQDisable()
SwiHandle(0)
#define IRQEnable()
SwiHandle(1)
#define FIQDisable()
SwiHandle(2)
#define FIQEnable()
SwiHandle(3)
转自:<a href=\"http://hi.baidu.com/_思想的小鱼_/blog/item/e4d190ed2201c1efb2fb95af.html\" target=\"_blank\">http://hi.baidu.com/_思想的小鱼_/blog/item/e4d190ed2201c1efb2fb95af.html</a>
希望能够对你有所帮助。
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行
1
怎样用飞速土豆下载视频
2
射手座的男生应该怎样追巨蟹座的女生呢?
3
是不是黄钻(QQ)在LV2之上(现在不是黄钻)的能免费使用全场物品
4
自己光想哭
5
xbox360和电脑连接问题
6
若向量a向量=i向量+(t^2+1)j向量与向量b向量=-ki向量-tj向量(t>0)
7
动漫前线卷首的图都是谁画的?
8
这个视频的有强节奏的背景音乐是什么?
9
把一个圆柱的底面平均分成若干个扇形然后切成一个近似的长方体,表面积比原来增加了200平方厘%C
10
今古传奇武侠连载的《彼岸天都》和单行本的是一样的么?
11
Windows 被锁了,不知道域名或用户名和密码,怎么办?
12
从盘锦火车站到红海滩怎么走?
13
波斯王子4
14
PSP的问题
15
姓鲁,属鼠,2008年阴历五月十四生的女孩叫什么名字最好?
16
( )入( )出
17
我今天刚买了一盆花,根有些像大蒜
18
工伤致残公司可以辞退不?
19
superjunior第三张专辑在天津能不能买?
20
一个禽兽的真实自白!
21
按要求写作文
22
把手机数据线插到电脑上只显示在充电
23
地下城与勇士浙江1区剜心买多少
24
快中考了,要怎么复习
25
求恶夜杀机1,2中文完整版的下载地址
26
黑执事的 lacrimosa 中开头和中间的和声歌词
27
谁能帮我汗译英?
28
梦幻西游跑镖的时候 能用旗子么
29
天津和平哪里吃饭便宜
30
亿通m666是3g吗
31
帮我对对子
32
找一首啦啦队的英文歌曲
33
要最悲的古代言情小说?
34
梦见???
35
有关QQ华夏的问题
36
拍玉。翡翠的道具有哪些?
37
存货收发 及时入账的好处
38
去韩国庆熙大学上学的有关问题
39
谁能帮我分析一下他是什么意思??
40
诺基亚7260下UCWEB里面怎么没有这型号
41
急!求格力的一些情况,
42
哈尔滨那家外语价格不贵教的还好?
43
月经不规律 长痘
44
录音工具
45
win7 如何禁止管理员权限
46
一个讲述一个男人知道女人在想什么的电影?
47
柯南什么时候结束啊?
48
2009年4月或5月乔迁吉日
49
电流为1ma,放大到70-80ma,工作电压是12V选用什么三极管,怎么接
50
C:\WINDOWS\system32\COMSystem32.dil 为什么进入电脑找不到
51
V3菱悦对比爱丽舍和奇瑞A3
52
设A是N阶实方阵,且AT(转置)A=0,证明A=0
53
送东阳马生序用了什么写作手法
54
哈尔滨哪里卖PSP
55
为什么安装directx 9.0c 后,又自动删除了
56
这样的配置可以玩什么游戏?
57
中医大侠们
58
寻找Java伙伴
59
舌苔厚怎么办
60
摄像头安装
61
英语好的大大,帮忙翻译下面英文,谢谢
62
与肝病携带者怎样接触易传染
63
成都 网上购物 最适合的银行卡
64
有谁能帮我找到马丁*伊登的小说在线阅读?谢谢了!
65
中国作文网作文竞赛征文怎样投稿
66
艾韵dvd966歌王的数据盘丢了,咋办?哪里可以买到?
67
日照都有什么景点?两个人两天时间大概需要多少钱?
68
求情书第二季18期舞曲 张佑赫和朴贞雅 dance battle 有连接
69
写苹果作文
70
请法律专家解答!
71
中国移动手机上网包月问题
72
准备买车,看好科鲁兹 1.6 新出来的,但没试驾过,不知道怎么样
73
为什么通用破产不会影响通用在中国的业务?
74
北京华成运达—国内平邮到浙江丽水时间
75
休闲牛仔裤配什么鞋好看
76
如何做好一名流动人口管理
77
sin30度/1+sin60度 +1/tan30度
78
小孩要打几次育苗 到什么时候停止 怎么收费的
79
请问现在教师的人生价值观改变了吗
80
网速变慢
81
请高人帮我翻译几个科室牌的英文
82
结婚后异地户口迁移问题?
83
QQ会员没有了,QQ网络硬盘容量会下降吗?
84
初二下学期期中,期末各科考点
85
请问天津到首都体育馆怎么走?
86
神剃和春香哪个更好看
87
开3D MAX后再开QQ音乐或迅雷就会很卡而且贴图贴上是一点一点的,只有渲染才会好,设置是DITECT 3D
88
十二之天贰什么星
89
谁能帮我回答这个古诗的问题?
90
刀剑英雄女刀连招
91
勿忘我花语!!!!
92
逆境 成长
93
六年级数学题
94
酸洗后的废液是不是危险废弃物?
95
求救!!!PSP2000机子黑屏问题!!高分悬赏!!
96
删除留言删除留言花藤分数会少吗
97
得罪老师,会不会挂科啊
98
使命召唤5bt下载完怎么安装
99
大学毕业后档案
100
关于腹部肌肉形状有个小问题?