使用STR710FZ2T6,同样的程序在英培特的开发板上可以运行,但自己作的板子就不能运行(代码有40多K)。但是用测试外部FLash的小程序在两个板子上都能运行。请各位高手赐教!
建议
Lxy001,如果有问题,能不能再描述清楚一点,方便我们准备及时的回复。
现象
相同的程序(代码40K)在两块板子上运行,一块是英培特的开发板,另一块是我们自己作的板字。在英培特上能用JTAG正常仿真运行,在我们自己的板子上不能用JTAG仿真(进入未定义异常)。
但是用一个很小的FLASH测试程序在两个板子上都能正常仿真。
英培特上用的是20Pin的JTAG,我们的板子用的是14Pin的JTAG。
把程序直接放入FLash中,我的板子也可以运行。
从你说的现象来看
两种可能:
1、可能是CPU在上电后,由于BOOT的方式不对,CPU无法在RAM中调试程序,需要仔细看一下手册关于BOOT部分的说明。
2、你CPU上电后进入的模式可能不对。
Undef : 当执行未定义指令时会进入这种模式
当一个新的ARM系统上电后或者是复位或软中断指令执行时将会进入Supervisor这种模式。
和JTAG管脚关系不大。
可两个板子的BOOT配置是相同的。
可两个板子的BOOT配置是相同的。
今天直接把程序下载到ARM中运行(不仿真)把BOOT配置成从Flash运行,有时候运行正常,有时候又不正常。不正常时断电后再上电也不行。正常时断电后在上电也是正常的。在正常运行时突然就不行了,断电也无法恢复。
硬件设计是不是有问题
仔细检查一下硬件,看是不是设计中存在问题。
是不是和PCB布线有关?
晶振是16MHz,CPU工作在48MHz,IO工作在6MHz,外部FLASH存放数据工作频率16MHz。
原理图
建议你可以连接仿真器,单步跟程序一步一步检查一下,看到哪里不行了?
DVSTR710B开发板的原理图发到你的邮箱了,看下来,U6B,U6C,U6D。
硬件问题!