打印

关于BOOT的概念理解(现实版)

[复制链接]
1550|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sxggj|  楼主 | 2009-2-2 14:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用仿真器跑程序时,一种是FLASH内跑,一种LOAD到SDRAM中跑,这两种情况我们会看到的开始代码是不同的,我现在的理解是:FLASH内跑时,刚开始跑的是BOOT部分,它负责将代码搬到SDRAM,搬完后,就可以看到跟LOAD到SDRAM中跑时一样的代码了,请达人确认一下,我的理解对不对

相关帖子

沙发
箫笑| | 2009-2-2 17:45 | 只看该作者

re

没明白你说的"这两种情况我们会看到的开始代码是不同的"是什么意思.

我的理解是:
一种是真的把代码烧进Flash里,那么运行后PC一开始就是指到0x0的,这个时候的程序是加载状态,即使支持重映射的芯片也必须首先把0x0地址分配给Flash。程序在Flash里跑,直到执行完拷贝代码的程序之后,才跳到SDRAM里执行.
这个拷贝代码的工作其实是要把程序从加载态转换成运行态,使符号连接正确。
如果用仿真器跑,PC一开始就是指到SDRAM里去的,符号连接也已经正确了,这个时候不需要复制代码,没有Flash什么事儿.我试过,如果把ro_base,rw_base那几个值都设到Flash的地址里去的话,根本就仿真不了的,SDRAM里没有代码。

使用特权

评论回复
板凳
箫笑| | 2009-2-2 17:47 | 只看该作者

不知道仿真还能在Flash里的吗?

使用特权

评论回复
地板
sxggj|  楼主 | 2009-2-2 21:18 | 只看该作者

flash里也能仿真

或者叫调试吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

230

主题

1397

帖子

3

粉丝