你好,
我面临着一个奇怪的局面。我有一个带有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空间留下堆栈。
我不知道还有什么尝试。任何建议都会有很大帮助。
关键词:
设备:
嗨Vikramtheone,
这确实是一个奇怪的问题,我能想到的最可能的原因是一个逻辑错误而不是进入其他功能?或许一些功能是为了延迟的一些问题?也许补充者正在优化这一点,无论是优化。
谢谢mt_dialog.