这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » EasyARM2200启动代码的疑问

共6条 1/1 1 跳转至

EasyARM2200启动代码的疑问

菜鸟
2006-11-22 00:50:44     打赏

刚开始学ARM,用的周公EaayARM2200的板子,这几天在研究启动代码,有很多问题不能理解,到版上问问前辈。

问题1:地址0X0-0x1c处放置向量表,但Flash中的程序代码部分是从0x40处开始映射的,也就是说一开始的64个字节中前32个用作存放向量表,那么后32个放置的是什么内容,因为调试的时候发现里面确实有内容,但无法解释是什么东东?

问题2:一开始的向量表中放置了7LDR指令和一条DCD指令,如下:

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

问题是:其他LDR指令的机器码都是[0xE59FF018],指令各不相同,为什么却有相同的机器码,而倒数第二跳指令的机器码却是[0XE51FFFF0],又当如何解释。我看过了ARM的手册,上面讲LDR指令机器吗的最后12位是 addressing_mode_specfic,但是我没找到关于addressing_mode的更详细的资料,谁能告诉我有哪些addressing_mode,上面的机器码又如何去解释?

菜鸟一个,请高手指教!




关键词: EasyARM2200     启动     代码     疑问    

院士
2006-11-22 01:48:00     打赏
2楼

您这帖子我已经转给周立功的工程师了

相信他们会给您解答的~~


菜鸟
2006-11-22 17:24:00     打赏
3楼
机器码是构成汇编指令的,如果都是ldr开头的,形式差不多,那就会是一样的机器码,为什么倒数第2条不一样,是因为只有倒数第2条指令,不是跳转到内存地址的,直接跳转到了中断寄存器的地址,这个地址是中断处理函数的入口.

院士
2006-11-22 17:36:00     打赏
4楼
不知道VCVC是不是周公处的~

菜鸟
2006-11-22 17:56:00     打赏
5楼

谢谢楼上各位,帖子贴出后我就搞懂了,感谢VCVV


菜鸟
2008-01-25 14:01:31     打赏
6楼
ARM编程:低价转让EasyARM2200开发板 [jianghy2008] 2006-7-20 17:50:31

低价转让EasyARM2200开发板
低价转让EasyARM2200开发板 650元
原价980元 无用过,无损伤,光盘,资料齐全

联系13167328210 只限北京


共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]