完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如图所示,我在代码中对g_FuncErrInfo.ErrRecordFlag的值初始化为1,但实际在主循环中又变为0了,我仔细检查过该变量的赋值,绝对没有出现写0的操作: 经过很多轮检查,我很确定没有对结构体参数置0操作,没有额外置0的操作。造成这种现象的原因是什么? |
|
相关推荐
2个回答
|
|
根据您提供的信息,我们可以分析以下几个可能的原因:
1. 编译器优化:可能是编译器在编译过程中对代码进行了优化,导致变量的值在某些情况下被优化掉了。您可以尝试关闭编译器优化,看看问题是否仍然存在。 2. 硬件问题:可能是您的硬件设备存在问题,导致变量的值在某些情况下被错误地修改。您可以尝试在不同的硬件设备上运行您的代码,看看问题是否仍然存在。 3. 代码逻辑问题:虽然您已经仔细检查过代码,但仍然有可能存在一些隐蔽的逻辑问题。您可以尝试使用调试工具,如单步调试、断点调试等,逐步检查代码的执行过程,看看变量的值在哪个地方被修改。 4. 内存问题:可能是您的代码中存在内存泄漏或者内存越界等问题,导致变量的值被错误地修改。您可以尝试使用内存检查工具,如Valgrind等,检查您的代码是否存在内存问题。 5. 编译器问题:可能是您使用的Segger编译器存在问题,导致变量的值在某些情况下被错误地修改。您可以尝试使用其他编译器,如GCC、Clang等,看看问题是否仍然存在。 综上所述,您可以尝试以下步骤来解决问题: 1. 关闭编译器优化,重新编译代码。 2. 在不同的硬件设备上运行代码,检查问题是否仍然存在。 3. 使用调试工具逐步检查代码的执行过程,找出变量值被修改的位置。 4. 使用内存检查工具检查代码是否存在内存问题。 5. 尝试使用其他编译器编译代码,检查问题是否仍然存在。 希望以上建议能帮助您解决问题。
最佳答案
|
|
|
|
我将使用条件反了一下,默认为0,置1时返回,目前正常了,这应该是编译器原因
|
|
|
|
只有小组成员才能发言,加入小组>>
400个成员聚集在这个小组
加入小组自己做的hpm5321和6750板子怎么都没有1.1的输出呢?
1185 浏览 1 评论
关于hpm6364的femc同时使用外接sdram和sram的问题
991 浏览 1 评论
972 浏览 0 评论
847 浏览 1 评论
945 浏览 0 评论
【盖楼抢好礼】欢迎先楫半导体HPMicro入驻电子发烧友社区!
25585浏览 532评论
2865浏览 22评论
USBX范例中启用 double FPU , 运行异常,卡死在tx_risc_v_trap_handler函数
3027浏览 5评论
1850浏览 5评论
请问Segger Embedded Studio这个窗口不小心拉出来悬浮后怎么塞回去?
3036浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-22 15:46 , Processed in 0.475369 second(s), Total 48, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号