我有一些非常奇怪的行为发生了、我无法准确地确定发生这种情况的原因。 在连接了 FET 的情况下、在发布和调试配置中、所有器件均按预期运行。 然而、在调试负载上、将其从 FET 工具上断开会使其完全砖型。 在没有调试器的情况下执行简单的加载和编程时、器件将不会引导(同样、仅在调试中)。
我将我的代码分开、并逐个添加所有内容、直到在开关外壳内将其缩小为一个函数。 有趣的是、它似乎不是能够打破它的特定线路或函数-如我所解释的那样、取消注释该开关情况内的任何内容都将导致器件变成砖型。 这个代码甚至在运行时也不会被调用-它存在于.code 段中会中断器件-并且只有在 FET 工具断开连接时才会被调用。
// Works case (case_1): if (!exparation_string){ return IBL_error_LEX; } // taged_code1 // taged_Code2 break; //拔下 FET 工具时的设备模块(即使从未达到此代码) case (case_1): if (!exparation_string){ return IBL_error_code_2 break; taged code2;tage-coun_codested}
我认为这可能是堆栈大小的问题、但同样、无论如何也不会调用代码。 不管怎样、我尝试将堆栈大小加倍(160 -> 1024)以上、但这并没有什么不同。 我认为这是编译器的问题、但编译设置在发布和调试之间几乎是相同的-包括优化级别。