ARM经典300问(271~291)免费下载.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第271 问: Q:我用开发板自带的一个程序Debug 调试,然后AXD 提示: Warnning! interrupt vectors data is not correct! Program you downloaded can not run freely! 我不知道其中中断向量的地址是如何算出来的,也就是说程序中的异常向量所指向的位 置我不清楚.我买的《ARM 微控制器基础与实战》中提到这儿有一句话解释了下面的程 序:在保留的异常向量位置填数据0xb9205f80,是为了使向量表中所有的数据32 位累 加和为0.(没明白,0xb9205f80 是如何计算出来的!) Vectors LDR PC, ResetAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, DataAbortAddr DCD 0xb9205f80 LDR PC, [PC, #-0xff0] LDR PC, FIQ_Addr ResetAddr DCD Reset UndefinedAddr DCD Undefined SWI_Addr DCD SoftwareInterrupt PrefetchAddr DCD PrefetchAbort DataAbortAddr DCD DataAbort Nouse DCD 0 IRQ_Addr DCD 0 FIQ_Addr DCD FIQ_Handler A:从mem 窗口看这些地址是什么数(32 位方式),然后加起来. 第272 问: Q:我将光盘里的EINT1 中的: 71 config,init.s, LPC2106.h target.c target.h vectors.s eint1_led.c 加入项目中,设置的编译环境为:debug, Release DebugRel 中的R0 base 为0 Rw base 为: 0Image entry point 为0编译通过,调试,f5 出 现第一个默认断点,在全速执行,程序在while(1) ;循环,按k1 键led4 不闪烁,我 想是没有进入中断,但我不知道这是为什么,另外我将r0base 设为0是认为 0到0之间要放置remanp 后的中断向量表,不知道这样做对否. A:如果设置robase 设为0那么你要把向量表的代码复制到0然后 再REMAP 操作.另处用我们的EasyJTAG 暂时不能单步调试中断,否则会破坏VIC 的状态. 请用先设置断点,然后全速执行的方式调试.特别注意不能在0x18 处设置断点(别的仿 真器也不能在这设置断点,否则破坏VIC 的状态). 第273 问: Q:贵公司网站上提供的可固化的中断程序中,是将中断向量表先拷贝到0再 REMAP 到FLASH 的底部(我的理解).我认为既然是固化到FLASH 里,把完成上述功能的 程序去掉不是也可以吗 即下面的程序段: ; 实现REMAP 操作 REMAPS MOV R2,#0; 复制中断向量代码,设置目标地址 LDR R1,=Vectors ; 设置源地址 LDMIA R1!,{R3-R10} ; 共复制16 个字(64 字节) STMIA R2!,{R3-R10} LDMIA R1!,{R3-R10} STMIA R2!,{R3-R10} LDR R2,=MEMMAP ; REMAP 操作 MOV R1,#0x02 STR R1,[R2] A:可以去掉,只是这样做可以动态改变向量表. 第274 问: Q:在《ARM 微控制器基础与实践》中的157 页,在0X0000018 处加LDR PC,[PC,#-0XFF0] 指令,为什么就会将VICVectAddr 寄存器中保存的地址装入PC A:like this: VICVectAddr = 0xFFFFF030 00x08-0xFF0 = 0xFFFFF030 therefore PC = [FFFFF030] 72 A:为什么不能进入中断,init.s,target.c 都是贵公司的提供的启动代码!!! 向量的初始化为: Vectors LDR PC, ResetAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, DataAbortAddr DCD 0xB8A06F58 LDR PC, [PC,#-0xff0] LDR PC, FI

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档