rt,用的飞思卡尔K60系列,CM4内核的,标称100MHz的,很多人都能超到200M+。。但是我在系统初始化代码中设置锁相环的参数,发现当设置内核频率超过70M时就无**常运行,调试后发现是如下情况:
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT SystemInit
IMPORT __main
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
以上是复位后执行代码,可以正常执行完LDR R0, =SystemInit;BLX R0;
但是下面两句就不对了,调试发现运行LDR R0, =__main之后R0居然是0xE7**_****,在存储映射里是未定义的。。
然后就执行机器码00000000,不断地对某个寄存器赋值,然后超时看门狗复位,之后就一直这样循环,复位。。
然而当内核频率调到70M以下时代码又是可以正常运行的。。
求问大侠为神马会这样啊。。 |