第一次向2812的FLASH内下载程序是成功的,且程序也能够执行;第二天擦除后,在下载就不行了,报告:
Flash API Error #31:
There was a Aero Bit Error on the Program Operation.
First Fail Address=0x003D7801
在开发板上和其他产品的板子上下载成功,两相对比只是擦除时间有些区别,不能下载的时间短些;每次擦除也报过成功,难道这擦除成功是假的?大家有人碰到过吗?谢谢!
虽然不能下载,但是在RAM调试还是没有问题的。
刚才下载了开发板提供的例程,是没有问题的;我把我的工程中main函数所在的文件内调用其它文件内函数的语句屏蔽掉,居然下载成功,并且反复都是成功的,只要开放一个就不行,这是怎么回事呢?为什么main函数所在文件内不能调用其它文件内的函数?我越来越迷茫了,请各位有经验的朋友指点,谢谢!
经过进一步验证,在任何一个文件内都不能调用文件外的函数,是不是链接设置有问题啊?我的工程师拷贝的开发板例程,在此基础上修改,没有做任何设置。
检查下程序运行需要的空间,可能是运行过程中需要的空间不够。
在开发板例程的基础上,我用主函数所在文件的内容替代原来的文件内容(不是文件替代),把INT1、TIMER0、SCIA、SCIB、SPI、ADC、EVB等资源的初始化和中断及相应的应用程序加入例程,下载都是没有问题的;当加入一个含有switch语句并且case比较多的文件就不行了,如果把case减少到10个就可以通过,奇怪吧?
如果说在任何一个系统上都不行,那也可以说我的软件有问题,可是同一个工程在开发板上、其它产品的板子上、一个网友的板子上都没有问题,偏偏在我的板子上就有这样的奇怪的现象。