曾使用别的核心板调试(没有JTAG口),把程序写入SD卡,然后使用SD卡启动运行,程序中设置MPLLCON没问题。
使用 Helper2416 核心板JTAG裸机调试时,每次设置MPLLCON就死机,请问是什么原因。
使用ADS1.2和AXD,死机在 AXD中暂停则显示"RDI severe error 00602, Can't halt target and make it enter debuf state ",然后就自动退出AXD。是不是使用JTAG调试,OM[0]-OM[4]有什么设置要求?
本帖最后由 arm9dzgc 于 2018-3-16 15:17 编辑
使用JTAG调试设置PLL时,不要单步,可以设断点直接跳过看看。
My dreams will go on...
http://www.jyxtec.com
谢谢版主!
发现不是单步的问题,单步和连续我都试过。程序循环运行,控制开发板上的LED等显示。进入AXD后查看 0x4c000010(MPLLCON),其值为 0x8042c061,即mdiv=267,pdiv=3,sdiv=1,此时我在程序中重新设置为此值,程序可以正常运行,若设置为其它值(包括手册推荐的值),程序都不能运行。
我也曾经设置过,记得是单步不行,连续跑就可以了,你这个不行的话,我也不知道啥情况了。。。
My dreams will go on...
http://www.jyxtec.com
谢谢版主!
问题解决了!在此讲述一下解决过程:
调试中发现设置了新的 MPLLCON 后,AXD就出错退出(程序也不正常运行,灯不闪烁了)。但是只要不关开发板电源并重新进入AXD后运行,核心板竟然可以以新的时钟频率连续正常运行(程序中仍有设置MPLLCON),说明改变 MPLLCON值是没问题的,感觉是设置好 MPLLCON 后,系统时钟不响应或不稳定。
重新查看手册和程序,发现是 CLKSRC 寄存器的 SELMPLL 的设置问题。
MSYSCLK select
SELMPLL=0: MPLL reference clock (produced through clock divider)
SELMPLL=1: MPLL output
为了使程序以较快的速度运行,原来程序中设置了 SELMPLL=1,此时重新设置 MPLLCON 就出问题了。
修改程序,先设置 SELMPLL=0,然后设置 MPLLCON,最后设置SELMPLL=1,这样就不会出现上述问题了。
My dreams will go on...
http://www.jyxtec.com