我手头有一块第三方的C6748的开发板(称为T板),上面nandflash是128MB的。
然后我自己做了一块C6748的板子(称为M板),上面nandflash是2GB的。
M板,用startware中的其他程序测试,全都正常。
然后用startware中的nandflash程序测试,对nandflash程序唯一修改的内容如下:
原本是(T板用此配置):
#define NAND_PAGE_SIZE_IN_BYTES (NAND_PAGESIZE_2048BYTES)
#define NAND_BLOCK_SIZE_IN_BYTES (NAND_BLOCKSIZE_128KB)
#define NAND_NUMOF_BLK (4096)
#define NAND_MANUFATURER_MICRON_ID (0xEC)
#define NAND_DEVICE_ID (0xF1)
针对我采用的nandflash,改为了(M板用此配置):
//#define NAND_PAGE_SIZE_IN_BYTES (NAND_PAGESIZE_4096BYTES)
//#define NAND_BLOCK_SIZE_IN_BYTES (NAND_BLOCKSIZE_256KB)
//#define NAND_NUMOF_BLK (8192)
//#define NAND_MANUFATURER_MICRON_ID (0x96)
//#define NAND_DEVICE_ID (0xD5)
其他程序都完全相同。
测试结果:M板读写nandflash完全正常,并且读写的数据一致:
但是,当我按下红色的Terminate按钮退出debug,然后再次点击debug按钮时,出现了:
红色文字内容为:
C674X_0: Trouble Reading Memory Block at 0x1c11100 on Page 0 of Length 0x4: (Error -1137 @ 0x1C11100) Device is held in reset. Take the device out of reset, and retry the operation. (Emulation package 5.1.232.0)
C674X_0: GEL: Error while executing OnTargetConnect(): Target failed to read 0x01C11100 at (*((unsigned int *) (0x01C11000+0x100))&=0xFFFFFEFF) [TronLong_C6748.gel:12] at device_PLL0(0, 18, 0, 0, 1, 3, 9) [TronLong_C6748.gel:451] at Set_Core_456MHz() [TronLong_C6748.gel:468] at Core_456MHz_DDR2_156MHz() [TronLong_C6748.gel:260] at CPU_PLL_PSC_DDR_Init() [TronLong_C6748.gel:250] at OnTargetConnect() .
只有断了电再上电,然后重新点击debug,才能重新进入debug。
而开发板做同样的操作,并不会出现上述现象。
根据红字的提示,似乎是访问PLL这块寄存器地址时出了问题。
请问有可能是什么原因?
有可能是硬件原因吗,但是我板子运行程序时很正常,包括DDR、SPI接口、I2C接口、USB、MMCSD、GPIO等测试程序,都完全正常。
谢谢!



