最近有个项目,用LPC2292做的,板子焊好后出了问题:程序可以正常写入(用ISP和JTAG都可以),但是不能执行。同样的程序,用ZLG的EasyArm2200开发板却可以正常执行。 而在我做的板子上,通过JTAG仿真发现,程序在即将进入main()主函数之前,发生了取数据中止,所以主函数根本就没有执行。后来找到了原因,在开发板上,只有将CS1与外部FLASH连接上,内部FLASH的程序才可以正常运行,只要断开,主函数同样无法运行,在进入main()之前,发生未定义指令中止。我做的板子因为考虑到使用内部FLASH,所以CS0-CS3全部悬空了,所以程序才无法正常运行,我想这就是原因所在吧。 如果我的分析是正确的,我就不能理解,CS0-CS3是用于扩展外部器件的,所以我理解的是在使用内部FLASH时,是不用连接的。但是为什么在开发板上不把CS1同外部FLASH连接上,程序就无法正常运行呢?同样在我做的的板子上CS1悬空,程序也无法正常运行。 原因是什么呢?很困惑,还是我对内部FLASH程序的运行机制不够熟悉呢?请对此熟悉的朋友赐教,谢谢了! QQ:530708772 |