dfgeoff
驱动牛犊
驱动牛犊
  • 注册日期2004-07-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分290分
  • 威望69点
  • 贡献值0点
  • 好评度69点
  • 原创分0分
  • 专家分0分
阅读:1688回复:5

[讨论]如何下载完新的boot,不烧录,直接跳转到sdram的地址执行

楼主#
更多 发布于:2007-12-15 12:34
    eboot总是重新烧到flash后,重启,运行的。

    在平台初期开发过程中,为了防止修改出错,造成无法启动,想下载完新的boot后(保存在SDRAM的一个地址),不烧录,而是跳转到sdram的对应地址,直接执行新的boot。

    有点像下载了OS Image后的动作。OEMLaunch里面的,最后有Launch(...),可以实现。不过这个是在MMU开启的情况下。

    BOOT下要实现,需要涉及什么呢?有人做过吗?
日本-倭子-该死! 抵制日货! 敢犯我中华者,虽远必诛!
dfgeoff
驱动牛犊
驱动牛犊
  • 注册日期2004-07-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分290分
  • 威望69点
  • 贡献值0点
  • 好评度69点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-12-17 14:30
我发现我的疑问总是很特殊,没人回答的……

郁闷啊,继续等。
日本-倭子-该死! 抵制日货! 敢犯我中华者,虽远必诛!
wenzai
驱动中牛
驱动中牛
  • 注册日期2002-04-16
  • 最后登录2011-03-04
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望424点
  • 贡献值0点
  • 好评度309点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-12-17 18:40
先解决在新的地址运行时的堆栈问题
microsun
论坛版主
论坛版主
  • 注册日期2002-11-11
  • 最后登录2014-07-18
  • 粉丝0
  • 关注0
  • 积分1052分
  • 威望1159点
  • 贡献值0点
  • 好评度848点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-12-17 21:12
和处理OS的情形一样,直接跳到那个SDRAM地址就行.
学海无涯
gerryzhou
驱动小牛
驱动小牛
  • 注册日期2006-05-14
  • 最后登录2009-04-18
  • 粉丝0
  • 关注0
  • 积分990分
  • 威望133点
  • 贡献值0点
  • 好评度132点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-12-19 10:30
eboot肯定提供了在sdram运行的功能,即使没有相应的菜单项,也可以通过 config.bib设置来实现下在到SDRAM中运行。比如:我的系统,pxa270+mainstoneIII,eboot中没有下载到ram中运行的菜单,通过查看eboot原代码,发现通过读取nk.bin的信息,可以知道下载地址,从而选择下载sdram还是flash
dfgeoff
驱动牛犊
驱动牛犊
  • 注册日期2004-07-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分290分
  • 威望69点
  • 贡献值0点
  • 好评度69点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-12-21 17:34
先说明一下: 按照下载完OS后跳转执行的步骤,调用Launch(地址), 后续跳转到汇编执行,是无法实现跳转执行eboot的。

回gerryzhou朋友:NK.bin读到的地址是OS镜像的,这个跳转功能是没问题的。现在希望的是eboot。

本来以为是虚拟、物理地址之间的问题,但是汇编里面又关闭了MMU了。

    其实,系统刚启动的时候,在Startup.s里面,将eboot复制到SDRAM之后,再跳到SDRAM里的main()执行,这个过程肯定是可行的。

    只是现在eboot已经启动了,肯定有很多环境设置和硬启动不一样了,所以,会比较麻烦,需要各位高手指点!
日本-倭子-该死! 抵制日货! 敢犯我中华者,虽远必诛!
游客

返回顶部