查看: 5145|回复: 5

[求助] 如果程序烧到SRAM调试,那单片机的启动地址是不是SRAM的首地址呀?

[复制链接]

该用户从未签到

5

主题

14

帖子

0

新手上路

Rank: 1

积分
41
最后登录
1970-1-1
发表于 2012-2-24 12:45:22 | 显示全部楼层 |阅读模式
     我把程序烧到SRAM中调试,把中断向量表放到了SRAM首地址开始处,程序运行正常。查看了反汇编,发现0x00000000处没有数据和指令,是不是此时单片机启动后是从SRAM首地址开始运行的,而不是从0x00000000处运行的?
我知道答案 目前已有4人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-2-24 17:11:33 | 显示全部楼层

    RE:如果程序烧到SRAM调试,那单片机的启动地址是不是SRAM的首地址呀?

    0x00000000存放堆栈起始地址;0x00000004存放PC指针,上电后把0x00000000内容给SP,把0x00000004内容给PC,然后从那个地址开始执行指令。0x00000000 0x20010000 ;堆栈起始位置在RAM最顶端,0x00000004 __startup ;第一条指令在__startup标号处。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    14

    帖子

    0

    新手上路

    Rank: 1

    积分
    41
    最后登录
    1970-1-1
     楼主| 发表于 2012-2-24 18:55:16 | 显示全部楼层

    回复:如果程序烧到SRAM调试,那单片机的启动地址是不是SRAM的首地址呀?

    回复第 2 楼 于2012-02-24 09:11:33发表:
    0x00000000存放堆栈起始地址;0x00000004存放PC指针,上电后把0x00000000内容给SP,把0x00000004内容给PC,然后从那个地址开始执行指令。0x00000000 0x20010000 ;堆栈起始位置在RAM最顶端,0x00000004 __startup ;第一条指令在__startup标号处。
     
        那如果我是在调试模式下,而且程序都在RAM中,调试启动的时候应该是从调试点地址开始的吧,那么又是如何读取堆栈起始地址和PC指针的呢?这个时候应该和0x00000000、0x00000004这两个地址没有关系吧?
     

     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-2-25 09:44:44 | 显示全部楼层

    RE:如果程序烧到SRAM调试,那单片机的启动地址是不是SRAM的首地址呀?

    RAM调试的时候和ROM不一样,他生成的文件也不一样。你可以看他生成的.S19文件的内容就明白了。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    14

    帖子

    0

    新手上路

    Rank: 1

    积分
    41
    最后登录
    1970-1-1
     楼主| 发表于 2012-2-25 11:16:08 | 显示全部楼层

    回复:如果程序烧到SRAM调试,那单片机的启动地址是不是SRAM的首地址呀?

    回复第 4 楼 于2012-02-25 01:44:44发表:
    RAM调试的时候和ROM不一样,他生成的文件也不一样。你可以看他生成的.S19文件的内容就明白了。
     
    多谢,终于弄明白了~~
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    10

    帖子

    0

    新手上路

    Rank: 1

    积分
    28
    最后登录
    1970-1-1
    发表于 2012-2-28 10:36:13 | 显示全部楼层

    RE:如果程序烧到SRAM调试,那单片机的启动地址是不是SRAM的首地址呀?

    0x00000000存放堆栈起始地址。这里的堆栈起始地址具体作用是干什么???是用来中断程序或程序嵌套时用的吗?
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-9-6 15:23 , Processed in 0.093754 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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