F28335的程序中只包含GPIO点亮LED灯和对总线写(或读)的操作,上电之后,会比较频繁的出现死机现象,而且造成死机的点都是在总线访问语句处。但是,只要上电之后程序能够正常运行,那么在运行过程中却不会出现死机问题。请教这个问题该如何解决?
说明:
1. 总线上挂接了373锁存器(Zone0)和SRAM(Zone6和Zone7);
2. 评估板上也存在一样的问题。
Forrest:
楼主用例程试试,里程是否也有这个问题?既然"评估板上也存在一样的问题",那我估计是软件配置的原因。
此外,CPU访问HOLD状态的外部设备的时候会Stalled,这时候会无法响应中断,也无法喂狗,所以访问之前最好需要在 XINTFCNF2 中先判断一下。或者用DMA来做这件事情。
F28335的程序中只包含GPIO点亮LED灯和对总线写(或读)的操作,上电之后,会比较频繁的出现死机现象,而且造成死机的点都是在总线访问语句处。但是,只要上电之后程序能够正常运行,那么在运行过程中却不会出现死机问题。请教这个问题该如何解决?
说明:
1. 总线上挂接了373锁存器(Zone0)和SRAM(Zone6和Zone7);
2. 评估板上也存在一样的问题。
Jeffrey Tang:
兄弟,我也遇到这个问题,你有解决方法了吗?
F28335的程序中只包含GPIO点亮LED灯和对总线写(或读)的操作,上电之后,会比较频繁的出现死机现象,而且造成死机的点都是在总线访问语句处。但是,只要上电之后程序能够正常运行,那么在运行过程中却不会出现死机问题。请教这个问题该如何解决?
说明:
1. 总线上挂接了373锁存器(Zone0)和SRAM(Zone6和Zone7);
2. 评估板上也存在一样的问题。
Jeffrey Tang:
回复 Forrest:
Forrest,
Thanks for your advice first.
我采用例程做了这个测试,问题依然存在。 程序仅仅开一个定时器中断,在中断250ms中执行LED灯TOGGLE操作和Zone7区间读写操作。
程序配置中,XHOLDA and XHOLD pin 作为默认输入,硬件通过39欧姆电阻和LED接3.3V上拉。
从 spru949.pdf 的 table 1-9上看,HOLD pin is high, HOLDS registry的值是1,表示外部设备请求XINTF总线。
“访问之前最好需要在 XINTFCNF2 中先判断一下”, 如何判断?
F28335的程序中只包含GPIO点亮LED灯和对总线写(或读)的操作,上电之后,会比较频繁的出现死机现象,而且造成死机的点都是在总线访问语句处。但是,只要上电之后程序能够正常运行,那么在运行过程中却不会出现死机问题。请教这个问题该如何解决?
说明:
1. 总线上挂接了373锁存器(Zone0)和SRAM(Zone6和Zone7);
2. 评估板上也存在一样的问题。
Forrest:
回复 Jeffrey Tang:
关于HOLD是如果用到了,才需要在XINTCNF2[HOLDS]判断一下,确认一下是否在Stalled状态;您没有用到。
否则如您谈到用例程问题依然存在,我认为是硬件问题,您确认一下是硬件上有短路,还是因为布线问题导致信号不稳定。
调低总线运行频率,用下面这类程序测试外部的RAM能够通过测试吗?
for(i = 0; i < 0xFFFF; i++) { *(ExRamStart + i) = 0x5555; if(*(ExRamStart + i) != 0x5555) { while(1); } } for(i = 0; i < 0xFFFF; i++) { *(ExRamStart + i) = 0xAAAA; if(*(ExRamStart + i) != 0xAAAA) { while(1); } }
F28335的程序中只包含GPIO点亮LED灯和对总线写(或读)的操作,上电之后,会比较频繁的出现死机现象,而且造成死机的点都是在总线访问语句处。但是,只要上电之后程序能够正常运行,那么在运行过程中却不会出现死机问题。请教这个问题该如何解决?
说明:
1. 总线上挂接了373锁存器(Zone0)和SRAM(Zone6和Zone7);
2. 评估板上也存在一样的问题。
Jeffrey Tang:
回复 Forrest:
Forrest,
按照你的例程测试,依然会出现这个偶尔死机的现象,对于你说到的HOLDA和XHOLDA,因为我没有用到DMA,这两个pin脚是接外部输出LED灯的,有何建议?硬件上,我们该如何查原因?
Yanzi Hu,
这个问题您解决了吗?有看到我的留言请回复: 3198918@qq.com