使用am5728 2.0版,概率性出现上电启动卡住,经过5min左右,芯片又自动重启且正常。使用仿真器查看卡住时cpu状态,读取到以下寄存器的值:
PC=0x0003808C, LR=0003C034
请问是什么原因导致的。
Shine:
请问是自己的开发板吗?请检查一下板子的上电时序,特别是复位信号是否足够长?
(11) Pulse duration: resetn/porz must remain low a minimum of 12P(15) after xi_osc0 is stable and at a valid frequency. resetn/porz must
also remain low until all supply rails are valid and stable.
Figure 5-1. Power-Up Sequencing
www.ti.com/…/am5728.pdf
Denny%20Yang99373:
是不是有看门狗等电路?
d d:
回复 Shine:
是自己的开发板,确认过上电时序和reset信号,都是符合要求的。
d d:
回复 Denny%20Yang99373:
有看门狗电路。
d d:
回复 Denny%20Yang99373:
有看门狗电路。
yongqing wang:
回复 d d:
是启动到一半停住还是一开机就停了
d d:
回复 yongqing wang:
一开机就停了,目前确认到执行romcode程序时出现异常,pc=0x3808c是romcode的data abort异常处理地址,且lr=0x3c034,若能获取romcode代码,可精确定位到异常代码位置。另外,查看romcode的执行记录,获取到romcode中的Tracing data数据为:0x4037f040=0x9f, 0x4037f044=0x1000,0x4037f048=0x10,检测到从emmc启动,且获取到GP header,但未执行MLO。
d d:
回复 d d:
目前获取到cpu a15-0中异常前后的汇编代码段如下:
003c000:F8D8F002.word0xf8d8f002
0003c004:B0272001eorltr2, r7, r1
0003c008:B5F8E711ldrbltlr, [r8, #0x711]!
0003c00c:460E4604strmir4, [lr], -r4, lsl #12
0003c010:46682580strbtmir2, [r8], -r0, lsl #11
0003c014:FA87F7FEblx#0xfe23a014
0003c018:2001B108andhsr11, r1, r8, lsl #2
0003c01c:9800BDF8stmdalsr0, {r3, r4, r5, r6, r7, r8, r10, r11, r12, sp, pc}
0003c020:D1012803mrsler2, apsr
0003c024:3408257Estrlor2, [r8], #-0x57e
0003c028:6831CC01ldmdavsr1!, {r0, r10, r11, lr, pc}
0003c02c:68306008ldmdavsr0!, {r3, sp, lr}
0003c030:1E6D1D00cdpnep13, #6, c1, c13, c0, #0
0003c034:F0156030.word0xf0156030
发生data abort异常的指令是 ldmdavsr0!, {r3, sp, lr},根据这段代码难以推断出有问题的地址,能否结合源码帮忙分析下。
yongqing wang:
回复 d d:
这样上电又能自己恢复的感觉耗时硬件出现的问题比较大,看看复位,电容等设计问题
user5032636:
回复 yongqing wang:
您好:
我最近也遇到这样的问题,我是参照TI 5728_GP_EVM设计的核心板与底板,从eMMC启动,连续两次按键暖复位CPU(PORn)会很高概率出现无法启动,过了3min后,系统能够自动恢复正常启动。连续两次按键冷复位(按键复位PMIC,PMIC复位CPU)也会小概率出现无法启动,过了3min后,系统也能恢复启动。无法启动的状态下,我测到DDR_RESET脚一直被CPU拉低,过3min后,CPU释放控制,DDR_RESET保持高电平,此时恢复启动。从SD卡启动,连续复位不会出现无法启动问题,且DDR_RESET不会被拉低。请问您们的问题解决了么?是哪方面的问题呢?
另外,我测试了TI GP_EVM官方板子,连续复位也会出现相同的问题。