你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

一个让人摸不着头脑的bug

[复制链接]
西奥伟 提问时间:2018-11-14 12:36 /
悬赏1ST金币未解决
本帖最后由 西奥伟 于 2018-11-15 11:17 编辑

今天很奇怪,调试串口中断发送与接收,一直遇到一些奇怪的Bug,问题是我在Open_Batt_result函数中调用PacSend这个函数,居然执行到PacSend函数里面不能够正常跳出,但是,能够正常发送数据,并执行到最后一步,大家遇到过这种情况没有???

1.png

1.png
2.png 3.png 5.png

4.png
收藏 评论11 发布时间:2018-11-14 12:36

举报

11个回答
废鱼 回答时间:2018-11-14 13:47:59
是不是开启优化了?关闭优化以后,再测试一下。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

西奥伟 回答时间:2018-11-14 14:03:18
安 发表于 2018-11-14 13:47
是不是开启优化了?关闭优化以后,再测试一下。

把优化关了吗?我设置的最低呀!Level0
chifen 回答时间:2018-11-14 14:54:15
Stack_Size      EQU     0x00000500 这里的值放大点试试
废鱼 回答时间:2018-11-14 15:27:01
我遇到过几次,是因为优化等级导致的。
西奥伟 回答时间:2018-11-14 16:56:29
本帖最后由 西奥伟 于 2018-11-14 17:02 编辑
chifen 发表于 2018-11-14 14:54
Stack_Size      EQU     0x00000500 这里的值放大点试试

好的,感谢 7.png
西奥伟 回答时间:2018-11-14 16:57:51
安 发表于 2018-11-14 15:27
我遇到过几次,是因为优化等级导致的。

我现在是单步调试到这个PacSend函数最后一个括号的时候,会弹出一个Jlink的错误 6.png
废鱼 回答时间:2018-11-14 17:00:25
楼主,你jinlink是什么型号?正版吗?如果不是,建议降一下KEIL5的驱动版本。降到KEIL4的。
西奥伟 回答时间:2018-11-14 17:04:18
安 发表于 2018-11-14 17:00
楼主,你jinlink是什么型号?正版吗?如果不是,建议降一下KEIL5的驱动版本。降到KEIL4的。 ...

Jlink不是正版的,我Jlink的驱动是5.12的
西奥伟 回答时间:2018-11-14 17:10:19
安 发表于 2018-11-14 13:47
是不是开启优化了?关闭优化以后,再测试一下。

楼主,能给个联系方式,远程交流一下吗??
废鱼 回答时间:2018-11-15 08:41:16
楼主,我这里上不了QQ之类的。你先按我的说,把KEIL5的JLINK驱动降到KEIL4的测试一下。
西奥伟 回答时间:2018-11-15 11:16:56
已经找到最终的问题了,是由于代码的原因,又是指针的原因,uint8_t* SendBufferPtr,SendBufferPtr = (AL_BYTE*)reqDataPtr - (REQUEST_PRIFIX_SIZE + cmdLength);  这里reqDataPtr是我传参进来的数据,
REQUEST_PRIFIX_SIZE是报文前缀长度5,cmdLength为1;这里相当于是做了指针地址的偏移;看代码感觉是没有错误的,但是,指针有可能在reqDataPtr的地址,向前偏移6个字节的过程中,指向到非法内存当中,因此,每次运行的LR寄存器的值都会出现异常。最后,还是需要记住,定义指针先分配了内存之后,再去做合理的指针偏移操作。(在此感谢我的大香蕉哥,为我远程调试bug)

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版