这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 文件系统移植求助

共20条 2/2 1 2 跳转至
菜鸟
2007-04-05 21:49:00     打赏
11楼

marker:

你好。

我还是没有搞清楚你的具体情况,所以只能猜测,上面猜错了。不好意思:)

我想确认几点情况:

其一: 用BDM烧完FLash,可以从Flash启动,从Flash启动前是否在调试器中进行了CPU复位?

其二: 不拔掉BDM,板子断电,重启,是否可以启动。

我接着猜了:

如果烧完Flash没有进行CPU复位,直接跳到0xFFF00100去执行,我怀疑有可能是你的bootInit.s文件中的初始化不完整。理由:几乎所有的Flash烧写器都要求系统的RAM是可用的,否则它没有办法缓存。所以在Flash烧写器烧Flash之前,通常都有最小但必要的初始化过程,使得基本的RAM,ROM等空间可以被访问。860我不是特别熟悉,而在PPC82xx,PPC5xxx中一般要通过调试器写配置寄存器,PPC405,440中则要写DCR。

如果你可以烧写Flash,证明这些基本初始化是做完了的。。。。应该就是你的调试器的那个配置文件干的。它做了基本初始化,你下载bootrom如果不复位的话,这些操作的作用还在。。。但复位重来的话,这些初始化就没有做过。。。所以这样猜测。。。

另外,如果,不拔掉BDM就可以,拔掉就不行,不管断电与否 ,复位与否,那多半 是硬件问题。。。

啊,继续关注。。


院士
2007-04-05 22:16:00     打赏
12楼
以下是引用yaopg在2007-4-5 13:49:00的发言:

marker:

你好。

我还是没有搞清楚你的具体情况,所以只能猜测,上面猜错了。不好意思:)

我想确认几点情况:

其一: 用BDM烧完FLash,可以从Flash启动,从Flash启动前是否在调试器中进行了CPU复位?

其二: 不拔掉BDM,板子断电,重启,是否可以启动。

我接着猜了:

如果烧完Flash没有进行CPU复位,直接跳到0xFFF00100去执行,我怀疑有可能是你的bootInit.s文件中的初始化不完整。理由:几乎所有的Flash烧写器都要求系统的RAM是可用的,否则它没有办法缓存。所以在Flash烧写器烧Flash之前,通常都有最小但必要的初始化过程,使得基本的RAM,ROM等空间可以被访问。860我不是特别熟悉,而在PPC82xx,PPC5xxx中一般要通过调试器写配置寄存器,PPC405,440中则要写DCR。

如果你可以烧写Flash,证明这些基本初始化是做完了的。。。。应该就是你的调试器的那个配置文件干的。它做了基本初始化,你下载bootrom如果不复位的话,这些操作的作用还在。。。但复位重来的话,这些初始化就没有做过。。。所以这样猜测。。。

另外,如果,不拔掉BDM就可以,拔掉就不行,不管断电与否 ,复位与否,那多半 是硬件问题。。。

啊,继续关注。。

怎么搞得真的跟写信似的~~~~~


菜鸟
2007-04-05 23:57:00     打赏
13楼
见笑了:)呵呵。。。

院士
2007-04-06 00:09:00     打赏
14楼
以下是引用yaopg在2007-4-5 15:57:00的发言:
见笑了:)呵呵。。。

实在是能够看出做事的严谨,偶喜欢~~~


菜鸟
2007-04-09 01:10:00     打赏
15楼
以下是引用yaopg在2007-4-5 13:49:00的发言:

marker:

你好。

我还是没有搞清楚你的具体情况,所以只能猜测,上面猜错了。不好意思:)

我想确认几点情况:

其一: 用BDM烧完FLash,可以从Flash启动,从Flash启动前是否在调试器中进行了CPU复位?

其二: 不拔掉BDM,板子断电,重启,是否可以启动。

我接着猜了:

如果烧完Flash没有进行CPU复位,直接跳到0xFFF00100去执行,我怀疑有可能是你的bootInit.s文件中的初始化不完整。理由:几乎所有的Flash烧写器都要求系统的RAM是可用的,否则它没有办法缓存。所以在Flash烧写器烧Flash之前,通常都有最小但必要的初始化过程,使得基本的RAM,ROM等空间可以被访问。860我不是特别熟悉,而在PPC82xx,PPC5xxx中一般要通过调试器写配置寄存器,PPC405,440中则要写DCR。

如果你可以烧写Flash,证明这些基本初始化是做完了的。。。。应该就是你的调试器的那个配置文件干的。它做了基本初始化,你下载bootrom如果不复位的话,这些操作的作用还在。。。但复位重来的话,这些初始化就没有做过。。。所以这样猜测。。。

另外,如果,不拔掉BDM就可以,拔掉就不行,不管断电与否 ,复位与否,那多半 是硬件问题。。。

啊,继续关注。。

hehe

佩服得厉害, 我的情况就是你"接着猜了:"的那段话,真强!!

对现象的追加描述:

其一: 烧完Flash没有进行CPU复位,拨掉bdm线之后,直接执行

其二,不拔掉BDM,板子断电,重启,不启动

(顺便问一句:这个用来判断什么啊??应该烧写完了肯定要拔掉才有效果啊)

我现在考虑也可能是这个初始化这一段有问题,但是我已经参考了2个bsp里面的rominit.s

应该不会少什么了,有可能是哪里配错了,我回去再努力查查啊

现在最不放心的是ram字的配制,

好像很多不同的sdram片子有不同的ram字(虽然只有很少部分不同),各位大哥是怎么确保ram字配制正确的啊?

(有个mcuinit软件,好像不怎么好用,ram 的datasheet里面只有真值表,不知道怎么转为时序呢?)


院士
2007-04-09 02:07:00     打赏
16楼
这个帖子可以称得上是标准范本了~~

菜鸟
2007-04-09 05:39:00     打赏
17楼

谢谢jackwang斑竹的称赞---被我那2000多的月薪整得很没自信,在坛子里总算找到些了,谢谢了。

to marker,

到这个阶段,很快就可以调出来了,我也猜不到其它方面了,所以只好咯咯嗦嗦给你出点馊主意(也许你已搞定不需要了)。

其一:RAM的初始化难度确实高,SRAM还好,DRAM就更麻烦。不过,你现在的有利条件就是,你有一个成功的参考,那就是你的Flash烧写配置文件。其实,这个文件里面的几乎每句话都是可以“翻译”成汇编语言的,既然它做了并且是对的,你不妨将它翻译成汇编,作为你的romInit.s的RAM初始化代码。
其二:调试是个复杂和奇妙的过程,每种板子都不同。复位和初始化对时序很敏感,例如有些PowerPC的板子,一上电,先执行几个空指令(不这样还不行),以保证其它设备复位完成。另外,PowerPC的很多初始化和设置操作都必须要“sync”(通常是sync;isync两个语句)。所以,可以尝试在复位第一条指令处和关键设置语句后添加“sync”语句(Flash烧写配置文件通过JTAG执行,每句话后面都是sync了的)。
这两条参考意义不大,看看就好了。
好运!


院士
2007-04-09 17:04:00     打赏
18楼
以下是引用yaopg在2007-4-8 21:39:00的发言:

谢谢jackwang斑竹的称赞---被我那2000多的月薪整得很没自信,在坛子里总算找到些了,谢谢了。

to marker,

到这个阶段,很快就可以调出来了,我也猜不到其它方面了,所以只好咯咯嗦嗦给你出点馊主意(也许你已搞定不需要了)。

其一:RAM的初始化难度确实高,SRAM还好,DRAM就更麻烦。不过,你现在的有利条件就是,你有一个成功的参考,那就是你的Flash烧写配置文件。其实,这个文件里面的几乎每句话都是可以“翻译”成汇编语言的,既然它做了并且是对的,你不妨将它翻译成汇编,作为你的romInit.s的RAM初始化代码。
其二:调试是个复杂和奇妙的过程,每种板子都不同。复位和初始化对时序很敏感,例如有些PowerPC的板子,一上电,先执行几个空指令(不这样还不行),以保证其它设备复位完成。另外,PowerPC的很多初始化和设置操作都必须要“sync”(通常是sync;isync两个语句)。所以,可以尝试在复位第一条指令处和关键设置语句后添加“sync”语句(Flash烧写配置文件通过JTAG执行,每句话后面都是sync了的)。
这两条参考意义不大,看看就好了。
好运!

收成也是按着年头慢慢增长的~~


菜鸟
2007-04-13 19:02:00     打赏
19楼
以下是引用yaopg在2007-4-8 21:39:00的发言:

谢谢jackwang斑竹的称赞---被我那2000多的月薪整得很没自信,在坛子里总算找到些了,谢谢了。

to marker,

到这个阶段,很快就可以调出来了,我也猜不到其它方面了,所以只好咯咯嗦嗦给你出点馊主意(也许你已搞定不需要了)。

其一:RAM的初始化难度确实高,SRAM还好,DRAM就更麻烦。不过,你现在的有利条件就是,你有一个成功的参考,那就是你的Flash烧写配置文件。其实,这个文件里面的几乎每句话都是可以“翻译”成汇编语言的,既然它做了并且是对的,你不妨将它翻译成汇编,作为你的romInit.s的RAM初始化代码。
其二:调试是个复杂和奇妙的过程,每种板子都不同。复位和初始化对时序很敏感,例如有些PowerPC的板子,一上电,先执行几个空指令(不这样还不行),以保证其它设备复位完成。另外,PowerPC的很多初始化和设置操作都必须要“sync”(通常是sync;isync两个语句)。所以,可以尝试在复位第一条指令处和关键设置语句后添加“sync”语句(Flash烧写配置文件通过JTAG执行,每句话后面都是sync了的)。
这两条参考意义不大,看看就好了。
好运!

非常感谢,我回去试试


菜鸟
2007-04-13 20:30:00     打赏
20楼

MPC860的第一行代码应该相对片选地址偏移0x00100。

Flash里的内容应该是二进制格式。

Flash的片选应该使用CS0。


共20条 2/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]