2440 nboot 与eboot的调试问题

ningwenguo   2009-3-24 17:23 楼主
关于nboot和eboot的问题

开发板为飞凌的ok2440,采用64M nandflash(k9f1208)启动,bootloader代码为在网上下载立宇泰的pqoal的5.0bsp,用jsf2440将stepldr.nb1写到block0,eboot.bin写到block2。
   目前nboot能够正常起来,通过串口打印以及点灯可以证明,可是在复制完flash的数据,跳到RAM的物理地址(0x30038000)去执行eboot时死机,不知是哪个地址不对,请高手指点。

  还有一个问题是,我看代码里都是针对16M晶振的,而我的开发板上的是12M,请问相关代码该如何修改。


谢谢了。

回复评论 (22)

如果晶振对应参数配置不对的话,sdram估计就没起的来。
你试试对sdram空间的至少两个地址写入不同的数据,然后再读看看。
点赞  2009-3-24 17:34
在你的Nboot里在SDRAM初始话完成后对SDRAM操作,然后用点灯看看操作是否成功~
点赞  2009-3-24 17:52
改系统的主频及PCLK/HCLK,具体看fw.s和s2440.h文件
不过有个问题哦,你的串口怎么可以正常打印呢?打印的内容是不是只是BIOS启动时的信息啊,系统启动的信息应该不能正常打印出来吧
点赞  2009-3-24 18:07
那你就看eboot死在了哪一句了。
点赞  2009-3-24 22:04
引用: 引用 3 楼 billy14 的回复:
改系统的主频及PCLK/HCLK,具体看fw.s和s2440.h文件
不过有个问题哦,你的串口怎么可以正常打印呢?打印的内容是不是只是BIOS启动时的信息啊,系统启动的信息应该不能正常打印出来吧

串口一开始是打印不正常的,我通过把dnw的串口波特率改为38400(nboot的设置为115200),
点赞  2009-3-25 08:20
引用: 引用 4 楼 yashi 的回复:
那你就看eboot死在了哪一句了。

目前定位不到eboot死在哪了,感觉eboot根本就没起来。可能是sdram没起来。
点赞  2009-3-25 08:24
引用: 引用 5 楼 sanlybeen 的回复:
引用 3 楼 billy14 的回复:
改系统的主频及PCLK/HCLK,具体看fw.s和s2440.h文件
不过有个问题哦,你的串口怎么可以正常打印呢?打印的内容是不是只是BIOS启动时的信息啊,系统启动的信息应该不能正常打印出来吧

串口一开始是打印不正常的,我通过把dnw的串口波特率改为38400(nboot的设置为115200),

那应该是时钟不对。看spec,需要该FCLK,PCLK这些值,在.s里面改。
点赞  2009-3-25 08:45
引用: 引用楼主 sanlybeen 的帖子:
关于nboot和eboot的问题

开发板为飞凌的ok2440,采用64M nandflash(k9f1208)启动,bootloader代码为在网上下载立宇泰的pqoal的5.0bsp,用jsf2440将stepldr.nb1写到block0,eboot.bin写到block2。
  目前nboot能够正常起来,通过串口打印以及点灯可以证明,可是在复制完flash的数据,跳到RAM的物理地址(0x30038000)去执行eboot时死机,不知是哪个地址不对,请高手指点。

  还有一个问题是,我看代码里都是针对16M晶…


不同的晶振配置在2440的数据手册255 page

在OAL下的汇编文件startup.s汇编文件修改MPLL以及一个串口相关的PCLK修改(这个记得在BSP的INC下,具体到我博客去搜索一下。好久了。)
点赞  2009-3-25 08:54
up
点赞  2009-3-25 09:00
up
点赞  2009-3-25 09:00
多谢几位的指点,我仔细改改。谢谢了
点赞  2009-3-25 09:13
飞凌的板子,立宇泰的bootloader,能这样用吗?我记得以前立宇泰5.0bsp里面编写出来的bootloader根本就不能用的,它会提供一个EBOOT.BIN文件,那个才好使。
点赞  2009-3-25 09:33
还是ads的boot好,方便
点赞  2009-3-25 09:36
引用: 引用 12 楼 wjf_zjut 的回复:
飞凌的板子,立宇泰的bootloader,能这样用吗?我记得以前立宇泰5.0bsp里面编写出来的bootloader根本就不能用的,它会提供一个EBOOT.BIN文件,那个才好使。


当然能使用,我使用过三个BSP,

其实这些BSP都是三星的,这些开发板商修改一点点,就卖了。
点赞  2009-3-25 09:44
多谢gooogleman的指点,现在串口的波特率可以对上了,可是sdram好像还是没起来,mpll,upll都是按照12M晶振的参数设置的,怎么能够确定sdram起来了,怎么调试这个。谢谢了。
点赞  2009-3-25 10:13
好像我的代码里没有sdram初始化,请问直接操作内存该如何操作。
点赞  2009-3-25 10:39
大家帮帮忙啊,请问什么样的mpll,能够满足sdram的要求
点赞  2009-3-26 10:52
引用: 引用 15 楼 sanlybeen 的回复:
多谢gooogleman的指点,现在串口的波特率可以对上了,可是sdram好像还是没起来,mpll,upll都是按照12M晶振的参数设置的,怎么能够确定sdram起来了,怎么调试这个。谢谢了。


SDRAM不起来你的板子就运行不了。

这东西不用改的,除非你把内存扩大了。
点赞  2009-3-26 10:56
nboot起来之后,如何去执行eboot,可以定位到每次都是到((PFN_IMAGE_LAUNCH)(LOAD_ADDRESS_PHYSICAL))();
就不执行了。eboot烧在block2,看到别人说要向block1写ptoc,这ptoc在什么地方,如何烧写。

谢谢了。
点赞  2009-3-26 12:05
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复