查看: 2207|回复: 2

[求助] 单片机第一条指令如何跑进Reset_Handler的?

[复制链接]

该用户从未签到

4

主题

6

帖子

0

新手上路

Rank: 1

积分
30
最后登录
2016-4-29
发表于 2015-1-28 15:54:34 | 显示全部楼层 |阅读模式
按照我的理解,单片机一上电,跑的是flash room 0x0地址的内容,
那么在flash的0x0地址处应该放的是Reset_Hanlder对应的指令吧?
链接脚本指明了ENTRY是Reset_Handler:
/* Entry Point */
ENTRY(Reset_Handler)


所以我做了如下验证:
读flash 0x0地址的前4个字节,得到的值为:
1a30 2000
从被运行的elf中找对应的值,位于文件的0x8000处:
0008000 1a30 2000
查看Reset_Handler对应的机器码:
00000000 <Reset_Handler>:
   0:    b672          cpsid    i
   2:    4809          ldr    r0, [pc, #36]    ; (28 <Reset_Handler+0x28>)
   4:    4909          ldr    r1, [pc, #36]    ; (2c <Reset_Handler+0x2c>)

不是1a30啊,说明flash在0x0处放的不是Reset_Handler指令啊!

查看0x8000对应的section:
Section Headers:
  [Nr] Name              Type                Addr          Off          Size   ES   Flg Lk Inf Al
  [ 0]                          NULL              00000000 000000 000000 00        0   0  0
  [ 1] .interrupts       PROGBITS        00000000 008000 0000c0 00   A   0   0  4

是.intterupts这个section:
  /* The startup code goes first into internal flash */
  .interrupts :
  {
    __VECTOR_TABLE = .;
    . = ALIGN(4);
    KEEP(*(.isr_vector))     /* Startup code */
    . = ALIGN(4);
  } > m_interrupts

对应的isr_vector符号的内容是:
__isr_vector:
    .long   __StackTop                                      /* Top of Stack */
    .long   Reset_Handler                                   /* Reset Handler */
    .long   NMI_Handler                                     /* NMI Handler*/
    .long   HardFault_Handler                               /* Hard Fault Handler*/

那么,我有疑问了:
1. 系统一上电怎么跑进Reset_Handler了?
2. 1a30这个值为什么我在对应的startup_MKE06Z4.o中找不到呢?


我知道答案 目前已有2人回答
回复

使用道具 举报

该用户从未签到

4

主题

6

帖子

0

新手上路

Rank: 1

积分
30
最后登录
2016-4-29
 楼主| 发表于 2015-1-28 16:02:57 | 显示全部楼层
怎么删除帖子呢,重复了...
回复 支持 反对

使用道具 举报

该用户从未签到

9

主题

219

帖子

0

高级会员

Rank: 4

积分
653
最后登录
2017-11-19
发表于 2015-4-24 17:31:36 | 显示全部楼层
Cortex系列的话不是因为上电复位吗?在复位中断中
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-23 05:32 , Processed in 0.086203 second(s), 23 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表