报错如下:
Trouble Reading Target Cpu memory:
Error 0x00000004/-1156
Error during:Register,
Invalid data was scanned by the emulation controller.
Verify the board setup to make sure the scan chain is properly defined.
不知道有没有人知道这可能是什么问题,我在实验箱上运行那个在线flash烧写程序可以,自己做的板子通过仿真器跑程序能正常工作。会不会是我的CPLD译码程序有错误导致flash不能正常工作,
noaming:
这个似乎不是CPLD等程序内容的错误。
连上了仿真器,加载.out文件后出现的问题?
因为自己的板子和EVM板设计有差别,检查一下GEL文件和cmd文件,注意修改一下。
wen liu:
回复 noaming:
我大体上是参照ICETEK的实验箱做的一个系统板,程序在仿真下能正常运行,就是不能烧写flash。在仿真器下能在线调试的话就应该不会是gel和CMD的问题吧。
noaming:
回复 wen liu:
程序在仿真情况下就不能写FLASH?
先别用\evm5509_MultiBoot\5509MultiBoot\FlashBurn烧写FLASH工具了。
需要先把Flash硬件读写调试通过了,再用上面这个工具下载程序。
\dsk5509a_v1\lib\dsk5509bsl里面有flash读写程序测试。
http://c5000.spectrumdigital.com/dsk5509a/
wen liu:
回复 noaming:
谢谢Titan,我之前可能没说清楚,那个错误就是在仿真情况下运行的flash读写测试程序时报的错,我后面单步运行,发现总是卡在擦除子程序那里,flash读写程序的我也仔细检查过没问题,所以我就在想会不会是cpld地址译码不正确造成的,检查了CPLD程序貌似没问题。
noaming:
回复 wen liu:
擦除程序部分\dsk5509a_v1\lib\dsk5509bsl:dsk5509_flash_erase.c:
/* Start sector erase sequence */ DSK5509_mset(DSK5509_FLASH_CTL555, 0xaa); DSK5509_mset(DSK5509_FLASH_CTL2AA, 0x55); DSK5509_mset(DSK5509_FLASH_CTL555, 0x80); DSK5509_mset(DSK5509_FLASH_CTL555, 0xaa); DSK5509_mset(DSK5509_FLASH_CTL2AA, 0x55);
/* Start erase at sector address */ DSK5509_mset(sector_end[i], 0x30);
/* Wait for erase to complete */ while (1) if (DSK5509_mget(sector_end[i]) & 0x80) break;
你可以自己建一个工程,直接调试库里的的原函数,单步运行测试一下。看看擦除这部分哪里出了问题。