|
发表于 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打开,就会打出很多调试内容好看得很 |
|