你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

CORTEX-M3在地址0xE000ED08处放的就是"中断向量表"的指针?

[复制链接]
vipcff 提问时间:2010-9-3 19:42 /
CORTEX-M3在地址0xE000ED08处放的就是"中断向量表"的指针?

我的问题是 stm32如何找到中断服务程序的地址?


谢谢正点原子的例程,这里使用了例程4,我上传了一个。

其中有这么一句程序:
  SCB->VTOR = NVIC_VectTab|(Offset & (u32)0x1FFFFF80);//设置NVIC的向量表偏移寄存器
这里的    SCB->VTOR 是这个东东:  

Vector Table Offset Register  
Use the Vector Table Offset Register to determine:  
•if the vector table is in RAM or code memory  
•the vector table offset.  
The register address, access type, and Reset state are:  
Address  0xE000ED08  
Access  Read/write  
Reset state  0x00000000  
       简单的说,这条程序做了这个:SCB->VTOR =0x0800 0000
       这里是stm32的flash的起始地址。
       也就是说中断向量表放在了flash的起始地址。对吗?????

再看keil的仿真:

0x08000000 0208      LSLS     r0,r1,#8
0x08000002 2000      MOVS     r0,#0x00
0x08000004 0105      LSLS     r5,r0,#4
0x08000006 0800      LSRS     r0,r0,#0
0x08000008 0109      LSLS     r1,r1,#4
0x0800000A 0800      LSRS     r0,r0,#0
0x0800000C 010B      LSLS     r3,r1,#4
0x0800000E 0800      LSRS     r0,r0,#0
0x08000010 010D      LSLS     r5,r1,#4
0x08000012 0800      LSRS     r0,r0,#0
0x08000014 010F      LSLS     r7,r1,#4
0x08000016 0800      LSRS     r0,r0,#0
0x08000018 0111      LSLS     r1,r2,#4
0x0800001A 0800      LSRS     r0,r0,#0
0x0800001C 0000      MOVS     r0,r0
0x0800001E 0000      MOVS     r0,r0
0x08000020 0000      MOVS     r0,r0
0x08000022 0000      MOVS     r0,r0
0x08000024 0000      MOVS     r0,r0
0x08000026 0000      MOVS     r0,r0
0x08000028 0000      MOVS     r0,r0
0x0800002A 0000      MOVS     r0,r0
0x0800002C 0113      LSLS     r3,r2,#4
0x0800002E 0800      LSRS     r0,r0,#0
0x08000030 0115      LSLS     r5,r2,#4
0x08000032 0800      LSRS     r0,r0,#0
0x08000034 0000      MOVS     r0,r0
0x08000036 0000      MOVS     r0,r0
0x08000038 0117      LSLS     r7,r2,#4
0x0800003A 0800      LSRS     r0,r0,#0
0x0800003C 0119      LSLS     r1,r3,#4
0x0800003E 0800      LSRS     r0,r0,#0
0x08000040 011B      LSLS     r3,r3,#4
0x08000042 0800      LSRS     r0,r0,#0
0x08000044 011B      LSLS     r3,r3,#4
0x08000046 0800      LSRS     r0,r0,#0
0x08000048 011B      LSLS     r3,r3,#4
0x0800004A 0800      LSRS     r0,r0,#0
0x0800004C 011B      LSLS     r3,r3,#4
0x0800004E 0800      LSRS     r0,r0,#0
0x08000050 011B      LSLS     r3,r3,#4
0x08000052 0800      LSRS     r0,r0,#0
0x08000054 011B      LSLS     r3,r3,#4
0x08000056 0800      LSRS     r0,r0,#0
0x08000058 05F5      LSLS     r5,r6,#23
0x0800005A 0800      LSRS     r0,r0,#0
0x0800005C 011B      LSLS     r3,r3,#4
0x0800005E 0800      LSRS     r0,r0,#0
0x08000060 011B      LSLS     r3,r3,#4
0x08000062 0800      LSRS     r0,r0,#0
0x08000064 011B      LSLS     r3,r3,#4
0x08000066 0800      LSRS     r0,r0,#0
0x08000068 011B      LSLS     r3,r3,#4
0x0800006A 0800      LSRS     r0,r0,#0
0x0800006C 011B      LSLS     r3,r3,#4
0x0800006E 0800      LSRS     r0,r0,#0
0x08000070 011B      LSLS     r3,r3,#4
0x08000072 0800      LSRS     r0,r0,#0
0x08000074 011B      LSLS     r3,r3,#4
0x08000076 0800      LSRS     r0,r0,#0
0x08000078 011B      LSLS     r3,r3,#4
0x0800007A 0800      LSRS     r0,r0,#0
0x0800007C 011B      LSLS     r3,r3,#4
0x0800007E 0800      LSRS     r0,r0,#0
0x08000080 011B      LSLS     r3,r3,#4
0x08000082 0800      LSRS     r0,r0,#0
0x08000084 011B      LSLS     r3,r3,#4
0x08000086 0800      LSRS     r0,r0,#0
0x08000088 011B      LSLS     r3,r3,#4
0x0800008A 0800      LSRS     r0,r0,#0
0x0800008C 011B      LSLS     r3,r3,#4
0x0800008E 0800      LSRS     r0,r0,#0
0x08000090 011B      LSLS     r3,r3,#4
0x08000092 0800      LSRS     r0,r0,#0
0x08000094 011B      LSLS     r3,r3,#4
0x08000096 0800      LSRS     r0,r0,#0
0x08000098 011B      LSLS     r3,r3,#4
0x0800009A 0800      LSRS     r0,r0,#0
0x0800009C 011B      LSLS     r3,r3,#4
0x0800009E 0800      LSRS     r0,r0,#0
0x080000A0 011B      LSLS     r3,r3,#4
0x080000A2 0800      LSRS     r0,r0,#0
0x080000A4 011B      LSLS     r3,r3,#4
0x080000A6 0800      LSRS     r0,r0,#0
0x080000A8 011B      LSLS     r3,r3,#4
0x080000AA 0800      LSRS     r0,r0,#0
0x080000AC 011B      LSLS     r3,r3,#4
0x080000AE 0800      LSRS     r0,r0,#0
0x080000B0 011B      LSLS     r3,r3,#4
0x080000B2 0800      LSRS     r0,r0,#0
0x080000B4 011B      LSLS     r3,r3,#4
0x080000B6 0800      LSRS     r0,r0,#0
0x080000B8 011B      LSLS     r3,r3,#4
0x080000BA 0800      LSRS     r0,r0,#0
0x080000BC 011B      LSLS     r3,r3,#4
0x080000BE 0800      LSRS     r0,r0,#0
0x080000C0 011B      LSLS     r3,r3,#4
0x080000C2 0800      LSRS     r0,r0,#0
0x080000C4 011B      LSLS     r3,r3,#4
0x080000C6 0800      LSRS     r0,r0,#0
0x080000C8 011B      LSLS     r3,r3,#4
0x080000CA 0800      LSRS     r0,r0,#0
0x080000CC 011B      LSLS     r3,r3,#4
0x080000CE 0800      LSRS     r0,r0,#0
0x080000D0 011B      LSLS     r3,r3,#4
0x080000D2 0800      LSRS     r0,r0,#0
0x080000D4 011B      LSLS     r3,r3,#4
0x080000D6 0800      LSRS     r0,r0,#0
0x080000D8 011B      LSLS     r3,r3,#4
0x080000DA 0800      LSRS     r0,r0,#0
0x080000DC 011B      LSLS     r3,r3,#4
0x080000DE 0800      LSRS     r0,r0,#0
0x080000E0 0633      LSLS     r3,r6,#24
0x080000E2 0800      LSRS     r0,r0,#0
0x080000E4 011B      LSLS     r3,r3,#4
0x080000E6 0800      LSRS     r0,r0,#0
0x080000E8 011B      LSLS     r3,r3,#4
0x080000EA 0800      LSRS     r0,r0,#0
                 _main_stk:
0x080000EC F8DFD00C  LDR.W    sp,[pc,#12]  ; @0x080000FC
                 _main_scatterload:
0x080000F0 F000FC3C  BL.W     __scatterload_rt2 (0x0800096C)
                 _main_init:
0x080000F4 4800      LDR      r0,[pc,#0]  ; @0x080000F8
0x080000F6 4700      BX       r0
0x080000F8 0121      LSLS     r1,r4,#4
0x080000FA 0800      LSRS     r0,r0,#0
0x080000FC 0208      LSLS     r0,r1,#8
0x080000FE 2000      MOVS     r0,#0x00


//******************************************************************************************************问题在这里:
怎么看我的 中断向量表 在 0x0800 0000 里是怎么被安排的啊?

中断服务程序在下面:
如何由0x0800 0000 附近的表格里的数据找到0x080005F4,0x08000632的中断服务程序的呢???
//******************************************************************************************************问题  



    23:         GPIOD->ODR|=1
收藏 评论2 发布时间:2010-9-3 19:42

举报

2个回答
vipcff 回答时间:2010-9-5 13:18:07

RE:CORTEX-M3在地址0xE000ED08处放的就是

up
回答时间:2010-9-6 09:12:49

RE:CORTEX-M3在地址0xE000ED08处放的就是

你工程设置时,选择输出HEX文件,然后生成HEX文件以后,用记事本打开,里面你可以找到你设置的向量地址及中断跳转地址。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版