代码的某些部分未被执行

2个帖子/ 0新
最后一篇
vikramtheone.
离线
最后一次露面:4年10个月前
加入:2015-06-12 08:42
代码的某些部分未被执行

你好,
我面临着一个奇怪的局面。我有一个带有DA14580和一些传感器的定制板。

在我的申请中,该计划的一部分是不是根本执行。

简化外观我的代码如下:

主要的()
- > function_1()
-----> function_2a()
-----> function_2b()
-----> function_2c()

function_2a()是在函数_1()中执行的最后一个函数,之后控件直接跳转到函数_1()的末尾。实际说话,我的函数_1()是一个阻塞呼叫(如下所示),但是控制器只是由于哪些程序崩溃了。我使用断点检查了直接跳跃断点1断点4.


void function_1()
{
*断点1 *而(function_2a()!= 1);
*断点2 *而(function_2b()!= 1);
*断点3 *而(function_2c()!= 1);
*断点4 *} // function_1的结尾

到目前为止,我已经尝试过的东西:
1.起初我认为是由于一些优化,因此我将编译器优化标志删除到不同的级别:O1,O2,O3以及“无”。但没有变化。
2.我已经重新排序了代码,但没有使用。
3.检查使用的RAM,看看堆栈是否有足够的空间,当我构建项目时,该工具说:
程序尺寸:代码= 16054 RO-DATA = 2370 RW-DATA = 60 ZI-DATA = 11484
所以,我正在使用(16054 + 60 + 11484)29816字节(29kb),我仍然有(42 - 29)13kb空间留下堆栈。

我不知道还有什么尝试。任何建议都会有很大帮助。

关键词:
设备:
mt_dialog.
离线
最后一次露面:14小时前5天
职员
加入:2015-06-08 11:34
嗨Vikramtheone,

嗨Vikramtheone,

这确实是一个奇怪的问题,我能想到的最可能的原因是一个逻辑错误而不是进入其他功能?或许一些功能是为了延迟的一些问题?也许补充者正在优化这一点,无论是优化。

谢谢mt_dialog.