3838|8

81

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

ARM7TDMI SWI指令的用法 [复制链接]

这两天在看SWI的用法,但始终不能得到其中的玄机,这里问问朋友们。

  1. MSR     CPSR_c, #0xd0               ;切换到用户模式
  2. MRS        R0,CPSR
  3. SWI        1                           ;*****1
  4. SWI_Hander
  5.         STMFD        SP!,{R0-R3,R12,LR}  ;保存各寄存器
  6.         MRS        R0,SPSR             ;保存SPSR
  7.         STMFD        SP!,{R0}
  8.         TST        R0,#T_bit           ;测试是Thumb还是ARM
  9.         LDRNEH        R0,[LR,#-2]         
  10.         BICNE        R0,R0,#0xFF00
  11.         LDREQ        R0,[LR,#-4]
  12.         BICEQ        R0,R0,#0xFF000000
  13.         LDR        PC,[PC,R0,LSL #2]
  14.         MOVS        PC,LR
  15. SWI_function
  16.         DCD        ChangeMode
  17.                        
  18. ChangeMode
  19.         MRS        R0,CPSR
复制代码

这段程序的不完整的,我的目的是想看看SWI是如何在用户模式下工作,并切换到系统模式,SWI_Hander这段代码的意思我理解,就是得到SWI的编号,然后通过LDR  PC,[PC,R0,LSL #2]来跳转到相应的子程序,但我现在不明白的是SWI 1应该如何中断,像我上面这样写运行时走到SWI 1报告Undefined instruction的错误,各位大大能否告诉该如何做,最好能举个例子给我看看谢谢了
此帖出自ARM技术论坛

最新回复

是的,结贴了  详情 回复 发表于 2009-3-16 21:14
点赞 关注
 

回复
举报

45

帖子

0

TA的资源

禁止发言

沙发
 
调试器要用到,即semihosting. 好像是SWI 0x12345;
此帖出自ARM技术论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
0x12345不是用户自己定的一个数嘛?不是很明白楼上说的
此帖出自ARM技术论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

4
 
查查semihosting好吗.
此帖出自ARM技术论坛
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

5
 
参考:http://blog.eeworld.net/panqihe/archive/2007/05/18/1615574.aspx
此帖出自ARM技术论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

6
 
谢谢schlafenhamster,我看了你给我两篇文章,也做了些试验,但我始终没有弄明白,当SWI后面的立即数,如何与中断处理程序联系起来,我但不执行的时候无法跳到中断处理程序,到SWI那里就会报错,能否给个完完整整的代码让我学习下,谢谢了

  1. MOV        R0,#0
  2. SWI        0x98
  3. MRS        R0,SPSR

  4. SWI_interrupt
  5.         CMP                R0,#6
  6.         LDRLO        PC,[PC,R0,LSL #2]
  7.         MOVS        PC,LR

  8. SWI_function
  9.         DCD        ChangeMode

  10. ChangeMode
  11.         MOV        R0,#1
复制代码
此帖出自ARM技术论坛
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

7
 
你用的是方法2,与SWI后的数无关。
此帖出自ARM技术论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

8
 
楼主看雪那个贴是不是你发的
此帖出自ARM技术论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

9
 
是的,结贴了
此帖出自ARM技术论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表