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