完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
出现断言的地方
定义
初始化信号量放在串口初始化之前,因为用在了串口中断里面
放中断函数里读取,读取到数据就释放信号量
检测信号量,有值则从环形缓冲区里面获取数据,
这个信号量的所有操作就这些
出现断言
我应该怎么去排查问题,内存写穿了吗, sem!=RT_NULL 只是类型变了? 系统里就这一个地方使用到了信号量。没有其他地方了
|
|
相关推荐
6个回答
|
|
|
像是内存写穿了,其他有地方内存泄漏,直接改为静态的信号量,再测试,如果没有问题了,就排查内存写穿(如数组越界操作)
|
|
|
|
|
|
第一次听到内存写穿这个说法,不过应该确实是这个错误,申请信号量时堆空间不够导致的,通过静态方式申请信号量来检测的方法也不错
|
|
|
|
|
|
不是申请不到内存,是申请好的内存,被其他的操作破坏了,或者称之为【内存被踩】
|
|
|
|
|
|
有一个地方数组越界了
|
|
|
|
|
|
从你给的代码来看,我觉得是很正常很简单的信号量使用方式。我这里怀疑一个点,只是稍微提一下,进入和退出中断时又加上“rt_interrupt_enter();”和“rt_interrupt_leave();”吗?因为我猜测可能是别的原因影响到信号量的使用。
|
|
|
|
|
这个信号量对象内存被破坏了。被破坏了。 这个得去其它地方找原因。可以在每次调用 rt_sem_release 前打印这个信号量的详细信息看看(但不排查添加这些代码后被破坏的内存变成其它地址范围) |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1033 浏览 0 评论
2877 浏览 0 评论
图腾柱PFC无法上升至400V,且电感电流为正弦波形,但是幅值极小
9386 浏览 0 评论
飞凌嵌入式ElfBoard-Vim编辑器之静态链接和动态链接
2898 浏览 0 评论
使用 LinkBoy 将程序导出为 C 语言代码并烧录至 Arduino ESP32 开发板
2302 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:53 , Processed in 0.618861 second(s), Total 52, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2002