在进行电机控制时,增加和删减 定义的无关变量个数以及无关函数的修改均会导致算法不收敛,对比两次的map文件,发现c_int00()地址和main函数地址发生变化,从电机运行角度来看,初始状态发生变化,程序中没有任何错误和警告。
另外编译器的优化等级也会导致算法不收敛,应该是编译过程中出现的问题,但是具体定位不清晰,请问一下,有没有遇到过类似的问题,该如何排查呢?
Green Deng:
c_int00()地址和main函数地址理论上都是固定的,而且你是操作的无关变量个数和无关函数,应该跟这两个地址没什么关系啊。
你是使用的例程吗?具体可以举个例子吗?
优化等级一般来说跟算法没什么关系,如果会影响算法的话建议还是把优化调低一些。
,
user5901225:
您好,非常感谢您的回复!以下是我出现问题的部分截图和过程:
这是我在定义变量的.h文件中删减了这几个没有进行算法计算的无关变量,电机就不能正常起动了。是在例程的基础上进行修改的,之前使用过程中也没出现这个错误,但是在查程序中,通过查询map和反汇编文件,只能发现删减变量后,map文件中显示CINT00位置改变和main函数位置改变以及.text顺序发生改变,别的没有看出其他问题,因为这个问题是可重复出现的,只要我加上这几个无关变量就能正常运行,编译过程是否影响到我的初始化变量状态呢?电机正常运行时的入口函数地址:
电机非正常运行时的入口函数地址:
,
Green Deng:
你好,图片没有成功上传。请在“使用高级编辑器编辑文本”中上传图片。
,
user5901225:
您好,非常感谢您的回复!以下是我出现问题的部分截图和过程:
这是我在定义变量的.h文件中删减了这几个没有进行算法计算的无关变量,电机就不能正常起动了。
是在例程的基础上进行修改的,之前使用过程中也没出现这个错误,但是在查程序中,通过查询map和反汇编文件,只能发现删减变量后,map文件中显示CINT00位置改变和main函数位置改变以及.text顺序发生改变,别的没有看出其他问题,因为这个问题是可重复出现的,只要我加上这几个无关变量就能正常运行,编译过程是否影响到我的初始化变量状态呢?
电机正常运行时的入口函数地址:
电机非正常运行时的入口函数地址: