搜索
bottom↓
回复: 16

dspsharc老弟,我想找你,麻烦你给我发个邮件

[复制链接]

出0入0汤圆

发表于 2010-2-16 00:20:41 | 显示全部楼层 |阅读模式
shixm.zh@163.com

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2010-2-19 10:34:50 | 显示全部楼层
dspsharc,你过年都没有时间上网,春节一定过得很快乐。看到此贴请联系我吧,我有事要找你帮忙。

出0入0汤圆

发表于 2010-2-20 13:53:41 | 显示全部楼层
是呀!过节就是锻炼身体的好时间。练滑雪练滑冰,练得不亦乐乎。

你找我是为“BDI2000 for PPC4xx V1.17以年的固件”的事吗?难道还有PPC4xx非得老固件才能调吗?PPC4xx不应该这么烂,
我这有GDBPP421之b20pp4gd.116,象是 V1.16,你如果需要,给我13601331348发个短信确认,我整理一下,邮件发给你即可。

出0入0汤圆

 楼主| 发表于 2010-2-20 16:01:43 | 显示全部楼层
PPC460EX的配置文件中有以下的配置命令,低版本的固件V1.08不支持,从资料上查了以后好象是V1.17以上的版本才支持:

SIDCR   0x12        0x13        ;set EBC_CFGADDR and EBC_CFGDATA

就是那个SIDCR命令不支持,请dspsharc分析一下原因,如何解决?

出0入0汤圆

发表于 2010-2-20 16:13:42 | 显示全部楼层
;SIDCR   0x12        0x13
是配合后面的一堆用的
;WIDCR        0xYY           0xZZZZZZZZ

只须将每个WIDCR        0xYY           0xZZZZZZZZ
改成
WDCR   0x12   0x000000YY
WDCR   0x13   0xZZZZZZZZ
即可


不过要手工改很多地方,可花2个小时改好,1个小时再检查。
这个辛苦还是值得的

总之:新固件只是提高了命令效率而已。

出0入0汤圆

 楼主| 发表于 2010-2-20 16:18:25 | 显示全部楼层
哇,不熟悉估计会搞错的。谢谢dspshare,你这么一说,我明白了。

出0入0汤圆

 楼主| 发表于 2010-2-24 08:26:46 | 显示全部楼层
请教一下dspshare,当用BDI2000出现下面的问题时,会是什么原因造成,是CPU电路部分出了问题,还是配置程序出了问题?

PPC460EX-> PPC: JTAG instruction stuff overrun

想通过md命令访问内存,一访问就出现这个错误

出0入0汤圆

发表于 2010-2-24 10:18:23 | 显示全部楼层
(1)你应该先去买评估板,如果评估板也有这个问题,就不是硬件问题,只能将JTAG instruction一条一条注释掉,看CFG是哪条出的问题?
(2)如果评估板没问题,你自己的板有这个问题,那就 评估板 PK 自己的板
也就是 SCH PK 后 PCB PK
(3)如果你没照抄评估板DDR电路,那么就要花半个月到一个月时间好好研究内存配置参数

出0入0汤圆

 楼主| 发表于 2010-2-24 10:53:39 | 显示全部楼层
感觉不是硬件的问题,以前在调其它处理器时也有类似的问题,大都是配置出了问题,因为不管我是读内存,还是读FLASH,或者读内部的寄存器,都会出现这个问题。

问题是我现在用的配置文件就是评估板的配置程序。

会不会是你所说的那样就是内存参数配置不正确,所以造成了这种现象。

出0入0汤圆

发表于 2010-2-24 11:09:58 | 显示全部楼层
我们设计所有PPC板,在内存处理方面,如果不想去啃DDR手册和PPC手册,一律严格照抄评估板,连器件都要用成一样的

出0入0汤圆

发表于 2010-2-24 11:28:02 | 显示全部楼层
因为要想迅速做出产品,设计上必须投机取巧.
这样,大部分的调试工作其实是由评估板的设计方完成的.
这不是能力问题,是产品不等人,时间就是钱.


PPC系统调试有4大坎

(1)仿真器测DDR

(2)仿真器烧完FLASH后BOOT

(3)BOOT测DDR并转移到DDR

(4)以太网的PHY设置

设计如果投机取巧,以上就可不费力气.剩下的就是软件人员的工作了.


我想问一下,你以前做的PPC系统,千兆网实时传输(都是千兆对传最好的CPU),维持速度最高能到多少M字节/秒?
LINUX和VXWORKS无所谓

出0入0汤圆

 楼主| 发表于 2010-2-24 12:37:53 | 显示全部楼层
哈哈,我还没有测试过,因为对传输的速率要求不高。

出0入0汤圆

 楼主| 发表于 2010-2-24 12:38:58 | 显示全部楼层
可能是内存不太一至吧,再查查看。

出0入0汤圆

 楼主| 发表于 2010-3-4 01:17:15 | 显示全部楼层
内存初始化后无法工作,从spd中读出来的信息如下:

DRAM:
spd_read(0x50) returned 128
spd_read(0x50) returned 8
DIMM slot 0: populated

spd_read(0x51) returned 0
spd_read(0x51) returned 0
DIMM slot 1: Not populated
DIMM slot 0: DDR2 SDRAM detected
cycle_time=375 [10 picoseconds]
nb of dimm 1
nb of rank 2
dimm in slot 1
sdram_freq=200000002
cas_bit[SPD byte 18]=38
cas_index=0: cycle_time_ns_x_100=375
cas_index=1: cycle_time_ns_x_100=375
cas_index=2: cycle_time_ns_x_100=500
cycle_3_0_clk=200000010
cycle_4_0_clk=266666676
cycle_5_0_clk=266666676
cas_3_0_available=1
cas_4_0_available=1
cas_5_0_available=1
CAS latency = 30
Write recovery = 4
0.

1.dram_size = 0x20000000
DQS_calibration_process[2715] DLCR: 0x0300007F
DQS_calibration_process[2717] RQDC: 0x80000038
DQS_calibration_process[2719] RFDC: 0x003F0257
DQS_calibration_process[2721] RDCC: 0x40000000
2.

下一步人重新TLB,结果就异常了,不知道是为什么。
        printf("2.\n");
        remove_tlb(0, dram_size);
        program_tlb(0, 0, dram_size, MY_TLB_WORD2_I_ENABLE);

出0入0汤圆

发表于 2010-3-4 11:16:53 | 显示全部楼层
1. "DQS_calibration_process"都打印出来了,说明可以用打印语句了,调试就有点效率了。

2. 你凭什么说“下一步人重新TLB,结果就异常了”
凭什么说------程序死在program_tlb(0, 0, dram_size, MY_TLB_WORD2_I_ENABLE); 附近?
你还须在program_tlb(0, 0, dram_size, MY_TLB_WORD2_I_ENABLE); 的后面若干地方设置若干printf,
明确死在(飞了)哪个大调用。

TLB不会出问题,出问题一定在将程序从FLASH拷到DDR,然后开运行的地方,printf到这些函数去



我刚才看了


        remove_tlb(0, dram_size);
        program_tlb(0, 0, dram_size, MY_TLB_WORD2_I_ENABLE);

        ppc4xx_ibm_ddr2_register_dump();

        /*
         * Clear potential errors resulting from auto-calibration.
         * If not done, then we could get an interrupt later on when
         * exceptions are enabled.
         */
        set_mcsr(get_mcsr());

        return sdram_memsize();
}


你应该接着return ,看看return后,程序干啥去了。。。。


3. 还有每个c程序前面基本都有
/* define DEBUG for debugging output (obviously ;-)) */
#if 0
#define DEBUG
#endif
把重点要查的程序的,这个DEBUG打开,就会打出很多调试内容好看得很

出0入0汤圆

 楼主| 发表于 2010-3-4 12:39:39 | 显示全部楼层
前几天串口打印不出来,是USB转RS232的线坏掉了,以前一直在用是好的,这次突然坏了,所以后来换了一根,其实串口早就有输出了。

我把TLB重新初始化的语句禁止掉,程序就可以走下去,由于Flash部分,还没有配置好,所以走到Flash部分也就停止了,先不管内存的TLB部分,先把Flash的部分调好,再回过头来检查,是不是有关系。

由于我的Flash和开发板的型号不一样,所以需要修改一下flash.c

出0入0汤圆

发表于 2010-11-22 16:14:40 | 显示全部楼层
学习了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 17:27

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表