本帖最后由 haohaodee 于 2018-3-28 12:48 编辑
上次发帖“指针使用不当,会造成很奇怪的问题,大家注意”,本以为问题解决了,实际仍然没有解决,再次求大家建议。https://bbs.21ic.com/icview-2489572-1-1.html?fromuid=1912616
问题描述:
在keil v5.23环境下做的四轴飞行器飞控,如果增减一些无关代码,飞机的飞行效果变化很大。
例如,在进入主飞控程序之前,增加一些打印输出,如“printf("welcome\r\n");printf...”,飞机飞的很稳;
如果把这些printf删掉,飞机就会变得很抖。
同理,楼主测试了在程序的其他位置增减一些无用的本不影响飞行的代码(不一定含有printf,可以只是一些没用的if..else...或者其他),飞机也会变稳或者变抖。
目前,楼主已经对此问题进行了各种测试,都没有解决这个问题,
包括:
1. 确认了代码空间远小于flash存储空间。
2. 增减栈、堆空间。
3. 删掉编译生成的中间文件,重新编译。
4. 尝试各种优化选项。
5. 确认数组越界的可能,指针操作越界的可能。
以上尝试都没能解决。
真诚求大伙建议,在此不胜感激。
@linqing171 @ayb_ice
|