不停在这几个文件中循环:InitSysCtrl()→CodeStartBranch.asm→boot28.asm→pre_init.c→startup.c→args_main.c→InitSysCtrl()。始终不能到下一步DINT
Green Deng:是不是因为看门狗没有禁用,而程序中又没有喂狗,导致的周期性复位?芯片的复位引脚有没有复位信号发生?
不停在这几个文件中循环:InitSysCtrl()→CodeStartBranch.asm→boot28.asm→pre_init.c→startup.c→args_main.c→InitSysCtrl()。始终不能到下一步DINT
user6233582:
回复 Green Deng:
你好,在InitSysCtrl()里就已经禁用看门狗了
不停在这几个文件中循环:InitSysCtrl()→CodeStartBranch.asm→boot28.asm→pre_init.c→startup.c→args_main.c→InitSysCtrl()。始终不能到下一步DINT
user6233582:
有人碰到过这种问题吗?
不停在这几个文件中循环:InitSysCtrl()→CodeStartBranch.asm→boot28.asm→pre_init.c→startup.c→args_main.c→InitSysCtrl()。始终不能到下一步DINT
Green Deng:
回复 user6233582:
单步运行进到函数里面看看具体卡在哪一句?
或者你把工程里面用到的一些文件用官方例程提供的文件替换一下看看。
不停在这几个文件中循环:InitSysCtrl()→CodeStartBranch.asm→boot28.asm→pre_init.c→startup.c→args_main.c→InitSysCtrl()。始终不能到下一步DINT
user6233582:
回复 Green Deng:
您好,我单步运行过了,就像这样循环:InitSysCtrl()→CodeStartBranch.asm→boot28.asm→pre_init.c→startup.c→args_main.c→InitSysCtrl(),相当于不停地进入main函数,但只运行了InitSysCtrl()。
我的主函数是一种算法程序,我换了一种算法其他不变后可以正常运行,InitSysCtrl()→DINT…,InitSysCtrl()之后不会再进入CodeStartBranch.asm之类的,也就没有死循环了。
不停在这几个文件中循环:InitSysCtrl()→CodeStartBranch.asm→boot28.asm→pre_init.c→startup.c→args_main.c→InitSysCtrl()。始终不能到下一步DINT
Green Deng:
回复 user6233582:
没碰到过类似情况,目前只能怀疑跟算法有关。具体是什么算法?执行什么功能?
另外可以看一下你的时钟配置是否正确。
不停在这几个文件中循环:InitSysCtrl()→CodeStartBranch.asm→boot28.asm→pre_init.c→startup.c→args_main.c→InitSysCtrl()。始终不能到下一步DINT
user6233582:
回复 Green Deng:
问题找到了。我的主函数部分定义了一个复数数组complex X[256],我将这个定义放在主函数外使它成为全局变量后就不再出现不断进入主函数的现象了,但是具体为什么会这样我也不清楚。把这个发上来给各位做个参考吧